Vapi

Usage Instructions

Run outbound voice AI phone calls with Vapi. Call a customer with a saved assistant or a one-off assistant built from a first message, system prompt, model, and voice, pass per-call variables, schedule calls, and ask Vapi for a summary, structured data, and a success evaluation after each call. Read calls, transcripts, recordings, and costs, list assistants and phone numbers, and start workflows when a call ends.

Actions

Vapi Create Call

Place an outbound phone call with a Vapi voice assistant, now or within a scheduled window. Use a saved assistant ID, or describe a one-off assistant with a first message, system prompt, model, and voice. Returns the call ID and initial status.

Input

ParameterTypeRequiredDescription
apiKeystringYesVapi private API key (Vapi dashboard → API Keys)
phoneNumberIdstringYesID of the Vapi phone number that places the call (from List Phone Numbers)
customerNumberstringYesPhone number to call, in E.164 format (e.g. +14155551234)
customerNamestringNoCustomer name, for your reference (max 40 characters)
customerEmailstringNoCustomer email, for your reference (max 40 characters)
customerExternalIdstringNoYour ID for the customer, e.g. a CRM contact ID (max 40 characters)
assistantIdstringNoID of a saved assistant. When set, the assistant fields below override it for this call only. When empty, they define a one-off assistant and model provider and model are required
firstMessagestringNoFirst thing the assistant says when the call connects
systemPromptstringNoSystem prompt that tells the assistant how to run the call
modelProviderstringNoLLM provider: openai or anthropic
modelstringNoModel ID exactly as Vapi lists it for the provider, e.g. gpt-4.1, gpt-4o-mini, claude-sonnet-4-6
voiceProviderstringNoVoice provider: 11labs, vapi, or cartesia
voiceIdstringNoVoice ID for the provider, e.g. a Vapi voice name such as Elliot or an ElevenLabs or Cartesia voice ID
maxDurationSecondsnumberNoHang up after this many seconds (10-43200, Vapi default 600)
summaryPromptstringNoInstructions for the post-call summary, replacing Vapi's default 2-3 sentence summary prompt
structuredDataSchemajsonNoJSON Schema of the data to extract from the call after it ends, e.g. {"type":"object","properties":{"interested":{"type":"boolean"}}}
successEvaluationRubricstringNoRubric for the post-call success evaluation: NumericScale, DescriptiveScale, Checklist, Matrix, PercentageScale, LikertScale, AutomaticRubric, PassFail
variableValuesjsonNoValues for the assistant template variables, e.g. {"name": "Asha"} fills {{ name }} in the prompt and first message
serverUrlstringNoURL that receives this call's webhooks, such as a Vapi End of Call Report trigger URL
serverSecretstringNoSecret sent to the server URL in the X-Vapi-Secret header, matching the trigger secret token
namestringNoCall name, for your reference (max 40 characters)
scheduleEarliestAtstringNoSchedule the call for no earlier than this ISO 8601 date-time
scheduleLatestAtstringNoLatest ISO 8601 date-time the scheduled call can start

Output

ParameterTypeDescription
idstringCall or assistant ID
typestringCall type
statusstringCall status
endedReasonstringWhy the call ended
endedMessagestringMore context on the ended reason
namestringCall or assistant name
assistantIdstringAssistant used by the call
phoneNumberIdstringPhone number used by the call
customerNumberstringCustomer phone number
customerNamestringCustomer name
createdAtstringCreation timestamp
updatedAtstringLast update timestamp
startedAtstringWhen the call started
endedAtstringWhen the call ended
costnumberTotal call cost in USD
costBreakdownjsonCall cost in USD by component (transport, stt, llm, tts, vapi, total)
transcriptstringCall transcript
recordingUrlstringMono recording URL
stereoRecordingUrlstringStereo recording URL
summarystringAI call summary
structuredDatajsonData extracted from the call
successEvaluationstringSuccess evaluation of the call
callsjsonCalls (id, status, endedReason, customerNumber, startedAt, endedAt, cost, transcript, summary, structuredData, ...)
assistantsjsonAssistants (id, name, firstMessage, modelProvider, model, voiceProvider, voiceId, serverUrl, ...)
phoneNumbersjsonPhone numbers (id, provider, number, name, status, assistantId, serverUrl)
firstMessagestringAssistant first message
firstMessageModestringWho speaks first
modelProviderstringAssistant LLM provider
modelstringAssistant LLM model
systemPromptstringAssistant system prompt
voiceProviderstringAssistant voice provider
voiceIdstringAssistant voice ID
maxDurationSecondsnumberAssistant maximum call length
serverUrlstringAssistant server URL
serverMessagesjsonMessage types sent to the server URL

