curl -X POST \
-H "X-API-Key: $PARTICLE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"episode_id": "5HZ8M9tlTQ0yTgtObZ5zJs"
}' \
"https://api.particle.pro/v1/podcasts/transcription/requests"{
"episode_id": "<string>",
"state": "queued",
"admitted_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"failure_reason": "<string>",
"id": "<string>",
"podcast_id": "<string>"
}{
"episode_id": "<string>",
"state": "queued",
"admitted_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"failure_reason": "<string>",
"id": "<string>",
"podcast_id": "<string>"
}{
"detail": "Property foo is required but is missing.",
"error_code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"resolve": {
"message": "<string>",
"action": "<string>",
"endpoint": "<string>",
"method": "<string>",
"url": "<string>"
},
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example"
}Request an episode's transcription
Queues an episode discovered in its podcast’s back catalogue (transcript_status requestable) to be transcribed. Returns 202 with the new request that queues the episode, the only outcome billed as a transcription. Returns 200, billed as a lookup, when there is nothing to transcribe: you have requested the episode before (the existing request), another organization’s request already queued it (your own request, tracking it), or we already hold the episode (no request is created, and state says where its transcript stands). A request starts transcribing within seconds while there is capacity; when there is not, it waits its turn, with organizations served by plan and then evenly. Poll GET /v1/podcasts/transcription/requests/ or the episode’s transcript_status. The episode keeps its ID once transcribed, and every episode endpoint then serves it. 422 episode_audio_unavailable when its audio cannot be fetched; 429 transcription_request_limit_exceeded past your limits (GET /v1/podcasts/transcription).
curl -X POST \
-H "X-API-Key: $PARTICLE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"episode_id": "5HZ8M9tlTQ0yTgtObZ5zJs"
}' \
"https://api.particle.pro/v1/podcasts/transcription/requests"{
"episode_id": "<string>",
"state": "queued",
"admitted_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"failure_reason": "<string>",
"id": "<string>",
"podcast_id": "<string>"
}{
"episode_id": "<string>",
"state": "queued",
"admitted_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"failure_reason": "<string>",
"id": "<string>",
"podcast_id": "<string>"
}{
"detail": "Property foo is required but is missing.",
"error_code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"resolve": {
"message": "<string>",
"action": "<string>",
"endpoint": "<string>",
"method": "<string>",
"url": "<string>"
},
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example"
}Authorizations
Pass your API key in the X-API-Key header (recommended).
Body
The episode to transcribe: the id of an episode whose transcript_status is requestable, as GET /v1/podcasts/episodes?podcast_id=…&transcript_status=requestable lists them.
Response
Nothing to transcribe, billed as a lookup: an existing request, your own request joining another organization's queue, or an episode we already hold.
The episode, for GET /v1/podcasts/episodes/{id}. It keeps this ID once transcribed.
queued: waiting its turn. admitted: being transcribed. transcribed: the transcript is available. failed: it will not be transcribed; failure_reason says why.
queued, admitted, transcribed, failed When transcription started.
When the request was transcribed or failed.
When the request was made.
Why a failed request will not be transcribed, e.g. enclosure_gone when the publisher removed the audio, or timed_out.
The request's ID, for GET /v1/podcasts/transcription/requests/{id}. Absent when no request was needed because we already hold the episode: state then reports where its transcript stands.
The episode's podcast.
Was this page helpful?