One GET request returns a published podcast episode as clean Markdown — real speaker names, timestamps, no audio handling.
Last updated August 2026
Spoken is a transcript retrieval API, not a speech-to-text 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 "Speaker 0". Pricing is per episode, pre-paid, and repeat fetches of an episode you've already pulled are free.
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, so you can check the output shape before paying for anything.
| Endpoint | Returns | Credits |
|---|---|---|
GET /search?q= |
Matching episodes with id, title, podcast, podcastId, date. Accepts free text or a pasted episode URL. |
Free |
GET /podcasts/{id}/episodes |
A 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) |
POST /top-up?key= |
Checkout redirect for more credits on an existing key. | Free |
Both search endpoints only return episodes that are actually fetchable, so an ID they hand you resolves to a transcript rather than a 404.
# 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.
Send your key as x-api-key, or as Authorization: Bearer pt_... — same credential, same privileges.
curl -H "Authorization: Bearer pt_your_key" \
"https://spoken.md/search?q=huberman%20sleep"
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:
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 transcripts rather than retrieve them — see the 2026 ranking.
| Pack | Price | Per 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.
The pt_demo key works on every endpoint without signup. Search and episode listing are free on any key; only a first-time transcript fetch spends a credit.
No. Spoken retrieves transcripts for published podcast episodes. For your own recordings — meetings, calls, interviews — a speech-to-text API like Deepgram or AssemblyAI is the right tool.
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.
There's no per-key rate limit, but the service is capped fleet-wide against burst load. If you're doing a large archival run, roughly three requests per second is a comfortable pace; a 429 means back off and retry.
Yes — that's the most common use. List the show's episodes, then loop the IDs through /transcripts/{id}. Each show's page carries a ready-made script for exactly this.
Yes. spoken-mcp is on npm and in the official MCP registry, so an agent can call these endpoints as tools without you writing a client.
Pricing is 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
No signup required — use API key pt_demo on any endpoint.