Vapi Delete Call

Permanently delete a Vapi call and its data, including recordings. Returns the deleted call. This does not hang up a live call.

Input

ParameterTypeRequiredDescription
apiKeystringYesVapi private API key (Vapi dashboard → API Keys)
callIdstringYesID of the call to delete

Output

ParameterTypeDescription
idstringCall or assistant ID
typestringCall type
statusstringCall status
endedReasonstringWhy the call ended
endedMessagestringMore context on the ended reason
namestringCall or assistant name
assistantIdstringAssistant used by the call
phoneNumberIdstringPhone number used by the call
customerNumberstringCustomer phone number
customerNamestringCustomer name
createdAtstringCreation timestamp
updatedAtstringLast update timestamp
startedAtstringWhen the call started
endedAtstringWhen the call ended
costnumberTotal call cost in USD
costBreakdownjsonCall cost in USD by component (transport, stt, llm, tts, vapi, total)
transcriptstringCall transcript
recordingUrlstringMono recording URL
stereoRecordingUrlstringStereo recording URL
summarystringAI call summary
structuredDatajsonData extracted from the call
successEvaluationstringSuccess evaluation of the call
callsjsonCalls (id, status, endedReason, customerNumber, startedAt, endedAt, cost, transcript, summary, structuredData, ...)
assistantsjsonAssistants (id, name, firstMessage, modelProvider, model, voiceProvider, voiceId, serverUrl, ...)
phoneNumbersjsonPhone numbers (id, provider, number, name, status, assistantId, serverUrl)
firstMessagestringAssistant first message
firstMessageModestringWho speaks first
modelProviderstringAssistant LLM provider
modelstringAssistant LLM model
systemPromptstringAssistant system prompt
voiceProviderstringAssistant voice provider
voiceIdstringAssistant voice ID
maxDurationSecondsnumberAssistant maximum call length
serverUrlstringAssistant server URL
serverMessagesjsonMessage types sent to the server URL

Vapi Get Assistant

Get a saved Vapi assistant by ID: model, system prompt, voice, first message, max duration, and server URL.

Input

ParameterTypeRequiredDescription
apiKeystringYesVapi private API key (Vapi dashboard → API Keys)
assistantIdstringYesID of the assistant

Output

ParameterTypeDescription
idstringCall or assistant ID
typestringCall type
statusstringCall status
endedReasonstringWhy the call ended
endedMessagestringMore context on the ended reason
namestringCall or assistant name
assistantIdstringAssistant used by the call
phoneNumberIdstringPhone number used by the call
customerNumberstringCustomer phone number
customerNamestringCustomer name
createdAtstringCreation timestamp
updatedAtstringLast update timestamp
startedAtstringWhen the call started
endedAtstringWhen the call ended
costnumberTotal call cost in USD
costBreakdownjsonCall cost in USD by component (transport, stt, llm, tts, vapi, total)
transcriptstringCall transcript
recordingUrlstringMono recording URL
stereoRecordingUrlstringStereo recording URL
summarystringAI call summary
structuredDatajsonData extracted from the call
successEvaluationstringSuccess evaluation of the call
callsjsonCalls (id, status, endedReason, customerNumber, startedAt, endedAt, cost, transcript, summary, structuredData, ...)
assistantsjsonAssistants (id, name, firstMessage, modelProvider, model, voiceProvider, voiceId, serverUrl, ...)
phoneNumbersjsonPhone numbers (id, provider, number, name, status, assistantId, serverUrl)
firstMessagestringAssistant first message
firstMessageModestringWho speaks first
modelProviderstringAssistant LLM provider
modelstringAssistant LLM model
systemPromptstringAssistant system prompt
voiceProviderstringAssistant voice provider
voiceIdstringAssistant voice ID
maxDurationSecondsnumberAssistant maximum call length
serverUrlstringAssistant server URL
serverMessagesjsonMessage types sent to the server URL

