kreatorflow-ai · Schema

VideoRequest

AIVideoImageVoiceAPIPlatform

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:), on models whose notes list voices of their own, named @voice_1.. in the prompt
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
View JSON Schema on GitHub

JSON Schema

kreatorflow-ai-video-request-schema.json Raw ↑
{
  "$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.
All 92 tools →

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.