Skip to main content
A podcast’s older episodes are its back catalogue: we list them with their feed metadata, but have not transcribed them. Request one, and we transcribe it. Once it is transcribed it keeps its ID, and every episode endpoint serves its transcript, speakers, entities, topics, segments, ads and clips, exactly as for any other episode. Requests belong to your organization, so they need an organization’s API key. They are not available through per-request payment (x402), which has no organization to hold them.

Find episodes to request

Back-catalogue episodes read transcript_status: requestable. List a show’s with transcript_status=requestable:
GET /v1/podcasts/{id}?include=coverage counts a show’s episodes by transcript_status and by year, to plan requests without paging through them.

Request a transcript

Send one episode per request:
A request that queues the episode answers 202 with the new request:
Only a 202 is billed as a transcription request, at your plan’s price for POST /v1/podcasts/transcription/requests, and counts as 100 requests against your monthly request usage. Every other successful request answers 200 and is billed at the regular lookup price, because there is nothing new to transcribe: So requesting an episode again, or one somebody else is already paying to transcribe, never costs a second transcription. You pay only for transcripts we deliver. A billed request that ends failed is refunded automatically, usually within half an hour: the included requests, prepaid credit or overage it used is returned to your organization, and the request’s refunded_at says when. To retry a request that timed out without paying for the lookup either, send an Idempotency-Key and resend the same key: the retry gets the first response back and is not billed.

How many, and how long

There is no limit on how many episodes you request. Send requests as fast as you like, within the API’s general rate limit of 10,000 calls a minute per organization. Requests are transcribed concurrently, including episodes of the same podcast, so a batch of a few dozen takes about as long as its longest episode. A larger batch is worked through as earlier requests finish, with organizations served by plan and then evenly, so one organization’s large backlog does not hold up anyone else’s requests. From the request to state: transcribed usually takes: transcribed means the transcript and its speakers are ready. The rest of the episode’s data (segments, clips, entities, topics and ads) usually follows within a few minutes more.

Follow a request

A request moves through these states: Follow a request with either of:
  • GET /v1/podcasts/transcription/requests/{id}, the request itself;
  • GET /v1/podcasts/episodes/{id}, whose transcript_status changes as the request does.
Checking every 15 to 30 seconds is plenty. Stop at transcribed or failed: both are final.
GET /v1/podcasts/transcription/requests lists your organization’s requests, newest first, filtered by state and podcast_id. To follow a batch, list it rather than polling each request: ?state=transcribed&podcast_id=… returns the ones that have finished. Reading requests is never billed. A back-catalogue episode does not appear in the episode feed or stream when it is transcribed: they carry the episodes podcasts publish, and an old episode transcribed today is not news. Follow your requests instead.

Errors

None of these is billed.