Upload podcast cover image
Upload or replace the podcast'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 podcast'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/podcasts/497f6eca-6276-4993-bfeb-53cbbbba6f08/image" \ -H "Content-Type: application/octet-stream" \ -d 'string'{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"title": "The AI Revolution",
"description": "A deep dive into how artificial intelligence is transforming industries.",
"image_url": null,
"host_ids": [
"xK9mQ2pL"
],
"languages": [
"en"
],
"show_order": "episodic",
"show_visibility": "unlisted",
"url": "https://the-ai-revolution-a1b2c3.jellypod.com",
"rss_feed_url": "https://the-ai-revolution-a1b2c3.jellypod.com/rss.xml",
"episode_ids": [
"d4e5f6a7-b8c9-0123-def4-567890abcdef"
],
"created_at": "2026-03-01T10:00:00.000Z",
"updated_at": "2026-03-01T10:00:30.000Z"
}
}{
"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 podcast DELETE
Delete a podcast and all its episodes. This action is irreversible.
Generate a podcast POST
Create a new podcast and batch-generate its episodes from a prompt. Jellypod creates the podcast, then asynchronously plans episode topics, writes scripts, and generates audio. Provide your own `title` and `description`, or omit them to have the LLM generate them from the prompt. The series plan (podcast metadata and episode outlines) is generated synchronously via LLM before the response is returned. Episode audio generation happens asynchronously after the response. Returns `202 Accepted` with the full podcast and episode stubs (including LLM-generated titles). Poll individual episodes via `GET /v1/episodes/{id}` to check audio generation progress. **Generation time:** 5–30 minutes depending on the number of episodes and their length. The initial response (with titles) takes ~5–15 seconds. **Rate limit:** Counts as `num_episodes` requests against the episode generation rate limit (10 req/min). **Concurrent limit:** Max 5 episodes generating simultaneously per organization. Returns `429` with `concurrent_limit_exceeded` if exceeded.