Retell AI

Usage Instructions

Run outbound voice AI calls with Retell AI. Place single calls with per-call dynamic variables and metadata, launch batch calling campaigns, read transcripts, recordings, and post-call analysis (summary, sentiment, success, custom extracted data), list and filter calls, end or delete calls, and look up agents and phone numbers. Retell can also trigger workflows when a call starts, ends, or is analyzed.

Actions

Retell Create Batch Call

Start an outbound Retell calling campaign: one call per task, each with its own number, dynamic variables, and metadata. Send now or schedule a start time, optionally limited to calling windows.

Input

ParameterTypeRequiredDescription
apiKeystringYesRetell API key (Retell dashboard → Settings → API Keys)
fromNumberstringYesCaller number in E.164 format; must be purchased from or imported to Retell
tasksjsonYesArray of calls, e.g. [{"to_number": "+12137774445", "retell_llm_dynamic_variables": {"customer_name": "John"}}]. Each task may also set override_agent_id, override_agent_version, metadata, and custom_sip_headers
batchNamestringNoBatch name, for your own reference
triggerTimestampstringNoWhen to start, as Unix milliseconds or an ISO 8601 date-time. Leave empty to start now
reservedConcurrencynumberNoConcurrency kept free for other calls, such as inbound calls
callTimeWindowjsonNoAllowed calling windows, e.g. {"windows": [{"start": 540, "end": 1020}], "timezone": "America/New_York", "day": ["Monday", "Tuesday"]} (minutes since local midnight)

Output

ParameterTypeDescription
batchCallIdstringBatch call ID; filter List Calls by it
namestringBatch name
fromNumberstringCaller number
scheduledTimestampnumberWhen the batch starts (epoch ms)
totalTaskCountnumberNumber of calls in the batch
callTimeWindowjsonCalling windows, when set

Retell Create Phone Call

Place an outbound phone call from a Retell voice AI agent. Pass per-call dynamic variables to personalize the agent prompt and metadata to tag the call. Returns the call ID used to track it.

Input

ParameterTypeRequiredDescription
apiKeystringYesRetell API key (Retell dashboard → Settings → API Keys)
fromNumberstringYesCaller number in E.164 format (e.g. +14157774444); must be purchased from or imported to Retell
toNumberstringYesNumber to call in E.164 format (e.g. +12137774445). Retell-purchased numbers can only call US numbers
overrideAgentIdstringNoAgent to use for this call only, instead of the agent bound to the from number's outbound setting
overrideAgentVersionstringNoAgent version for this call only: a number or a tag such as latest, latest_published, or prod
dynamicVariablesjsonNoString key-value pairs injected into the agent prompt, e.g. {"customer_name": "John Doe"} fills {{customer_name}}
metadatajsonNoArbitrary object stored on the call (e.g. your internal customer ID); returned on the call and its webhooks
customSipHeadersjsonNoCustom SIP headers as string key-value pairs
agentOverridejsonNoPer-call agent configuration overrides (agent, retell_llm, or conversation_flow settings)
idempotencyKeystringNoRetry key (5-255 letters, digits, _ or -). Retrying with the same key within an hour does not create another call
ignoreE164ValidationbooleanNoSkip E.164 validation of the from number (custom telephony only)
honorInternalDncbooleanNoReject the call when the contact for the to number is marked do-not-call

Output

