---
title: "Get a transcript"
method: GET
path: "/v1/transcripts/{id}"
tags: ["Transcripts"]
---

# Get a transcript

`GET /v1/transcripts/{id}`

## Request

- Base URL: `https://api.aircaps.com`
- URL: `https://api.aircaps.com/v1/transcripts/{id}`
- Auth: HTTP bearer

Status and, once `completed`, the result. Pass `wait` to hold the request until the transcript finishes instead of polling.

## Path parameters

- `id` string, required

## Query parameters

- `wait` number

## Response `200`

The transcript.

- Transcript
  - `id` string, required: Transcript ID.
  - `object` 'transcript', required
  - `status` 'queued' | 'processing' | 'completed' | 'error', required: `queued`: waiting for a processing slot. `processing`: being transcribed. `completed`: result fields present. `error`: see `error`.
  - `created_at` string, date-time, required: When the transcript was created (UTC).
  - `started_at` string, date-time, nullable, required: When processing started.
  - `completed_at` string, date-time, nullable, required: When the job finished (completed or error).
  - `audio_url` string, nullable, required: The submitted `audio_url`, if any.
  - `file_id` string, nullable, required: The submitted `file_id`, if any.
  - `language_code` 'en', required: Language of the transcript (normalised).
  - `model` 'a5s-async-v1', required
  - `audio_duration` number, nullable, required: Audio duration in seconds, once known.
  - `metadata` object, nullable, required: Your `metadata`, echoed back.
  - `webhook_url` string, nullable, required: Webhook target, if any.
  - `webhook_status` 'pending' | 'delivered' | 'failed' | 'null', nullable, required: Webhook delivery state, if `webhook_url` was set.
  - `webhook_status_code` integer, nullable, required: HTTP status of the last webhook delivery.
  - `error` JobError, required
    - `code` 'invalid_audio' | 'audio_too_long' | 'file_too_large' | 'download_failed' | 'file_not_found' | 'usage_limit_reached' | 'internal_error' | 'canceled', required: Why the job failed. Failed jobs never count toward usage.
    - `message` string, required: Human-readable detail.
  - `text` string: Completed only. Full transcript: verbatim, lowercase, no punctuation.
  - `speakers` TranscriptSpeaker[]: Completed only. With `speaker_identification`, each speaker also has `speaker_id`, `name`, `score`, `matches` and `compared_duration`.
    - `id` string, required
    - `speaking_time` number, required: Seconds this speaker talks.
    - `speaker_id` string, nullable: Only with `speaker_identification`: the enrolled speaker matched with this speaker (its best score reached `threshold`), or `null`. Two speakers can match the same enrolled speaker when one person was split in two.
    - `name` string, nullable: Only with `speaker_identification`: the matched enrolled speaker's name.
    - `score` number, nullable: Only with `speaker_identification`: the matched enrolled speaker's score, or `null`.
    - `matches` SpeakerMatch[]: Only with `speaker_identification`: the 3 best-scoring enrolled speakers, best first, whether or not they reached `threshold`. Empty when the speaker had too little speech to compare.
      - `speaker_id` string, required: Enrolled speaker ID.
      - `name` string, nullable, required: The enrolled speaker's name.
      - `score` number, required: Similarity of this speaker's voice to the enrolled speaker (-1 to 1).
    - `compared_duration` number: Only with `speaker_identification`: seconds of this speaker's audio that were compared.
  - `utterances` Utterance[]: Completed only. Speaker turns, in time order; overlapping speech overlaps.
    - `speaker` string, required: Speaker label (`speaker_0`, `speaker_1`, … in order of first speech).
    - `speaker_name` string, nullable: Only with `speaker_identification`: the name of the enrolled speaker this speaker was matched with, or `null`.
    - `start` number, required: Start time in seconds.
    - `end` number, required: End time in seconds.
    - `text` string, required: Text of the utterance.
    - `words` Word[], required: Words of the utterance.
      - `text` string, required: The word.
      - `start` number, required: Start time in seconds.
      - `end` number, required: End time in seconds.
      - `speaker` string, required: Speaker label.
  - `words` Word[]: Completed only. Every word, in time order.
    - `text` string, required: The word.
    - `start` number, required: Start time in seconds.
    - `end` number, required: End time in seconds.
    - `speaker` string, required: Speaker label.
  - `timing_mode` 'phrase' | 'region': The `timing_mode` used.
  - `keyterms` string[]: Only when the transcript was created with `keyterms`: the list used (duplicates removed).
  - `large_meeting` boolean: Only when the transcript was created with `large_meeting: true`.
  - `speaker_identification` TranscriptSpeakerIdentification
    - `model` 'aircaps-speaker-id-v1', required
    - `status` 'pending' | 'completed' | 'failed' | 'skipped', required: `pending`: the transcript is not finished. `completed`: matched (possibly nobody). `failed`: speaker identification was unavailable; the transcript is complete without names (see `error`). `skipped`: the transcript failed.
    - `threshold` number, required
    - `speaker_ids` string[], nullable, required: The requested `speaker_ids`, or `null` for every enrolled speaker.
    - `speakers_compared` integer, nullable, required: Enrolled speakers compared (those that existed and had enrollments when the transcript was processed).
    - `speakers_identified` integer, nullable, required: Transcript speakers that got a name.
    - `error` object, nullable, required
      - `code` 'speaker_identification_failed'
      - `message` string

## Other responses

- `401`: Missing or invalid API key. Codes: `unauthorized`.
- `403`: The account may not do this. Codes: `account_suspended`, `account_disabled`.
- `404`: Not found. Codes: `not_found`.
- `500`: Server error. Safe to retry (use the same Idempotency-Key). Codes: `internal_error`.
- `503`: Temporarily unavailable. Retry after the Retry-After interval. Codes: `service_unavailable`.

---

[API](https://skmtc.dev/aircaps/apis/aircaps-api.md) - [All operations](https://skmtc.dev/aircaps/apis/aircaps-api/llms.txt) - [OpenAPI document](https://skmtc.dev/aircaps/apis/aircaps-api/revisions/442d566f9827?raw)
