Properties
| Name | Type | Description |
|---|---|---|
| model | string | string optional, defaults to kreator-video-fast; defaults to kreator-video-pro when intent=video_edit |
| intent | string | string optional; set to video_edit for source-video edit mode on /v1/videos |
| edit_mode | string | transform, restyle, or extend when intent=video_edit; editMode alias accepted |
| source_video_upload_id | string | preferred owned same-workspace VIDEO upload_id for source-video edit mode; create it with upload_type VIDEO; MP4/MOV with H.264/AAC under 50 MB recommended; sourceVideoUploadId alias accepted |
| video | string | public HTTPS source video URL alias for source-video edit mode; source_video_url/sourceVideoUrl also accepted |
| source_video_url | string | public HTTPS source video URL alias for source-video edit mode |
| source_model_key | string | optional compatibility hint for previous Seedance 2 sources; omit for newly uploaded source clips |
| prompt | string | string required unless content includes a text item |
| content | array | KreatorFlow content array optional |
| duration | number | number optional, rounded up and validated against model limits |
| aspect_ratio | string | string optional; source-video edit defaults to adaptive when omitted |
| ratio | string | alias for aspect_ratio; source-video edit accepts adaptive |
| resolution | string | string optional |
| generate_audio | boolean | boolean optional |
| watermark | boolean | boolean optional, defaults to false |
| seed | integer | integer optional |
| camera_fixed | boolean | boolean optional |
| references | array | array optional; supports url or upload_id |
| first_frame_upload_id | string | image upload_id for the first frame; firstFrameUploadId and first_frame_image_upload_id aliases accepted |
| last_frame_upload_id | string | image upload_id for the last frame; lastFrameUploadId and last_frame_image_upload_id aliases accepted |
| first_frame_url | string | public HTTPS image URL for the first frame; firstFrameUrl and first_frame_image_url aliases accepted |
| last_frame_url | string | public HTTPS image URL for the last frame; lastFrameUrl and last_frame_image_url aliases accepted |
| reference_upload_ids | array | array optional; image upload_id values |
| reference_image_upload_ids | array | array optional; image upload_id values |
| reference_image_urls | array | array optional; public HTTPS image URLs; reference_images/referenceImages also accepted |
| reference_video_upload_ids | array | array optional; video upload_id values for normal generation clip guidance; source-video edit should use source_video_upload_id |
| reference_video_urls | array | array optional; public HTTPS video URLs for normal generation clip guidance; reference_videos/referenceVideos also accepted |
| reference_audio_upload_ids | array | array optional; audio upload_id values |
| reference_audio_urls | array | array optional; public HTTPS audio URLs; reference_audios/referenceAudios also accepted |
| character_ids | array | array optional; reusable character ids/slugs from POST /v1/characters mode=register |
| video_role | string | string optional, reference (default) or edit, on models whose notes list reference clips: reference uses the clips for style, motion or subject; edit changes the one clip by the prompt and keeps its l |
| keep_clip_sound | boolean | boolean optional, defaults to true; with video_role edit, keeps the clip's own sound on models that can drop it |
| shots | array | array optional of { duration, prompt } objects, on models whose notes list a shot list: 2 to 6 shots whose durations add up to duration; prompt then becomes an optional lead-in |
| voice_ids | array | array optional; cloned voice ids from GET /v1/voices (cloned: |
| character_voices | object | object optional, { character_id: voice id }, on models whose notes list cloned voices: the character (also in character_ids) speaks with that cloned voice |
| face_consent | boolean | boolean; required (true) when a reference video is combined with image references (a face onto a person); same rules as on POST /v1/video-edits |
| video_reference_mode | string | fallback or strict optional; defaults to fallback for normal generation; source-video edit forces strict |
| safety_identifier | string | string optional, max 64 chars |
| webhook_url | string | https url optional; receives terminal job callbacks |
| callback_url | string | alias for webhook_url |
| idempotency_key | string | string optional body fallback; prefer Idempotency-Key header |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/kreatorflow-ai/json-schema/kreatorflow-ai-video-request-schema.json",
"title": "VideoRequest",
"x-generated": "2026-10-30",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/kreatorflow-ai-openapi.json#/components/schemas/VideoRequest",
"type": "object",
"properties": {
"model": {
"type": "string",
"description": "string optional, defaults to kreator-video-fast; defaults to kreator-video-pro when intent=video_edit"
},
"intent": {
"type": "string",
"description": "string optional; set to video_edit for source-video edit mode on /v1/videos"
},
"edit_mode": {
"type": "string",
"description": "transform, restyle, or extend when intent=video_edit; editMode alias accepted"
},
"source_video_upload_id": {
"type": "string",
"description": "preferred owned same-workspace VIDEO upload_id for source-video edit mode; create it with upload_type VIDEO; MP4/MOV with H.264/AAC under 50 MB recommended; sourceVideoUploadId alias accepted"
},
"video": {
"type": "string",
"description": "public HTTPS source video URL alias for source-video edit mode; source_video_url/sourceVideoUrl also accepted"
},
"source_video_url": {
"type": "string",
"description": "public HTTPS source video URL alias for source-video edit mode"
},
"source_model_key": {
"type": "string",
"description": "optional compatibility hint for previous Seedance 2 sources; omit for newly uploaded source clips"
},
"prompt": {
"type": "string",
"description": "string required unless content includes a text item"
},
"content": {
"type": "array",
"items": {
"$ref": "#/$defs/ContentItem"
},
"description": "KreatorFlow content array optional"
},
"duration": {
"type": "number",
"description": "number optional, rounded up and validated against model limits"
},
"aspect_ratio": {
"type": "string",
"description": "string optional; source-video edit defaults to adaptive when omitted"
},
"ratio": {
"type": "string",
"description": "alias for aspect_ratio; source-video edit accepts adaptive"
},
"resolution": {
"type": "string",
"description": "string optional"
},
"generate_audio": {
"type": "boolean",
"description": "boolean optional"
},
"watermark": {
"type": "boolean",
"description": "boolean optional, defaults to false"
},
"seed": {
"type": "integer",
"description": "integer optional"
},
"camera_fixed": {
"type": "boolean",
"description": "boolean optional"
},
"references": {
"type": "array",
"items": {
"$ref": "#/$defs/Reference"
},
"description": "array optional; supports url or upload_id"
},
"first_frame_upload_id": {
"type": "string",
"description": "image upload_id for the first frame; firstFrameUploadId and first_frame_image_upload_id aliases accepted"
},
"last_frame_upload_id": {
"type": "string",
"description": "image upload_id for the last frame; lastFrameUploadId and last_frame_image_upload_id aliases accepted"
},
"first_frame_url": {
"type": "string",
"description": "public HTTPS image URL for the first frame; firstFrameUrl and first_frame_image_url aliases accepted"
},
"last_frame_url": {
"type": "string",
"description": "public HTTPS image URL for the last frame; lastFrameUrl and last_frame_image_url aliases accepted"
},
"reference_upload_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "array optional; image upload_id values"
},
"reference_image_upload_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "array optional; image upload_id values"
},
"reference_image_urls": {
"type": "array",
"items": {
"type": "string"
},
"description": "array optional; public HTTPS image URLs; reference_images/referenceImages also accepted"
},
"reference_video_upload_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "array optional; video upload_id values for normal generation clip guidance; source-video edit should use source_video_upload_id"
},
"reference_video_urls": {
"type": "array",
"items": {
"type": "string"
},
"description": "array optional; public HTTPS video URLs for normal generation clip guidance; reference_videos/referenceVideos also accepted"
},
"reference_audio_upload_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "array optional; audio upload_id values"
},
"reference_audio_urls": {
"type": "array",
"items": {
"type": "string"
},
"description": "array optional; public HTTPS audio URLs; reference_audios/referenceAudios also accepted"
},
"character_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "array optional; reusable character ids/slugs from POST /v1/characters mode=register"
},
"video_role": {
"type": "string",
"description": "string optional, reference (default) or edit, on models whose notes list reference clips: reference uses the clips for style, motion or subject; edit changes the one clip by the prompt and keeps its length and shape"
},
"keep_clip_sound": {
"type": "boolean",
"description": "boolean optional, defaults to true; with video_role edit, keeps the clip's own sound on models that can drop it"
},
"shots": {
"type": "array",
"items": {
"type": "object",
"required": [
"duration",
"prompt"
],
"properties": {
"duration": {
"type": "integer"
},
"prompt": {
"type": "string"
}
}
},
"description": "array optional of { duration, prompt } objects, on models whose notes list a shot list: 2 to 6 shots whose durations add up to duration; prompt then becomes an optional lead-in"
},
"voice_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "array optional; cloned voice ids from GET /v1/voices (cloned:<id>), on models whose notes list voices of their own, named @voice_1.. in the prompt"
},
"character_voices": {
"type": "object",
"additionalProperties": true,
"description": "object optional, { character_id: voice id }, on models whose notes list cloned voices: the character (also in character_ids) speaks with that cloned voice"
},
"face_consent": {
"type": "boolean",
"description": "boolean; required (true) when a reference video is combined with image references (a face onto a person); same rules as on POST /v1/video-edits"
},
"video_reference_mode": {
"type": "string",
"description": "fallback or strict optional; defaults to fallback for normal generation; source-video edit forces strict"
},
"safety_identifier": {
"type": "string",
"description": "string optional, max 64 chars"
},
"webhook_url": {
"type": "string",
"format": "uri",
"description": "https url optional; receives terminal job callbacks"
},
"callback_url": {
"type": "string",
"description": "alias for webhook_url"
},
"idempotency_key": {
"type": "string",
"description": "string optional body fallback; prefer Idempotency-Key header"
}
},
"additionalProperties": true,
"$defs": {
"ContentItem": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"text",
"image_url",
"video_url",
"audio_url"
]
},
"text": {
"type": "string",
"description": "string when type=text"
},
"image_url": {
"type": "string",
"format": "uri",
"description": "https url string or object with url or upload_id when type=image_url"
},
"video_url": {
"type": "string",
"format": "uri",
"description": "https url string or object with url or upload_id when type=video_url"
},
"audio_url": {
"type": "string",
"format": "uri",
"description": "https url string or object with url or upload_id when type=audio_url"
},
"role": {
"type": "string",
"description": "optional role for reference content"
}
},
"additionalProperties": true
},
"Reference": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"image_url",
"video_url",
"audio_url"
]
},
"url": {
"type": "string",
"description": "public https url"
},
"upload_id": {
"type": "string",
"description": "workspace-scoped upload_id returned by POST /v1/uploads"
},
"role": {
"type": "string",
"description": "optional content role such as first_frame, last_frame, reference_image, reference_video, reference_audio"
}
},
"additionalProperties": true
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/kreatorflow-ai-video-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.