ParameterTypeDescription
callIdstringCall ID
callTypestringphone_call or web_call
agentIdstringAgent ID
agentNamestringAgent name
agentVersionnumberAgent version used by the call
callStatusstringregistered, not_connected, ongoing, ended, or error
directionstringinbound or outbound
fromNumberstringCaller number
toNumberstringCallee number
batchCallIdstringBatch call ID
metadatajsonMetadata stored on the call
dynamicVariablesjsonDynamic variables passed to the agent
collectedDynamicVariablesjsonDynamic variables collected during the call
startTimestampnumberCall start (epoch ms)
endTimestampnumberCall end (epoch ms)
durationMsnumberCall duration in milliseconds
durationSecondsnumberCall duration in seconds
transcriptstringCall transcript
transcriptObjectjsonTranscript utterances with timings
recordingUrlstringCall recording URL
recordingMultiChannelUrlstringMulti-channel recording URL
publicLogUrlstringPublic debug log URL
disconnectionReasonstringWhy the call ended
transferDestinationstringTransfer target
callAnalysisjsonPost-call analysis (callSummary, inVoicemail, userSentiment, callSuccessful, customAnalysisData)
callCostjsonCost in cents (combinedCost, totalDurationSeconds, totalDurationUnitPrice, productCosts)
stoppedbooleanWhether the call was stopped
deletedbooleanWhether the call was deleted
callsjsonCalls on this page (same fields as Get Call)
totalnumberTotal matching calls (when requested)
hasMorebooleanWhether another page is available
paginationKeystringKey for the next page
agentsjsonAgents (agentId, agentName, channel, isSuspended, isTransferAgent, userModifiedTimestamp, tags)
versionnumberAgent version returned by Get Agent
isPublishedbooleanWhether the agent version is published
responseEnginejsonAgent response engine
voiceIdstringAgent voice ID
languagejsonAgent language
webhookUrlstringAgent webhook URL
lastModificationTimestampnumberLast modified (epoch ms)
agentjsonFull agent object
phoneNumbersjsonPhone numbers (phoneNumber, phoneNumberPretty, phoneNumberType, nickname, inboundAgents, outboundAgents, ...)
namestringBatch name
scheduledTimestampnumberBatch start (epoch ms)
totalTaskCountnumberNumber of calls in the batch
callTimeWindowjsonBatch calling windows

Retell Delete Call

Permanently delete a Retell call and its associated data (transcript, recording, and analysis).

Input

ParameterTypeRequiredDescription
apiKeystringYesRetell API key (Retell dashboard → Settings → API Keys)
callIdstringYesID of the call to delete

Output

ParameterTypeDescription
callIdstringID of the deleted call
deletedbooleanWhether the call was deleted

Retell Get Agent

Get a Retell voice agent's configuration: name, version, publish state, response engine, voice, language, webhook URL, and the full agent object.

Input

ParameterTypeRequiredDescription
apiKeystringYesRetell API key (Retell dashboard → Settings → API Keys)
agentIdstringYesID of the agent to read
agentVersionstringNoVersion to read: a number or a tag such as latest or latest_published (default latest)

Output

ParameterTypeDescription
agentIdstringAgent ID
agentNamestringAgent name
versionnumberAgent version returned
isPublishedbooleanWhether this version is published
responseEnginejsonResponse engine (type plus llm_id, conversation_flow_id, or custom LLM)
voiceIdstringVoice ID
languagejsonLanguage code, or a list of codes for multilingual agents
webhookUrlstringAgent-level webhook URL for call events
lastModificationTimestampnumberLast modified (epoch ms)
agentjsonFull agent object as Retell returned it

Retell Get Call

Get a Retell call by ID: status, transcript, recording, disconnection reason, cost, and post-call analysis (summary, sentiment, success, and custom extracted data). Transcript and recording appear once the call ends; analysis once it is analyzed.

Input

ParameterTypeRequiredDescription
apiKeystringYesRetell API key (Retell dashboard → Settings → API Keys)
callIdstringYesCall ID returned by Create Phone Call or a call webhook

Output

