Skip to main content
GET
Read one click-to-call. {id} accepts either the call_id or your own reference_id, so you can reconcile straight from your own records without storing ours.

Request

Headers

string
required
Bearer token with your API key

Path

string
required
The call_id or the reference_id

Query

boolean
default:"false"
Ask the call platform for the authoritative state before answering. Accepts 1, true or yes.Off by default so a UI can poll this cheaply. Turn it on when you need the truth — it is what repairs a call whose terminal webhook never arrived, and what picks up a recording that has finished uploading. It only goes upstream when the call is unfinished, or finished-but-awaiting-recording; an upstream blip never fails the read.

Response

200 OK with data.call — the same object Place Click-to-Call returns. Every field below lives under data.call. The ones worth reading first:
string
initiated (dialling), bridged (talking), completed, failed, rejected or unknown
boolean
true once the outcome is final — this is the flag to gate your own state machine on
string | null
How it ended: call.completed, call.not_answered, call.failed or call.temporaryfailed
string | null
Why: NORMAL_CLEARING, NO_ANSWER, USER_BUSY, CALL_REJECTED, MAX_DURATION, ORIGINATOR_CANCEL, UNALLOCATED_NUMBER, NORMAL_CIRCUIT_CONGESTION, MEDIA_FAILURE, CARRIER_LINK_DOWN
string | null
On failures: agent or customer — which side failed
integer | null
Bridged talk time. This is what is billed
integer | null
Seconds from admission to the end of the call
number | null
What this call cost. null with billing_status: null means nothing was owed
boolean
true when a playback URL can be minted

Errors

Example