Skip to content

Podcast transcript API

One GET request returns a published podcast episode as clean Markdown with real speaker names and timestamps.

Last updated September 2026

A podcast transcript API returns a podcast episode as text in one request, instead of as audio. There are two kinds. A retrieval API hands back the transcript a show has already published, in seconds and for cents. A transcription API generates one from the audio, in minutes and for dollars, with speakers labelled "Speaker 0".

Spoken is the first kind: a retrieval API. You don't upload audio and wait. You pass an episode ID and get Markdown back in under 30 seconds, with speakers already resolved to real names rather than a numbered label. Pricing is per episode, pre-paid, and repeat fetches of an episode you've already pulled are free.

The whole API in one call

curl -H "x-api-key: pt_demo" \
  https://spoken.md/transcripts/1000651996090

pt_demo is a real key. It works without signup and returns the demo episode.

Step by step, with a whole-show loop in Python, Node and Bash: how to get podcast transcripts programmatically.

Endpoints

EndpointReturnsCredits
GET /search?q=Matching episodes with id, title, podcast, podcastId, date. Accepts free text or a pasted episode URL.Free
GET /podcasts/{id}/episodesA show's full back catalogue, for bulk or archival runs.Free
GET /transcripts/{id}text/markdown — speaker-labeled, timestamped, UTF-8.1 (first fetch only)
GET /followingThe shows this key keeps up with: the ones you fetch from, plus any you declare with PUT or drop with DELETE /following/{id}.Free
GET /newNew episodes on those shows that you have not fetched yet, each with its transcript URL. ?format=atom is the same list as a feed, for a feed reader or an automation tool.Free
POST /top-upCheckout redirect for more credits on an existing key.Free

Search, the episode list and /new only return episodes that have a transcript. Fetching an episode moves that show's line in /new, so a scheduled poll of it, with a fetch of each ID it lists, keeps a knowledge base current without you tracking what you already have.

What comes back

# The Future of AI

**Lex Fridman** (0:12)
So let's start with the hard part. What do you think is
genuinely unsolved right now?

**Sam Altman** (0:31)
Reasoning over long horizons. Everything else is
engineering.

Speaker turns are bold, timestamps are parenthetical, and paragraph breaks follow the natural pauses in the conversation rather than a fixed line length. That means a standard Markdown splitter chunks it on speaker boundaries without extra work.

Authentication

Send your key as x-api-key, or as Authorization: Bearer pt_....

curl -H "Authorization: Bearer pt_your_key" \
  "https://spoken.md/search?q=huberman%20sleep"

Why not just run Whisper?

You can, and for your own audio you should. For published podcasts the transcription itself is the cheap part. The cost is everything around it:

  • Locating and downloading audio: 50–100 MB per episode, before you transcribe anything
  • Diarization, which gets you "Speaker 0" and "Speaker 1", not names
  • A second LLM pass to work out who those speakers actually are
  • Latency: minutes per episode instead of seconds

Spoken collapses those four steps into one fetch at $0.08–$0.15 per episode. See the full comparisons for Whisper + diarization, AssemblyAI, and Deepgram. For every podcast transcript API side by side, including the ones that generate rather than retrieve, see the 2026 ranking.

Pricing

PackPricePer episode
100 transcripts$15$0.15
500 transcripts$50$0.10
2,000 transcripts$160$0.08

No subscription. Credits never expire, errors are never charged, and re-fetching an episode you already pulled costs nothing. Prices exclude VAT, which is added at checkout for EU customers.

FAQ

Is there a free tier?

Spoken's pt_demo key needs no signup: it searches and lists any show and fetches the demo episode. Search and episode listing are free on any key; only a first-time transcript fetch spends a credit.

Can I transcribe my own audio files?

No. Spoken retrieves transcripts for published podcast episodes. For your own recordings, a speech-to-text API like Deepgram or AssemblyAI is the right tool.

Are speaker names real, or generic labels?

Spoken's speaker names are real names, resolved from context in the episode. When a speaker genuinely can't be identified, that turn keeps its generic label rather than getting a guessed name.

What are the rate limits?

Spoken has no per-key rate limit. Under burst load a request can get a 429; back off and retry it. If you're doing a large archival run, roughly three requests per second is a comfortable pace.

Can I pull an entire show's back catalogue?

Yes, and it is the most common use. List the show's episodes on Spoken, then loop the IDs through /transcripts/{id}. Each show's page on spoken.md carries a ready-made script for exactly this.

Is there an MCP server?

Yes, Spoken ships an MCP server two ways. A hosted one at https://spoken.md/mcp, for ChatGPT and other clients that connect to a URL, with nothing to install. And spoken-mcp on npm and in the official MCP registry, for clients that run a server locally. Either way an agent can call these endpoints as tools without you writing a client.

What does a transcript cost per hour of audio?

Spoken prices per episode, not per minute, so a three-hour interview costs the same single credit as a twenty-minute one.

TL;DR: If your input is a published podcast episode and your output needs real speaker names, this is one GET request instead of an audio pipeline. If your input is your own audio file, use a speech-to-text API instead.

Thousands of transcripts fetched by people building archives, summarizers, and RAG pipelines

Try it free with the key pt_demo.

Price my show's archive

Full reference: llms.txt · auth.md

Read next