List episodes
List all episodes in the organization. Supports filtering by podcast and status.
Authorization
BearerAuth Jellypod API key. Create and manage keys from the Jellypod dashboard under Settings → API Keys.
In: header
Query Parameters
Opaque cursor from a previous response's next_cursor field. Omit for the first page.
Number of items to return per page.
201 <= value <= 100Filter episodes by podcast ID.
uuidFilter episodes by status.
"draft" | "generating" | "ready" | "scheduled" | "published" | "failed"Response Body
application/json
application/json
application/json
curl -X GET "https://api.jellypod.com/v1/episodes"{
"data": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"podcast_id": "4c1cb0f8-818b-4f7a-9ddb-0d1ea990b35a",
"status": "draft",
"title": "string",
"description": "string",
"image_url": "http://example.com",
"video_url": "http://example.com",
"audio_url": "http://example.com",
"duration": 0,
"host_ids": [
"string"
],
"source_ids": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
],
"pagination": {
"has_more": true,
"next_cursor": "string"
}
}{
"error": {
"code": "bad_request",
"message": "string",
"request_id": "string",
"details": [
{
"field": "string",
"message": "string"
}
]
}
}{
"error": {
"code": "bad_request",
"message": "string",
"request_id": "string",
"details": [
{
"field": "string",
"message": "string"
}
]
}
}Was this page helpful?
Publish an episode POST
Publish or schedule an episode that has completed audio generation. The episode must be in `draft` status with audio in its timeline. This triggers video rendering, Mux upload, credit deduction, and publishing. Omit `scheduled_time` for immediate publish, or provide an ISO 8601 datetime to schedule. Poll `GET /v1/episodes/{episode_id}` to track rendering progress. Once complete, the episode status changes to `published` or `scheduled`.
Get an episode GET
Retrieve a single episode. Use this to poll generation status. While generating, the response includes a `generation` object with `phase` and `progress_pct`. When complete, `status` changes to `draft` and `audio_url` is populated.