---
title: "List transcripts"
method: GET
path: "/v1/transcripts"
tags: ["Transcripts"]
---

# List transcripts

`GET /v1/transcripts`

## Request

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

Your transcripts, newest first. Items omit the result fields (`text`, `speakers`, `utterances`, `words`).

## Query parameters

- `limit` integer
- `status` 'queued' | 'processing' | 'completed' | 'error'
- `before` string

## Response `200`

A page of transcripts.

- TranscriptList
  - `object` 'list', required
  - `data` TranscriptSummary[], required
    - `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.
  - `has_more` boolean, required
  - `next_before` string, nullable, required: Pass as `before` for the next page.

## Other responses

- `400`: Invalid request. Codes: `invalid_request`, `unsupported_language`, `unsupported_model`.
- `401`: Missing or invalid API key. Codes: `unauthorized`.
- `403`: The account may not do this. Codes: `account_suspended`, `account_disabled`.
- `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)
