Podcast transcripts.
Ready to build on.
Turn a public podcast episode into structured, timed text. One API. Five formats. A clear price before you spend a credit.
120 free credits at signup No card required
curl 'https://k8mfogcvz4.execute-api.us-east-1.amazonaws.com/prod/v1/reads/job_2c1d4e9fA7bQ3xzM?format=srt' \
-H 'Authorization: Bearer hk_live_...'1
00:00:00,000 --> 00:00:01,420
Welcome back to the show.
2
00:00:01,420 --> 00:00:05,180
This week, how an RSS feed becomes a
searchable transcript.
Bring an episodeApple Podcasts · RSS + GUID · Episode ID
Choose your outputJSON · Text · SRT · VTT · Markdown
Keep buildingPaid reads are free to fetch again
01 / The workflow
Three calls. Then it’s your data.
Quote, confirm, read. A small API surface that fits the way you already build.
Know the cost before you commit.
Select your episodes and get an itemized quote. Cached transcripts cost one credit. New transcripts are estimated from the feed’s duration. Unpriceable episodes come back with a reason.
Nothing is reserved or charged.
curl -X POST https://k8mfogcvz4.execute-api.us-east-1.amazonaws.com/prod/v1/quotes \
-H 'Authorization: Bearer hk_live_...' \
-H 'Content-Type: application/json' \
-d '{
"shows": [
{
"feed_url": "https://feeds.example.com/the-interval.xml",
"title": "The Interval"
},
{
"feed_url": "https://feeds.example.com/field-notes.xml",
"title": "Field Notes"
}
],
"episodes_per_show": 2
}'{
"quote_id": "qte_9k2fA7bQ3xzM1LpN",
"source": "shows",
"episodes_per_show": 2,
"entries": [
{
"episode_id": "ep_rwg4do2imnjyhaj7",
"show_id": "sh_k4n7qzvw2mtxyabc",
"feed_url": "https://feeds.example.com/the-interval.xml",
"guid": "the-interval-2026-09-05",
"show_title": "The Interval",
"episode_title": "What we got wrong about batteries",
"published_at": "2026-09-05T09:00:00Z",
"is_cached": true,
"estimated_credits": 1,
"quote_ceiling_credits": 1,
"quote_basis": "feed_metadata",
"declared_duration_seconds": 3600
},
{
"episode_id": "ep_3iicyxg6ymbv75gy",
"show_id": "sh_k4n7qzvw2mtxyabc",
"feed_url": "https://feeds.example.com/the-interval.xml",
"guid": "the-interval-2026-09-02",
"show_title": "The Interval",
"episode_title": "The long tail of firmware updates",
"published_at": "2026-09-02T09:00:00Z",
"is_cached": false,
"estimated_credits": 60,
"quote_ceiling_credits": 75,
"quote_basis": "feed_metadata",
"declared_duration_seconds": 3600
},
{
"episode_id": "ep_uy4pqvjsmeyrhavz",
"show_id": "sh_x5z7grcs3p4y5h62",
"feed_url": "https://feeds.example.com/field-notes.xml",
"guid": "field-notes-2026-09-04",
"show_title": "Field Notes",
"episode_title": "Recording in the rain",
"published_at": "2026-09-04T09:00:00Z",
"is_cached": false,
"estimated_credits": 45,
"quote_ceiling_credits": 57,
"quote_basis": "feed_metadata",
"declared_duration_seconds": 2700
}
],
"excluded": [
{
"feed_url": "https://feeds.example.com/field-notes.xml",
"guid": "field-notes-2026-08-28",
"title": "Field Notes — Twelve minutes of wind",
"reason": "no_declared_duration",
"detail": "the feed declares no <itunes:duration>, so there is nothing to price from"
}
],
"clamps": [],
"cached_members": 1,
"uncached_members": 2,
"total_ceiling_credits": 133,
"balance_credits": 240,
"reserved_credits": 0,
"remaining_open_jobs": 10,
"expires_at": "2026-09-08T09:15:00Z",
"created_at": "2026-09-08T09:00:00Z"
}Worked example: two shows, two recent episodes each. One cached, two new, one excluded because its duration is unknown. All sample shows are illustrative.
02 / Made for your stack
One transcript.
Every way you need it.
Choose the format when you read, not when you submit. Every output comes from the same canonical transcript.
- Build with structured dataJSON with timings and provenance.
- Put words on the timelineSRT and VTT for subtitles and players.
- Feed your next ideaText and Markdown for your own tools.
{
"format": "json",
"is_cached": true,
"credits_charged": 0,
"transcript": {
"episode_id": "ep_rwg4do2imnjyhaj7",
"show_id": "sh_k4n7qzvw2mtxyabc",
"language": "en",
"duration_sec": 3600,
"source": "qwen3-asr",
"source_revision": "sha256:8f14e45fceea167a5a36dedd4bea2543deca1c7c8b3c7e2b",
"model_version": "qwen3-asr-1.7b",
"pipeline_version": "2026.08-vad4-fw1.2",
"timing_precision": "word",
"diarized": false,
"warnings": [],
"segments": [
{
"id": 0,
"start": 0,
"end": 1.42,
"speaker": null,
"text": "Welcome back to the show.",
"words": [
{ "w": "Welcome", "s": 0, "e": 0.31 },
{ "w": "back", "s": 0.31, "e": 0.62 },
{ "w": "to", "s": 0.62, "e": 0.74 },
{ "w": "the", "s": 0.74, "e": 0.86 },
{ "w": "show.", "s": 0.86, "e": 1.28 }
]
},
{
"id": 1,
"start": 1.42,
"end": 5.18,
"speaker": null,
"text": "This week, how an RSS feed becomes a searchable transcript.",
"words": [
{ "w": "This", "s": 1.42, "e": 1.63 },
{ "w": "week,", "s": 1.63, "e": 1.95 },
{ "w": "how", "s": 2.18, "e": 2.36 },
{ "w": "an", "s": 2.36, "e": 2.48 },
{ "w": "RSS", "s": 2.48, "e": 2.94 },
{ "w": "feed", "s": 2.94, "e": 3.26 },
{ "w": "becomes", "s": 3.26, "e": 3.71 },
{ "w": "a", "s": 3.71, "e": 3.8 },
{ "w": "searchable", "s": 3.8, "e": 4.42 },
{ "w": "transcript.", "s": 4.42, "e": 5.06 }
]
}
],
"created_at": "2026-09-08T09:01:04Z"
}
}03 / Simple economics
Start free. Scale with your ideas.
A credit is one audio minute. A 60-minute episode costs 60 credits to transcribe. Once a transcript exists, reading it costs one credit — however long the episode.
Free
$0no card
120 credits once, at signup
120 minutes of audio — about 2 episodes of an hour. It is not refilled.
Start building- Requests a minute
- 10
- Chart size
- 10
- Episodes per selection
- 3
- Jobs open at once
- 3
Hobby
$9per month
1,200 credits a month
1,200 minutes of audio — about 20 episodes of an hour.
Get started with Hobby- Requests a minute
- 60
- Chart size
- 20
- Episodes per selection
- 10
- Jobs open at once
- 10
Startup
$19per month
3,000 credits a month
3,000 minutes of audio — about 50 episodes of an hour.
Get started with Startup- Requests a minute
- 150
- Chart size
- 30
- Episodes per selection
- 30
- Jobs open at once
- 30
Growth
$49per month
9,000 credits a month
9,000 minutes of audio — about 150 episodes of an hour.
Get started with Growth- Requests a minute
- 400
- Chart size
- 40
- Episodes per selection
- 60
- Jobs open at once
- 60
Scale
$149per month
30,000 credits a month
30,000 minutes of audio — about 500 episodes of an hour.
Get started with Scale- Requests a minute
- 1,000
- Chart size
- 50
- Episodes per selection
- 100
- Jobs open at once
- 100
Your signup credits are a one-time grant. Paid plans include a monthly allowance. Credits are spent oldest grant first. The ceilings above are provisional, so the API is the authority on your own: GET /v1/limits reports the row your key is held to, and X-RateLimit-Limit comes back on every response to a resolved key.
04 / The fine print, up front
A focused API.
Clear boundaries.
Know what fits before you wire it up. Here’s the scope of the paid beta.
Your next build starts here
Less plumbing. More building.
Create an account, get an API key, and put your first transcript to work.
One-time signup grant. No card required.
