Podcast Transcript API
Transcribe any podcast episode programmatically — from a Spotify link, an Apple Podcasts RSS audio URL, or any direct MP3 — and get back clean text with timestamped segments, an AI summary and auto-generated FAQs. Or skip transcription entirely and read our public library of 35,000+ episodes already transcribed.
Base URL: https://backend.podcasttranscript.ai/api/v1 · 20 free transcriptions · no credit card
What you can build
Speech-to-text for podcasts, without running Whisper yourself or paying per minute of GPU time.
Searchable show archives
Turn a back catalogue into text you can index, quote and link — every episode, in one pass.
Captions & chapters
Timestamped segments map straight onto subtitle files, chapter markers and jump-to-moment players.
Show notes that write themselves
Every transcript ships with a summary, a long-form summary and generated FAQs — no extra LLM bill.
Research & monitoring
Read 35,000+ existing transcripts across Spotify and Apple Podcasts shows without spending quota.
Quickstart
Reads need no key at all. Create a key from your profile → API tab when you want to transcribe.
# 1. Read a transcript — no API key needed
curl "https://backend.podcasttranscript.ai/api/v1/transcriptions?limit=5"
# 2. Transcribe a Spotify episode — key required
curl -X POST https://backend.podcasttranscript.ai/api/v1/transcriptions \
-H "Authorization: Bearer ptk_live_your_key" \
-H "Content-Type: application/json" \
-d '{"spotify_url":"https://open.spotify.com/episode/..."}'
# 3. Poll the job until it is done
curl https://backend.podcasttranscript.ai/api/v1/jobs/JOB_ID \
-H "Authorization: Bearer ptk_live_your_key"Pricing
Only creating a transcription costs anything. Reading transcripts is free and unmetered, and an episode we have already transcribed is returned instantly without being charged.
| Plan | Included transcriptions | Price |
|---|---|---|
| Free | 20 free, one time | Free |
| Pro | 100 / month | Free |
| Starter | 2,000 / month | $19/mo |
| Growth | 6,000 / month | $49/mo |
| Scale | 20,000 / month | $149/mo |
| 100 credits | One-off, never expire | $9 |
| 500 credits | One-off, never expire | $39 |
| 2,000 credits | One-off, never expire | $129 |
Credits are only consumed after a monthly allowance runs out. On the free tier, episodes longer than 90 minutes need a paid plan or credits. Read endpoints are limited to 60 requests per minute per IP.
API reference
Every response is JSON shaped as { "ok": true, "data": … }, or { "ok": false, "error": { "type", "message" } } on failure. Error types: auth_required, invalid_api_key (401), quota_exceeded (402), duration_limit (403), not_found (404), rate_limited (429), validation_error (400).
POST/api/v1/transcriptions
Queue a transcription from either audio_url (any direct http(s) audio file, including an Apple Podcasts RSS enclosure) or spotify_url — one or the other, not both. Returns a job to poll. If the audio was transcribed before, the finished transcript comes straight back and no quota is spent.
GET/api/v1/jobs/{id}
Poll a job: queued → processing → completed (carrying transcription_id and slug) or failed.
GET/api/v1/transcriptions
List public transcripts. Query: page, limit (max 100), category, language, sort (newest or popular) and q, which matches episode titles and descriptions. Transcript text is omitted from list results — fetch a single record for that.
GET/api/v1/transcriptions/{id}
One transcript by its stable id. Add ?include=segments for timestamped segments. /by-slug/{slug} does the same by URL slug.
GET/api/v1/me
Your plan, usage this period, remaining quota and credit balance.
GET/api/v1/plans
The live pricing catalog powering the table above. No key required.
Frequently asked questions
What does the Podcast Transcript API do?
It turns podcast audio into text. Send a Spotify episode link or a direct audio URL and you get back a full transcript with timestamped segments, plus an AI summary, long summary and FAQs generated from the episode. You can also read our public library of already-transcribed episodes without transcribing anything yourself.
Does it work with Spotify and Apple Podcasts?
Spotify episode links are supported directly — pass spotify_url and we resolve the audio for you. Apple Podcasts episodes work too, via the episode's direct audio URL from the show's RSS feed: pass that as audio_url. Any publicly reachable MP3 or audio file works the same way, whichever app the show is listed in.
Is there a free tier?
Yes. Every account gets 20 transcriptions free, and they do not expire. Reading transcripts is free and unmetered — the read endpoints work with no API key at all, rate limited to 60 requests per minute per IP. You only spend quota when you create a new transcription.
What happens if the episode was already transcribed?
You get the finished transcript back immediately and you are not charged. We deduplicate on the audio URL, so re-requesting an episode that we or another user already processed costs nothing and returns instantly instead of queueing.
How accurate is the transcription, and which languages work?
Transcription runs on Whisper large-v3 on an NVIDIA GPU — the full model, not a distilled or turbo variant. Language is auto-detected, and the multilingual model handles roughly 100 languages; our library is heavily non-English already, with German, Spanish, Portuguese and Polish all well represented.
How long does a transcription take?
Roughly ten times faster than real time, so a one-hour episode finishes in about six to seven minutes once it starts. Creating a transcription returns a job immediately — poll GET /api/v1/jobs/{id} until it reports completed, then fetch the transcript.
Do I get timestamps and speaker labels?
Timestamps yes: add ?include=segments to a transcript request and you get every segment with its start and end time, which is what you need for captions, chapter markers or jump-to-moment playback. Speaker labels are a separate feature on the website and are not currently returned by the API.
What are the rate limits?
Read endpoints allow 60 requests per minute per IP, and every response carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset headers so you can back off cleanly. Transcription requests are bounded by your plan's monthly quota rather than a per-minute limit, and quota headers are returned on each call.
Can I search inside transcripts?
Not yet through the API. The q parameter on the list endpoint matches episode titles and descriptions, not the transcript body. Full keyword search across transcript text is in progress.
What happens when I run out of quota?
The API returns HTTP 402 with a typed quota_exceeded error rather than failing silently, and the response headers tell you your limit, usage and reset date. You can either move up a plan or buy one-off credit packs, which never expire and are consumed only after your monthly allowance is gone.