New: 13 caption styles
Jellypod Docs

Create a video

POST
/v1/videos

Authorization

bearerAuth
headerAuthorizationBearer <token>

API key issued from /settings/api-keys in the Jellypod studio. Send as Authorization: Bearer <key>.

Header Parameters

idempotency-key?string

Optional key for one logical generation command. Reuse the same key and input after a lost or uncertain response. After a proven rejection before work starts, follow recovery.idempotency_key. Omit it to start a new generation on every request.

Match^[\x21-\x7e]+$
Length1 <= length <= 255

Request Body

application/json
  1. body
host_id?string

Narrator Host ID. Required unless host_ids is given. Do not combine with host_ids.

Length1 <= length
language?string

Narration language code. Defaults to en.

Value in"en""es""fr""hi""pt""zh""de""ja""ar""ru""ko""id""it""nl""tr""pl""sv""fil""ms""ro""uk""el""cs""da""fi""no""bg""hr""sk""ta""ace""af""ak""sq""am""hy""as""awa""az""ban""bjn""ba""eu""be""bem""bn""bho""bs""bug""my""yue""ca""ckb""hne""ny""crh""dyu""dz""et""gl""lg""ka""gn""gu""ht""ha""he""hu""is""ig""ga""jv""kab""kam""kn""ks""kk""km""ki""rw""kg""ky""lo""ltg""lv""lt""lb""mk""mag""mai""ml""mt""mni""mr""min""lus""mn""ne""nso""or""pag""ps""fa""pa""sat""sr""sd""si""sl""so""sw""ss""tg""te""th""ti""ur""ug""uz""vi""cy"
orientation?string

Output orientation. Omit for AUTO, which follows the product policy.

Value in"AUTO""PORTRAIT""LANDSCAPE""SQUARE"
prompt?string

Instructions for writing new narration: describe the story, audience, and desired result. To preserve finished narration word for word, use script instead.

Length1 <= length <= 20000
script?string

Finished plain-text narration. Put [Character Name] on its own line before each turn. Speaker labels resolve to saved Characters unless speaker_characters assigns their IDs, and may resolve to at most 4 distinct Characters.

Length1 <= length <= 75000
source_ids?array<>

Sources owned by your organization. Generation waits for processing Sources; missing or failed Sources are rejected.

Itemsitems <= 100
speaker_characters?array<>

Optional explicit assignments for a finished script: label as written in [brackets], and character_id from list_characters. Assignments override name matching; unmapped labels still match saved Character names.

Items1 <= items <= 200
style_id?string

Visual style ID. Omit to use the product's default style.

Value in"almanac""atomic-age""blueprint""chalkboard""claymation""crayon""flat""gouache""paper-mache""pixel-art""retro-comics""sketch""stickman""toy-bricks""watercolor""whiteboard-explainer"
background_music?boolean

Include background music. Applies to Shorts, under three minutes, and defaults to on.

host_ids?array<>

Ordered Host IDs. Supports up to four. Do not combine with host_id.

Items1 <= items <= 4
target_duration_seconds?||||||||

Duration in seconds. 30 or 60 seconds makes a Short; 180 or more makes a Video. Without one, a script is measured by its narration and a prompt defaults to 300.

Response Body

Generation accepted. Check the status URL until generation finishes.

application/json
  1. response
data*
curl -X POST 'https://api.jellypod.com/v1/videos' \  -H 'Content-Type: application/json' \  -d '{}'
{  "data": {    "background_music": true,    "created_at": "string",    "error": "string",    "generation_id": "string",    "host_id": "string",    "host_ids": [      "string"    ],    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "language": "en",    "object": "short",    "orientation": "LANDSCAPE",    "phase": "string",    "status": "idle",    "studio_url": "http://example.com",    "style_id": "string",    "target_duration_seconds": 0,    "title": "string",    "updated_at": "string"  }}

Was this page helpful?