List transcripts
Transcripts on the account, newest first. Items omit `text` and `words`; fetch a single transcript to get those. `since` and `until` cut by creation date in the database, so closing out one day of cost does not mean paging through the whole account: `?since=2026-08-27T00:00:00Z&until=2026-08-28T00:00:00Z`.
Transcripts on the account, newest first. Items omit text and words; fetch a single transcript to get those.
since and until cut by creation date in the database, so closing out one day of cost does not mean paging through the whole account: ?since=2026-08-27T00:00:00Z&until=2026-08-28T00:00:00Z.
Authorization
bearerAuth API key (tk_...)
In: header
Query Parameters
1-based page number (default 1)
1 <= value <= 100000Items per page, up to 100 (default 20)
1 <= value <= 100Value in
- "processing"
- "done"
- "failed"
- "canceled"
Only transcripts created with this externalId
length <= 128The nextCursor of the previous page. Use it instead of page to walk a long history: it never skips or repeats a transcript, and it does not count the whole account
length <= 200Only transcripts created at or after this ISO 8601 date-time
Only transcripts created before this ISO 8601 date-time
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/v1/transcripts"{ "data": { "transcripts": [ { "id": "string", "status": "processing", "error": { "code": "audio_too_long", "message": "string" }, "language": "string", "durationSeconds": 0, "speakerCount": 0, "cost": 0, "currency": "USD", "model": "string", "url": "string", "retentionDays": 0, "externalId": "string", "metadata": {}, "createdAt": "string" } ], "nextCursor": "string", "total": 0, "page": 0, "perPage": 0 }}Migrar para cá
De outra API de transcrição ou de um script próprio com modelo aberto: o mapa de conceitos, o que muda no seu código e o que conferir antes de virar a chave.
Create transcript POST
Starts a transcription and returns it right away with `status: "processing"`. **Audio**: `url` (any public http(s) address) **or** `uploadId` (from `POST /v1/uploads`), exactly one of the two. **Result**: poll `GET /v1/transcripts/{id}` until `status` is `done` or `failed`, or pass `webhookUrl` to be called when it finishes. **Billing**: charged on completion, from the real audio duration (max 10 hours). Failed transcripts are never charged. `reuseIfIdentical` (on an upload created with `sha256`) returns the transcript the account already has for that exact audio instead of charging twice. **Retries**: send an `Idempotency-Key` header (up to 64 chars); the same key returns the same transcript instead of creating and charging a second one. The same key with a different body is a `409`. An `uploadId` changes on every retry, so key the request by your first `uploadId`, never by your own media id. **Trial limit**: until the first top-up, at most 2 transcriptions run at once; a third gets `429 concurrency_limit`.