ParameterTypeDescription
callIdstringCall ID
callTypestringphone_call or web_call
agentIdstringAgent ID
agentNamestringAgent name
agentVersionnumberAgent version used by the call
callStatusstringregistered, not_connected, ongoing, ended, or error
directionstringinbound or outbound
fromNumberstringCaller number
toNumberstringCallee number
batchCallIdstringBatch call ID
metadatajsonMetadata stored on the call
dynamicVariablesjsonDynamic variables passed to the agent
collectedDynamicVariablesjsonDynamic variables collected during the call
startTimestampnumberCall start (epoch ms)
endTimestampnumberCall end (epoch ms)
durationMsnumberCall duration in milliseconds
durationSecondsnumberCall duration in seconds
transcriptstringCall transcript
transcriptObjectjsonTranscript utterances with timings
recordingUrlstringCall recording URL
recordingMultiChannelUrlstringMulti-channel recording URL
publicLogUrlstringPublic debug log URL
disconnectionReasonstringWhy the call ended
transferDestinationstringTransfer target
callAnalysisjsonPost-call analysis (callSummary, inVoicemail, userSentiment, callSuccessful, customAnalysisData)
callCostjsonCost in cents (combinedCost, totalDurationSeconds, totalDurationUnitPrice, productCosts)
stoppedbooleanWhether the call was stopped
deletedbooleanWhether the call was deleted
callsjsonCalls on this page (same fields as Get Call)
totalnumberTotal matching calls (when requested)
hasMorebooleanWhether another page is available
paginationKeystringKey for the next page
agentsjsonAgents (agentId, agentName, channel, isSuspended, isTransferAgent, userModifiedTimestamp, tags)
versionnumberAgent version returned by Get Agent
isPublishedbooleanWhether the agent version is published
responseEnginejsonAgent response engine
voiceIdstringAgent voice ID
languagejsonAgent language
webhookUrlstringAgent webhook URL
lastModificationTimestampnumberLast modified (epoch ms)
agentjsonFull agent object
phoneNumbersjsonPhone numbers (phoneNumber, phoneNumberPretty, phoneNumberType, nickname, inboundAgents, outboundAgents, ...)
namestringBatch name
scheduledTimestampnumberBatch start (epoch ms)
totalTaskCountnumberNumber of calls in the batch
callTimeWindowjsonBatch calling windows

Retell List Agents

List Retell agents with their IDs, names, channel (voice or chat), and suspension status, optionally searching by name or ID.

Input

ParameterTypeRequiredDescription
apiKeystringYesRetell API key (Retell dashboard → Settings → API Keys)
querystringNoCase-insensitive search over agent name and agent ID
channelstringNoOnly voice or chat agents
limitnumberNoMaximum agents to return (default 50, max 1000)
sortOrderstringNoascending or descending (default descending)
paginationKeystringNoPagination key from the previous page

Output

ParameterTypeDescription
agentsarrayAgents on this page
↳ agentIdstringAgent ID
↳ agentNamestringAgent name
↳ channelstringvoice or chat
↳ isSuspendedbooleanWhether suspended
↳ isTransferAgentbooleanWhether used for warm transfer
↳ userModifiedTimestampnumberLast modified (epoch ms)
↳ tagsjsonVersion tags keyed by name

Retell List Calls

List Retell calls, newest first by default, filtered by agent, status, or any documented filter (numbers, timestamps, sentiment, success, disconnection reason, metadata, custom analysis data). Items carry status, numbers, timings, recording, and analysis but not the transcript; use Get Call for that.

Input

ParameterTypeRequiredDescription
apiKeystringYesRetell API key (Retell dashboard → Settings → API Keys)
agentIdstringNoOnly calls handled by this agent
callStatusstringNoOnly calls with this status: not_connected, ongoing, ended, or error
filterCriteriajsonNoRaw Retell filter_criteria object, e.g. {"user_sentiment": {"type": "enum", "op": "in", "value": ["Negative"]}, "start_timestamp": {"type": "range", "op": "bt", "value": [1735689600000, 1735776000000]}}
sortOrderstringNoascending or descending by start time (default descending)
limitnumberNoMaximum calls to return (default 50, max 1000)
skipnumberNoNumber of calls to skip
paginationKeystringNoPagination key from the previous page
includeTotalbooleanNoAlso return the total number of matching calls

Output

ParameterTypeDescription
callsarrayCalls on this page
totalnumberTotal matching calls (only when Include Total is on)

