Get Call Details
Fetch one call with status, routing, timing, and analysis details.
status, the destination number (to_number), the ID of the workspace number the call used (phone_number_id), the assigned agent_id, when it was placed (called_time) and initiated (initiated_time), and, once the call ends, its duration, end_reason, post-call analysis (postcallanalysis), and recording URL (recording_sas_url, null when there is no recording). A terminal status does not guarantee that recording or post-call processing has finished. Use this endpoint to poll for completion after triggering a call, render a call detail page, or sync per-call data into a downstream system.
When to use this
- Synchronous workflows: trigger a call and poll until it reaches a terminal status before continuing.
- Operational dashboards: render a call detail view with status, duration, and the linked agent.
- CRM sync: write back the call outcome to the customer record the call was made for.
Get Call Details After A Status Update
For production traffic, webhooks are the preferred way to know when a call has ended, they avoid the request volume and latency of repeated polling. Register a subscription with Create Webhook for eligible non-batch calls. Direct batch calls and calls refused before dialing do not send these deliveries; recording availability can also delay or prevent delivery, and a call can produce more than one delivery. Reconcile missing or duplicate events with the current call record. Use this endpoint only when you specifically need to fetch the latest state on demand (for example, a user opens a call detail page). When polling is required, readstatus. A call is still in flight while it is created, initiated, sent or received. It has ended once it is completed, did_not_pick, busy, no_answer, failed, cancelled or retry_expired; end_reason then says why. See call statuses for what each value means. Poll every 5 to 10 seconds with an exponential cap; do not poll faster than once per second.
Path parameters
Errors
401 Unauthorizedis returned when the API key is missing or invalid.404 Not Foundis returned when the call does not exist in this workspace. A call that belongs to another workspace is reported the same way.500 Internal Server Erroris returned on an unexpected server-side failure.
Related endpoints
- Trigger a Call: start an outbound call.
- List Calls: paginate across many calls.
- Call detail page: review the same call evidence in the dashboard.
- Create Webhook: receive a delivery when each call ends instead of polling.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Call ID
"call_abc123"
Response
Call returned successfully.
Signed call ID
"call_abc123"
Agent that handled the call.
"agent_2g7Xy3tY53gRlp"
Signed batch ID of the batch the call belongs to; null for single calls and for retry attempts.
Destination number as recorded on the call: the number as sent for a single call, and the lead's number as stored for a batch call, where an Indian number appears as 91XXXXXXXXXX without +.
"+919876543210"
ID of the workspace phone number the call was placed from.
"phn_abc123"
Call duration in seconds, serialized as a string (the column is a 64-bit integer); null until a duration is recorded.
"42"
Why the call ended; unknown until the call ends. One of agent_disconnected, user_disconnected, user_busy, user_did_not_pick_up, invalid_phone_number, unallocated_phone_number, unknown, network_failure, voicemail_detected, user_unreachable, destination_forbidden, system_failure, system_at_capacity, insufficient_balance, agent_not_found, sip_auth_failed, sip_trunk_unreachable, spend_cap_reached, dnc_blocked.
Post-call analysis fields extracted for this call, keyed by field name. An empty object until analysis has run.
Display name of the language model used on the call.
"gpt-4o"
Display name of the voice used on the call.
Time-limited URL for the call recording; null when the call has no recording. Request the call again for a fresh URL after it expires.