{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/modelslab-com/json-schema/modelslab-com-video-batch-request-schema.json",
  "title": "Video batch request",
  "description": "Many video requests under one model. Each request is charged at the batch discount and fails (with a refund) if it is not finished within the batch timeout.",
  "x-generated": "2026-10-29",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_original/modelslab-com-api-openapi.json#/components/schemas/VideoBatchRequest",
  "type": "object",
  "required": [
    "model_id",
    "requests"
  ],
  "properties": {
    "key": {
      "type": "string",
      "description": "API key. Optional when the key is sent as a header."
    },
    "model_id": {
      "type": "string",
      "description": "The in-house video model every request in the batch runs on.",
      "enum": [
        "wan2.2",
        "ltx-2.3",
        "h3-minimax-r2v",
        "h3-minimax-start-end-frame",
        "h3-minimax-t2v",
        "h3-minimax-ref-to-video-fast"
      ]
    },
    "webhook": {
      "type": "string",
      "format": "uri",
      "description": "Called once per request as it completes, with that request's `id` and `track_id`."
    },
    "track_id": {
      "type": "string",
      "description": "Default correlation id for requests that set none of their own."
    },
    "defaults": {
      "type": "object",
      "description": "Parameters merged under every request; a request's own value wins.",
      "additionalProperties": true
    },
    "requests": {
      "type": "array",
      "minItems": 3,
      "maxItems": 20,
      "description": "One entry per video. Text-to-video when it carries a `prompt` only; image-to-video when it carries `init_image` (or the model's reference fields).",
      "items": {
        "type": "object",
        "properties": {
          "track_id": {
            "type": "string",
            "description": "Correlation id echoed in this request's result and webhook."
          },
          "prompt": {
            "type": "string"
          },
          "init_image": {
            "type": "string",
            "format": "uri"
          },
          "negative_prompt": {
            "type": "string"
          },
          "duration": {
            "type": "number"
          },
          "seed": {
            "type": "integer"
          }
        },
        "additionalProperties": true
      }
    }
  },
  "additionalProperties": true
}