View raw JSON
{
"type": "object",
"required": [
"body"
],
"properties": {
"body": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"content"
],
"~standard": {
"vendor": "zod",
"version": 1,
"jsonSchema": {}
},
"properties": {
"ratio": {
"enum": [
"16:9",
"4:3",
"1:1",
"3:4",
"9:16",
"21:9",
"adaptive"
],
"type": "string",
"description": "Aspect ratio. Omit for the upstream default (adaptive - picks the best fit from your prompt/inputs)."
},
"content": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"required": [
"type",
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 6000,
"minLength": 1,
"description": "Text prompt describing the video (recommended <1000 words). Refer to your other content items by ordinal, numbered per type in array order: @Image1, @Image2, @Video1, @Audio1 - and say what each one supplies (appearance, motion, timbre) and what it should not. Mark sounds with () music, <> sound effects, {} dialogue, 【】 subtitles; prefix non-English dialogue with its language."
},
"type": {
"type": "string",
"const": "text"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"type",
"image_url"
],
"properties": {
"role": {
"enum": [
"first_frame",
"last_frame",
"reference_image"
],
"type": "string",
"description": "first_frame (image-to-video, default) pins the exact opening frame; last_frame (only with a first_frame) pins the closing one; reference_image (up to 9) is soft guidance for subject or style, not a frame."
},
"type": {
"type": "string",
"const": "image_url"
},
"image_url": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"type",
"video_url"
],
"properties": {
"role": {
"type": "string",
"const": "reference_video",
"description": "Reference video (up to 3, each 2-15s, total <=15s) for multimodal generation, video editing, or extension."
},
"type": {
"type": "string",
"const": "video_url"
},
"video_url": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"type",
"audio_url"
],
"properties": {
"role": {
"type": "string",
"const": "reference_audio",
"description": "Reference audio (up to 3, each 2-15s, total <=15s). Cannot be the only input - include at least one image or video."
},
"type": {
"type": "string",
"const": "audio_url"
},
"audio_url": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
]
},
"minItems": 1,
"description": "Content items: text (text-to-video), image_url (image-to-video / first+last frame / reference images), video_url and audio_url (multimodal reference)."
},
"duration": {
"type": "integer",
"default": 5,
"maximum": 15,
"minimum": 4,
"description": "Duration in seconds (4-15)."
},
"priority": {
"type": "integer",
"maximum": 9,
"minimum": 0,
"description": "Queue priority 0-9 (higher = front of the queue). Default 0."
},
"watermark": {
"type": "boolean",
"default": false,
"description": "Add an \"AI Generated\" watermark. Default false."
},
"resolution": {
"enum": [
"480p",
"720p"
],
"type": "string",
"default": "720p",
"description": "Output resolution (also the price selector)."
},
"generate_audio": {
"type": "boolean",
"default": true,
"description": "Generate synchronized audio (voice, sound effects, music). Default true. No price impact."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}