Vapi Get Call

Get a Vapi call by ID: status, ended reason, transcript, recording, summary, structured data, success evaluation, and cost. Analysis and recording fields are filled once the call has ended.

Input

ParameterTypeRequiredDescription
apiKeystringYesVapi private API key (Vapi dashboard → API Keys)
callIdstringYesID of the call, as returned by Create Call

Output

ParameterTypeDescription
idstringCall or assistant ID
typestringCall type
statusstringCall status
endedReasonstringWhy the call ended
endedMessagestringMore context on the ended reason
namestringCall or assistant name
assistantIdstringAssistant used by the call
phoneNumberIdstringPhone number used by the call
customerNumberstringCustomer phone number
customerNamestringCustomer name
createdAtstringCreation timestamp
updatedAtstringLast update timestamp
startedAtstringWhen the call started
endedAtstringWhen the call ended
costnumberTotal call cost in USD
costBreakdownjsonCall cost in USD by component (transport, stt, llm, tts, vapi, total)
transcriptstringCall transcript
recordingUrlstringMono recording URL
stereoRecordingUrlstringStereo recording URL
summarystringAI call summary
structuredDatajsonData extracted from the call
successEvaluationstringSuccess evaluation of the call
callsjsonCalls (id, status, endedReason, customerNumber, startedAt, endedAt, cost, transcript, summary, structuredData, ...)
assistantsjsonAssistants (id, name, firstMessage, modelProvider, model, voiceProvider, voiceId, serverUrl, ...)
phoneNumbersjsonPhone numbers (id, provider, number, name, status, assistantId, serverUrl)
firstMessagestringAssistant first message
firstMessageModestringWho speaks first
modelProviderstringAssistant LLM provider
modelstringAssistant LLM model
systemPromptstringAssistant system prompt
voiceProviderstringAssistant voice provider
voiceIdstringAssistant voice ID
maxDurationSecondsnumberAssistant maximum call length
serverUrlstringAssistant server URL
serverMessagesjsonMessage types sent to the server URL

Vapi List Assistants

List the saved voice assistants in the Vapi account with their model, voice, first message, and server URL.

Input

ParameterTypeRequiredDescription
apiKeystringYesVapi private API key (Vapi dashboard → API Keys)
limitnumberNoMaximum number of items to return (0-1000, default 100)
createdAtGtstringNoOnly items whose createdAt is after this ISO 8601 date-time
createdAtLtstringNoOnly items whose createdAt is before this ISO 8601 date-time
createdAtGestringNoOnly items whose createdAt is at or after this ISO 8601 date-time
createdAtLestringNoOnly items whose createdAt is at or before this ISO 8601 date-time
updatedAtGtstringNoOnly items whose updatedAt is after this ISO 8601 date-time
updatedAtLtstringNoOnly items whose updatedAt is before this ISO 8601 date-time
updatedAtGestringNoOnly items whose updatedAt is at or after this ISO 8601 date-time
updatedAtLestringNoOnly items whose updatedAt is at or before this ISO 8601 date-time

Output

ParameterTypeDescription
assistantsarrayAssistants in the account

Vapi List Calls

List Vapi calls, optionally filtered by call ID, assistant, phone number, and created or updated time.

Input

