Upload episode cover image
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.
Authorization
BearerAuth Jellypod API key. Create and manage keys from the Jellypod dashboard under Settings → API Keys.
In: header
Path Parameters
The episode's unique identifier.
uuidRequest Body
application/octet-stream
Raw image bytes. Set the Content-Type header to image/jpeg, image/png, or image/webp.
TypeScript Definitions
Use the request body type in TypeScript.
binaryResponse Body
application/json
application/json
application/json
application/json
application/json
curl -X PUT "https://api.jellypod.com/v1/episodes/497f6eca-6276-4993-bfeb-53cbbbba6f08/image" \ -H "Content-Type: application/octet-stream" \ -d 'string'{
"data": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"image_url": "http://example.com"
}
}{
"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?
Generate an episode (one-shot) POST
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.
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`.