{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/adsturbo-ai/json-schema/adsturbo-ai-open-video-generate-body-schema.json",
  "title": "OpenVideoGenerateBody",
  "description": "Generate a video. For text-to-video, leave `start_frame`, `end_frame`, and `reference_*` empty.\nFor image-to-video, use `start_frame` and optionally `end_frame` to control first and last frames.\nMultiple reference media are supplied through `reference_images`, `reference_videos`, and `reference_audios`.\n\nModel capability limits vary by model and are validated by the server.",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/adsturbo-ai-openapi.json#/components/schemas/OpenVideoGenerateBody",
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string"
    },
    "model": {
      "type": "string",
      "enum": [
        "veo-3.1",
        "kling-3.0",
        "grok",
        "seedance-2.0",
        "happyhorse-1.0"
      ],
      "description": "Short model name. If omitted, the server default is used."
    },
    "ratio": {
      "type": "string",
      "description": "Supported values vary by model.",
      "enum": [
        "16:9",
        "9:16",
        "1:1",
        "4:3",
        "3:4"
      ]
    },
    "duration": {
      "type": "integer",
      "format": "int32",
      "description": "Video duration in seconds. Supported values or ranges vary by model."
    },
    "resolution": {
      "type": "string",
      "description": "Supported only by selected models; values vary by model.",
      "enum": [
        "720p",
        "1080p",
        "4k"
      ]
    },
    "start_frame": {
      "type": "string",
      "description": "First-frame image URL."
    },
    "end_frame": {
      "type": "string",
      "description": "Last-frame image URL."
    },
    "reference_images": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "reference_videos": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "reference_audios": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "callback_id": {
      "type": "string",
      "description": "Custom tracking ID, echoed back in `/openapi/v1/work/status` results so you can match tasks to your own records (webhook delivery is not available yet)."
    },
    "idempotency_key": {
      "type": "string",
      "description": "Idempotency key. Repeated requests with the same key reuse the same task."
    }
  }
}