Retell List Phone Numbers

List the phone numbers in your Retell account with their type, nickname, and the inbound and outbound agents bound to them.

Input

ParameterTypeRequiredDescription
apiKeystringYesRetell API key (Retell dashboard → Settings → API Keys)
limitnumberNoMaximum numbers to return (default 50, max 1000)
sortOrderstringNoascending or descending (default descending)
paginationKeystringNoPagination key from the previous page

Output

ParameterTypeDescription
phoneNumbersarrayPhone numbers on this page
↳ phoneNumberstringNumber in E.164 format
↳ phoneNumberPrettystringFormatted number
↳ phoneNumberTypestringretell-twilio, retell-telnyx, or custom
↳ nicknamestringNickname
↳ areaCodenumberUS area code
↳ inboundAgentsarrayInbound agents with weights (agent_id, agent_version, weight)
↳ outboundAgentsarrayOutbound agents with weights (agent_id, agent_version, weight)
↳ inboundWebhookUrlstringInbound call webhook URL
↳ lastModificationTimestampnumberLast modified (epoch ms)

Retell Stop Call

End an ongoing Retell call immediately.

Input

ParameterTypeRequiredDescription
apiKeystringYesRetell API key (Retell dashboard → Settings → API Keys)
callIdstringYesID of the ongoing call to end

Output

ParameterTypeDescription
callIdstringID of the stopped call
stoppedbooleanWhether the call was stopped

Triggers

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

Retell Call Event

Trigger workflow when a Retell call starts, ends, or finishes post-call analysis, with its transcript, recording, and analysis

Configuration

ParameterTypeRequiredDescription
eventFilterstringNoWhich Retell event runs the workflow. Call Analyzed carries the transcript and post-call analysis.
webhookApiKeystringYesUsed to verify the x-retell-signature header on each delivery. Only the API key with the webhook badge signs webhooks.

Output

ParameterTypeDescription
eventstringEvent name: call_started, call_ended, or call_analyzed
callIdstringUnique call ID
callTypestringphone_call or web_call
callStatusstringregistered, not_connected, ongoing, ended, or error
directionstringinbound or outbound
agentIdstringAgent that handled the call
agentNamestringName of the agent
agentVersionnumberAgent version used
fromNumberstringCaller number (E.164)
toNumberstringCallee number (E.164)
batchCallIdstringBatch call the call belongs to, if any
startTimestampnumberCall start (epoch ms)
endTimestampnumberCall end (epoch ms)
durationMsnumberCall duration in milliseconds
durationSecondsnumberCall duration in seconds
disconnectionReasonstringWhy the call ended (e.g. user_hangup, agent_hangup, voicemail_reached)
transferDestinationstringTransfer target, if transferred
transcriptstringCall transcript (call_ended and call_analyzed)
transcriptObjectjsonTranscript utterances with role, content, and word timings
recordingUrlstringCall recording URL
recordingMultiChannelUrlstringRecording with each party on its own channel
publicLogUrlstringPublic debug log URL
callAnalysisobjectcallAnalysis output from the tool
↳ callSummarystringHigh-level summary of the call
↳ inVoicemailbooleanWhether the call reached voicemail
↳ userSentimentstringUser sentiment: Negative, Positive, Neutral, or Unknown
↳ callSuccessfulbooleanWhether the agent finished its task without the call being cut off
↳ customAnalysisDatajsonCustom post-call extraction fields configured on the agent
callCostobjectcallCost output from the tool
↳ combinedCostnumberTotal cost in cents
↳ totalDurationSecondsnumberBilled duration in seconds
↳ totalDurationUnitPricenumberCombined unit price in cents per second
↳ productCostsjsonPer-product costs in cents
metadatajsonMetadata stored on the call
dynamicVariablesjsonDynamic variables passed to the agent
collectedDynamicVariablesjsonDynamic variables collected during the call
payloadjsonThe full webhook payload as Retell delivered it