The Podmenti API
Everything the site does, programmatically: search podcasts, list episodes, fetch transcripts as text, JSON, SRT or VTT, with segment and word-level timestamps, and queue new episodes for transcription. One key, one credit balance, shared with the website.
Authentication
Create a key (it starts with 20 free credits), then pass it as a bearer token. The key is your account: store it safely.
curl -X POST https://podmenti.com/api/v1/keys \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com"}' # email optional, for receipts
# every call after that:
curl https://podmenti.com/api/v1/me \
-H "Authorization: Bearer pm_YOUR_KEY" Endpoints
POST /api/v1/keys | Create an account key. Free, includes 20 credits. |
GET /api/v1/me | Balance and everything you've unlocked. |
GET /api/v1/search?q= | Podcast search. Shows we index continuously are flagged indexed. |
GET /api/v1/shows/{feed_id}/episodes?max=100 |
Episodes with transcript_id and status: ready,
processing or none. Up to 500.
|
GET /api/v1/transcripts/{transcript_id} |
The transcript. ?format=json (plain segments) and
?format=text are free.
?format=json×tamps=1&words=1, srt,
vtt and timestamped txt need an unlock.
|
POST /api/v1/unlock | {"transcript": "<id>"}: 10 credits, once per
transcript, then every format is yours forever.
|
POST /api/v1/requests |
Queue episodes for transcription. Free: 3 episodes, within 24 hours. With
"rush": true: 25 credits per episode, front of the queue,
typically within the hour, up to 25 at once. Emails you when done.
|
Word-level timestamps
Our transcriber stores the start time of every single word, not just every subtitle line.
After unlocking, ?format=json×tamps=1&words=1 returns them:
{
"segments": [{
"start": 61.4, "end": 66.9,
"text": "And I'm Tim Houlihan. So we talk with researchers",
"words": [
{"w": "And", "s": 61.4}, {"w": "I'm", "s": 61.55},
{"w": "Tim", "s": 61.72}, {"w": "Houlihan.", "s": 61.94}, …
]
}, …]
} That powers karaoke-style highlighting, precise audio deep links, clip cutting and search that jumps to the exact second. SRT and VTT exports drop straight into video editors and players.
A full example
# find the show
curl -s "https://podmenti.com/api/v1/search?q=huberman" -H "$AUTH"
# list episodes, grab a transcript_id with transcript_status "ready"
curl -s "https://podmenti.com/api/v1/shows/1365758/episodes" -H "$AUTH"
# read it free
curl -s "https://podmenti.com/api/v1/transcripts/$ID?format=text" -H "$AUTH"
# unlock once (10 credits), then take every format
curl -s -X POST https://podmenti.com/api/v1/unlock -H "$AUTH" \
-H "Content-Type: application/json" -d '{"transcript": "'$ID'"}'
curl -sO "https://podmenti.com/api/v1/transcripts/$ID?format=srt" -H "$AUTH" Pricing and limits
- Credit packs: 100 for $5, 300 for $12, 1000 for $30 at /credits.
- Unlock: 10 credits per transcript, permanent. Rush: 25 credits per episode.
- Rate limit: 5,000 requests per key per day (X-RateLimit-Remaining header).
- Errors are JSON:
{"error": {"code", "message"}}. 402 means credits are needed.
Building something bigger, need higher limits, or want an MCP connector for your AI assistant? Write to contact@podmenti.com.