PodcastTranscript API

Transcribe any podcast and read our public transcription library over a simple REST API.

Base URL: https://backend.podcasttranscript.ai/api/v1

Authentication

Create an API key from your profile → API tab. Send it as a Bearer token:

curl https://backend.podcasttranscript.ai/api/v1/me \
  -H "Authorization: Bearer ptk_live_your_key"

Read endpoints work without a key (rate-limited to 60 requests/minute per IP). Creating a transcription requires a key.

Pricing & quotas

Only creating a transcription consumes quota or credits — reads are free. Dedup hits (already-transcribed audio) are never charged.

Loading pricing…

Errors

Every response is JSON. Errors look like:

{ "ok": false, "error": { "type": "quota_exceeded", "message": "…" } }

Types: auth_required (401), invalid_api_key (401), quota_exceeded (402), duration_limit (403), not_found (404), rate_limited (429), validation_error (400).

Transcribe

POST /api/v1/transcriptions

Queue a transcription from a direct audio_url or a spotify_url. Returns a job; poll it with GET /api/v1/jobs/{id}. If we already transcribed that audio, you get the finished transcript immediately (and aren't charged).

POST

GET /api/v1/jobs/{id}

Check a job's status: queuedprocessingcompleted (with transcription_id + slug) or failed.

GET

Read transcripts

GET /api/v1/transcriptions

List public transcriptions. Query: page, limit (≤100), category, language, q (search), sort (newest|popular).

GET

GET /api/v1/transcriptions/{id}

Fetch one transcript by its stable id. Add ?include=segments for timestamped segments.

GET

Account

GET /api/v1/me

Your plan, usage this period, remaining quota, and credit balance.

GET