{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/autoshort-org/json-schema/autoshort-org-create-video-request-schema.json",
  "title": "CreateVideoRequest",
  "x-generated": "2026-11-02",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/autoshort-org-openapi.json#/components/schemas/CreateVideoRequest",
  "type": "object",
  "required": [
    "topic"
  ],
  "properties": {
    "topic": {
      "type": "string",
      "maxLength": 500,
      "description": "What the video is about. The script is AI-generated from it."
    },
    "niche": {
      "type": "string",
      "enum": [
        "MOTIVATIONAL",
        "SCARY_STORIES",
        "AI_FACTS",
        "HISTORY_FACTS",
        "REDDIT_STORIES",
        "LIFE_HACKS",
        "CRYPTO_FINANCE",
        "PSYCHOLOGY_FACTS",
        "PERSONAL_FINANCE",
        "FUNNY_STORIES",
        "LOVE_STORIES",
        "AI_MUSIC_COVERS",
        "KIDS_SONGS",
        "ABSURD_PROCESS"
      ],
      "description": "Content niche (default MOTIVATIONAL). GET /api/v1/scripts/niches lists the ones currently offered; the enum here is every value the server parses."
    },
    "duration": {
      "type": "integer",
      "enum": [
        5,
        8,
        15,
        30,
        60,
        90
      ],
      "default": 30,
      "description": "Target length in seconds (the delivered video is approximate: a target, not a guarantee). Other values get 400 INVALID_DURATION."
    },
    "artStyle": {
      "type": "string",
      "enum": [
        "AUTOSHORTS",
        "LEGO",
        "COMIC_BOOK",
        "DISNEY_TOON",
        "STUDIO_GHIBLI",
        "PIXEL_ART",
        "WATERCOLOR",
        "OIL_PAINTING",
        "CYBERPUNK",
        "FANTASY",
        "ANIME",
        "STICKMAN"
      ],
      "default": "AUTOSHORTS"
    },
    "language": {
      "type": "string",
      "description": "BCP-47 code such as \"en\", \"vi\", or \"auto\" (default)."
    },
    "quality": {
      "type": "string",
      "enum": [
        "HD_720",
        "FULL_HD_1080"
      ],
      "description": "Optional. Asking for more than the plan renders gives 403 QUALITY_NOT_IN_PLAN."
    },
    "userImageFiles": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "File names of images you already ingested through MCP (image_urls); image i goes to scene i. Not URLs."
    },
    "webhookUrl": {
      "type": "string",
      "deprecated": true,
      "description": "Ignored; register a webhook once with POST /api/v1/webhooks (the response carries a warning)."
    },
    "metadata": {
      "type": "object",
      "additionalProperties": true,
      "description": "Free-form data stored with the video."
    }
  }
}