---
title: "Get a call's transcript"
method: GET
path: "/calls/{id}/transcript"
tags: ["transcripts"]
---

# Get a call's transcript

`GET /calls/{id}/transcript`

## Request

- Base URL: `https://api.voixcall.com/v1`
- URL: `https://api.voixcall.com/v1/calls/{id}/transcript`
- Auth: one of:
  - OAuth 2 (authorization code, authorization URL `https://api.voixcall.com/oauth/authorize`, token URL `https://api.voixcall.com/oauth/token`, scopes: `transcripts:read`)
  - HTTP bearer

The call's transcript: AI summary, action items and reference numbers, and with include=utterances the speaker turns. All text is redacted. In utterances every number (digits or spelled out) and keypad (DTMF) entry reads [redacted]. The summary, each action item and each reference number (label and value together) have every number read [redacted] when the item holds six or more digits in all, or a word such as code, OTP, PIN, password, card or account; otherwise short numbers such as dates, times and amounts stay. Needs transcripts:read and the account setting "Allow connected apps to read call summaries" (Settings → Connected apps, off by default); when it is off the answer is 403 not_enabled with settings_url. A call that is not yours is 404 call_not_found; a call without a transcript is 404 transcript_not_found (the message says whether one can be requested and its cost). Personal calls only. Every read is recorded in the account's audit log.

## Path parameters

- `id` string, required: Call id (call_ prefix).

## Query parameters

- `include` 'utterances': include=utterances adds the redacted speaker turns (REST only; assistants get the summary).
- `utterance_offset` integer: With include=utterances: index of the first utterance to return; pass next_utterance_offset from the previous page.

## Response `200`

OK

- TranscriptDetail
  - `action_items` string[], nullable, required: Follow-ups from the call, redacted like summary.
  - `call_id` string, required
  - `completed_at` string, date-time, nullable, required
  - `duration_seconds` integer, nullable, required: Length of the transcribed recording.
  - `id` string, required
  - `language` string, nullable, required: BCP 47 tag when detected.
  - `livemode` boolean, required
  - `next_utterance_offset` integer, nullable, required: Set when more utterances follow: the utterance_offset for the next page. null on the last page and without include=utterances.
  - `object` 'transcript', required: Always "transcript".
  - `reference_numbers` ReferenceNumber[], nullable, required: Facts worth copying out of the call (case ids, dates, amounts), redacted like summary with label and value checked together. An entry whose value was a sensitive number stays in the list with the value [redacted], so you know one was mentioned; the full value is only in the VoixCall app.
    - `label` string, required
    - `value` string, required
  - `status` 'pending' | 'processing' | 'completed' | 'failed' | 'expired', required: pending and processing: being made. completed: summary available. failed: transcription failed (it can be requested again once it has stopped retrying). expired: removed by the transcript retention period; the summary and utterances are gone. New values may appear.
  - `summary` string, nullable, required: AI summary of the call, redacted: when it holds six or more digits in all, or a word such as code, OTP, PIN, password, card or account, every number in it reads [redacted]; keypad entries always do. null until completed, and once expired.
  - `utterances` Utterance[], nullable, required: Speaker turns, redacted, only with include=utterances on a completed transcript; null otherwise. A long transcript is returned in pages that fit the 32 KB response cap: pass next_utterance_offset as utterance_offset to continue.
    - `end_seconds` number, double, required: Offset from the start of the recording, seconds.
    - `speaker` string, required: You and Them on two-channel recordings; Speaker 1, Speaker 2, … when the recording is single-channel and voices were told apart automatically.
    - `start_seconds` number, double, required: Offset from the start of the recording, seconds.
    - `text` string, required: What was said, with every number (digits or spelled out) and keypad entry read [redacted] (SPEC §10.4).

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `429`: Too Many Requests
- `500`: Internal Server Error
- `503`: Service Unavailable

---

[API](https://skmtc.dev/voixcall/apis/voixcall-api.md) · [All operations](https://skmtc.dev/voixcall/apis/voixcall-api/llms.txt) · [OpenAPI document](https://skmtc.dev/voixcall/apis/voixcall-api/revisions/9aac329ff0f5?raw)
