Skip to main content
Retrieve ordered transcript segments for individual calls, or run full-text search across all transcripts for a phone number. Transcripts are generated automatically during calls. Each segment includes the call side (local or remote), a nullable phone_number, and a capture timestamp in Unix epoch milliseconds. text contains the spoken words.

List transcripts

List all transcript segments for a call, ordered by sequence number. The call may be of either origin — a dedicated number or a shared iMessage line.

Path parameters

Response (200)

JSON

Error responses

Identity-scoped API keys can only read transcripts for calls belonging to their own identity; any other call is masked as 404 Call not found.

Code examples

The number-scoped transcripts route is deprecated. Use GET /calls/{call_id}/transcripts instead of GET /numbers/{phone_number_id}/calls/{call_id}/transcripts.

Search transcripts

Full-text search across all transcript segments for a phone number. Returns matching segments ranked by relevance.

Path parameters

Query parameters

Response (200)

JSON

Error responses

Code examples


Transcript object

Older responses can omit phone_number; handle an absent field like null. ts_ms is an absolute capture time, not elapsed time since the call began. For remote turns, phone_number identifies the human line that spoke, including an added conference participant. For local turns, it is the agent’s dedicated line number. Local turns on a shared line always return null. For older turns without a stored number, verified parent-call facts can supply the dedicated local line or, on a non-conference call, the original remote line. If these rules cannot establish the line, phone_number remains null. Do not substitute the original caller’s number for an unknown conference participant. The same nullable phone_number accompanies turns in call webhooks and contact correspondence. Abridgment markers have no phone number. Do not infer a missing number from a name prefix in historical text.