Generate an episode (one-shot)
Create an episode from a prompt. Jellypod asynchronously researches the topic, writes a multi-host script, and generates audio.
Returns 202 Accepted with the episode in generating status.
Poll GET /v1/episodes/{id} every 5 seconds to check progress.
When complete, status changes to draft and audio_url becomes
available.
Generation time: 2–8 minutes depending on episode length and number of sources.
Concurrent limit: Max 5 episodes generating simultaneously per
organization. Returns 429 with concurrent_limit_exceeded if exceeded.
Authorization
BearerAuth Jellypod API key. Create and manage keys from the Jellypod dashboard under Settings → API Keys.
In: header
Path Parameters
The podcast's unique identifier.
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://api.jellypod.com/v1/podcasts/497f6eca-6276-4993-bfeb-53cbbbba6f08/episodes/generate" \ -H "Content-Type: application/json" \ -d '{ "prompt": "Explore the latest developments in AI agents and how they\'re changing software development workflows.", "options": { "episode_length": "medium", "web_search": true } }'{
"status": "accepted",
"data": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"podcast_id": "4c1cb0f8-818b-4f7a-9ddb-0d1ea990b35a",
"host_ids": [
"string"
],
"status": "generating",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
}{
"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"
}
]
}
}{
"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"
}
]
}
}{
"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?
Delete a source DELETE
Delete a source. Removes it from any linked podcasts, episodes, or hosts.
Upload episode cover image PUT
Upload or replace the episode's cover image. Send the raw image bytes as the request body with the appropriate `Content-Type` header. **Supported formats:** JPEG, PNG, WebP. **Maximum size:** 10 MB.