Podcast Transcripts API

Get any podcast episode as a clean, speaker-labeled transcript — ready for your AI agent's context window.

Demo key available — use pt_demo to try any endpoint. No signup needed.

Why this exists

Podcast transcripts are hard to get programmatically. When you do find them, they're buried in proprietary formats, missing speaker labels, or full of timing artifacts that clutter an LLM's context window.

This API returns clean Markdown with AI-detected speaker names. One request, one transcript — ready to use.

How it works

Search for any episode by text or paste a podcast URL from any listening app. Then fetch the transcript.

# 1. Search for an episode
curl -H "x-api-key: pt_demo" \
  https://spoken.md/search?q=huberman+sleep

# 2. Get the transcript
curl -H "x-api-key: pt_demo" \
  https://spoken.md/transcripts/1000714478537

Response is text/markdown with AI-detected speaker labels and credit info in headers:

HTTP/1.1 200 OK
Content-Type: text/markdown; charset=utf-8
X-Credits-Remaining: 999
X-Credits-Charged: 1

**Andrew Huberman** (0:00)
Welcome to the Huberman Lab podcast...

Pricing

$10 / 100 credits

1 credit per successful transcript ($0.10 each). Errors are never charged.

Your API key is delivered instantly in the browser. Questions? support@spoken.md

Response codes

StatusMeaningCharged?
200Success (markdown body)1 credit
401Missing or invalid API keyNo
402No credits remainingNo
404Episode not foundNo
502Upstream error (retry later)No

Top up

When credits run out, the 402 response includes a top_up_url. Visit it to purchase more credits for your existing key.

Agent integration

A typical agent workflow: call /search to find episodes by topic, then fetch transcripts with /transcripts/{id}. Both endpoints use the same API key and credit system.

Monitor X-Credits-Remaining in response headers to alert before credits hit zero. All error responses are JSON with machine-readable error.code fields.