ParameterTypeRequiredDescription
apiKeystringYesVapi private API key (Vapi dashboard → API Keys)
idstringNoOnly the call with this ID
assistantIdstringNoOnly calls that used this assistant
phoneNumberIdstringNoOnly calls that used this Vapi phone number
limitnumberNoMaximum number of items to return (0-1000, default 100)
createdAtGtstringNoOnly items whose createdAt is after this ISO 8601 date-time
createdAtLtstringNoOnly items whose createdAt is before this ISO 8601 date-time
createdAtGestringNoOnly items whose createdAt is at or after this ISO 8601 date-time
createdAtLestringNoOnly items whose createdAt is at or before this ISO 8601 date-time
updatedAtGtstringNoOnly items whose updatedAt is after this ISO 8601 date-time
updatedAtLtstringNoOnly items whose updatedAt is before this ISO 8601 date-time
updatedAtGestringNoOnly items whose updatedAt is at or after this ISO 8601 date-time
updatedAtLestringNoOnly items whose updatedAt is at or before this ISO 8601 date-time

Output

ParameterTypeDescription
callsarrayCalls matching the filters

Vapi List Phone Numbers

List the phone numbers in the Vapi account. Use a number ID as the phone number for Create Call.

Input

ParameterTypeRequiredDescription
apiKeystringYesVapi private API key (Vapi dashboard → API Keys)
limitnumberNoMaximum number of items to return (0-1000, default 100)
createdAtGtstringNoOnly items whose createdAt is after this ISO 8601 date-time
createdAtLtstringNoOnly items whose createdAt is before this ISO 8601 date-time
createdAtGestringNoOnly items whose createdAt is at or after this ISO 8601 date-time
createdAtLestringNoOnly items whose createdAt is at or before this ISO 8601 date-time
updatedAtGtstringNoOnly items whose updatedAt is after this ISO 8601 date-time
updatedAtLtstringNoOnly items whose updatedAt is before this ISO 8601 date-time
updatedAtGestringNoOnly items whose updatedAt is at or after this ISO 8601 date-time
updatedAtLestringNoOnly items whose updatedAt is at or before this ISO 8601 date-time

Output

ParameterTypeDescription
phoneNumbersarrayPhone numbers in the account

Triggers

A Trigger is a block that starts a workflow when an event happens in this service.

Vapi End of Call Report

Trigger workflow when a Vapi call ends and its report is ready, with transcript, summary, structured data, success evaluation, recording, and cost

Configuration

ParameterTypeRequiredDescription
secretTokenstringNoWhen set, deliveries must carry this token in the secret header. A "Bearer " prefix is accepted.
secretHeaderNamestringNoHeader that carries the secret token. Defaults to X-Vapi-Secret.
hmacSecretstringNoWhen set, deliveries must carry a valid HMAC signature in x-signature, computed over "{timestamp}.{body}" with the timestamp from x-timestamp.
hmacAlgorithmstringNoMust match the algorithm on the Vapi HMAC credential.

Output

ParameterTypeDescription
callIdstringCall ID
statusstringCall status (ended once the report is sent)
endedReasonstringWhy the call ended (e.g. customer-ended-call, assistant-ended-call, voicemail)
transcriptstringCall transcript
summarystringAI call summary (analysisPlan)
structuredDatajsonData extracted with the structured-data schema (analysisPlan)
successEvaluationstringSuccess evaluation per the configured rubric (analysisPlan)
recordingUrlstringMono recording URL
stereoRecordingUrlstringStereo recording URL
costnumberTotal call cost in USD
startedAtstringWhen the call started (ISO 8601)
endedAtstringWhen the call ended (ISO 8601)
customerNumberstringCustomer phone number
customerNamestringCustomer name
callTypestringCall type (inboundPhoneCall, outboundPhoneCall, webCall, vapi.websocketCall)
assistantIdstringSaved assistant used by the call
phoneNumberIdstringVapi phone number used
payloadjsonThe full end-of-call-report message as Vapi sent it