Get call details

GET /api/v1/calls/:callId

Authentication

AuthorizationBearer

Pass a JWT access token or an API key (prefixed with tif_live_) as a Bearer token.

Path parameters

callIdstringRequiredformat: "uuid"
Call ID

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”

Errors

401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
429
Too Many Requests Error
500
Internal Server Error