Unpublish an episode
Unpublish or unschedule an episode, reverting it to draft status.
The episode must be in published or scheduled status. Returns
422 if the episode is in any other status.
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.
uuidResponse Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://api.jellypod.com/v1/episodes/497f6eca-6276-4993-bfeb-53cbbbba6f08/unpublish"{
"data": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"podcast_id": "4c1cb0f8-818b-4f7a-9ddb-0d1ea990b35a",
"status": "generating",
"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": [
"0ef3b708-5992-473f-8907-de8eaa4f1ec9"
],
"generation": {
"phase": "string",
"progress_pct": 0
},
"error_message": "string",
"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"
}
]
}
}Was this page helpful?
Delete an episode DELETE
Permanently delete an episode and its associated media.
Get episode timestamps GET
Returns timing data for the episode's generated audio, derived from the episode timeline. Useful for synced transcripts, karaoke-style word highlighting, speaker-attributed transcripts, or subtitle tracks on a video player. Available as soon as audio has been generated — the episode does not need to be published. Three output formats are supported via the `format` query param: - `json` (default): structured timings, shape depends on `granularity` - `srt`: SubRip subtitle file (`application/x-subrip`) - `vtt`: WebVTT subtitle file (`text/vtt`), with `<v Speaker>` voice tags when speaker attribution is available ### Speaker attribution Because Jellypod generates audio with specified hosts, speaker attribution is deterministic — unlike diarization APIs there is no confidence score. Each audio item on the timeline corresponds to exactly one host (one contiguous utterance). JSON responses include a top-level `speakers` array; individual words or segments reference speakers by integer index. Each entry exposes the host's `host_id` (matching `GET /hosts/{host_id}`) and display `name`. If an audio item had no speaker metadata the reference will be `null`. Returns `404` with `not_found` if the episode has no timestamps yet (audio has not been generated).