Response
Call details
accountIdstringformat: "uuid"
Account that owns this call
agentStatusenum
Status of the AI agent handling the call.
createdAtdatetime
When the call record was created
directionenum
Call direction (inbound or outbound)
fromNumberstring
Caller phone number in E.164 format
idstringformat: "uuid"
Unique call identifier
isAnalyzedboolean
Whether AI-powered post-call analysis has been performed
isRecordedboolean
Whether audio recording was enabled for this call
sourceenum
Where the call originated from
statusenum
User-facing computed status derived from telephony and agent layers
telephonyStatusenum
Telephony layer status (PSTN/Twilio)
toNumberstring
Destination phone number in E.164 format
agentConnectedAtdatetime or nullOptional
When the AI agent connected to the call
agentDisconnectedAtdatetime or nullOptional
When the AI agent disconnected from the call
botSpeechSecsfloat or nullOptional
Bot speech duration in seconds
callSidstringOptional
Twilio Call SID, empty string for calls not yet assigned a SID
campaignIdstring or nullOptionalformat: "uuid"
Campaign ID if the call is part of a bulk campaign
completionTokensinteger or nullOptional
LLM completion (output) tokens generated
contactobject or nullOptional
Brief contact information for call list/SSE events.
Lightweight version of ContactSummary - only includes fields needed
for display in call lists without requiring additional API calls.
coststring or nullOptional
Total call cost in USD (string for decimal precision)
dataRetainedAtdatetime or nullOptional
When PII fields were scrubbed by the data retention job (null if not scrubbed)
durationinteger or nullOptional
Call duration in seconds
endReasonenum or nullOptional
Why a call ended — set once when a call reaches terminal state.
Unlike failure_code which categorizes technical failures, end_reason
captures the causal signal that ended the call regardless of success/failure.
First writer wins (COALESCE pattern in SQL).
endedAtdatetime or nullOptional
When the call ended
failureCodeenum or nullOptional
Tracks the specific reason a call failed, enabling:
- Analytics (which failure types are most common)
- Callbacks (schedule callback for capacity-rejected inbound calls)
- Debugging (detailed failure tracking)
failureReasonstring or nullOptional
Human-readable failure description
firstSpeechMsinteger or nullOptional
Client connect to first bot audio in milliseconds
flowIdstring or nullOptionalformat: "uuid"
Flow ID used for the AI conversation
functionCallCountinteger or nullOptional
Total function calls made during the call
functionCallTotalMsinteger or nullOptional
Total time spent in function calls in milliseconds
interruptedTurnsinteger or nullOptional
Turns where user interrupted the bot
isLeadbooleanOptional
True if a Meta lead-form submission triggered this call
promptTokensinteger or nullOptional
LLM prompt (input) tokens consumed
providerTypeenum or nullOptional
Provider type
queueInfoobject or nullOptional
Queue information for a call that's pending in the call queue
recordingDurationSecsdouble or nullOptional
Recording duration in seconds
recordingExpiresAtdatetime or nullOptional
When the recording will be automatically deleted from storage
recordingFileSizeByteslong or nullOptional
Recording file size in bytes
recordingStatusstring or nullOptional
Recording lifecycle status
recordingStorageCoststring or nullOptional
Upfront recording storage cost in USD
scheduleIdstring or nullOptionalformat: "uuid"
Schedule ID if the call was triggered by a recurring schedule
startedAtdatetime or nullOptional
When the call was answered
triggerDetailstring or nullOptional
What triggered the call — lead form, campaign, or schedule name (for display next to source)
ttsCharactersinteger or nullOptional
TTS characters synthesized
turnCountinteger or nullOptional
Total conversation turns
userSpeechSecsfloat or nullOptional
User speech duration in seconds
voicemailDetectedAtdatetime or nullOptional
When voicemail detection produced a result (null if none)
voicemailStatusstring or nullOptional
Voicemail detection outcome (null if detection was off or no result):
“voicemail_detected”, “human_detected”, or “undetermined”