{
  "openapi": "3.1.0",
  "info": {
    "title": "MakeUGC Platform API",
    "version": "2.0.0",
    "description": "Public documentation v2 for existing Platform API routes. There is no /v2 API prefix. Per-model examples and parameter reference are included; dynamic template fields and conditional rules are described in the documentation. Response examples are illustrative; clients must tolerate additional response fields. API credit units × 100 = website display credits.",
    "contact": {
      "name": "MakeUGC API support",
      "email": "help@makeugc.ai"
    }
  },
  "servers": [
    {
      "url": "https://app.makeugc.ai/api/platform"
    }
  ],
  "security": [
    {
      "ApiKey": []
    }
  ],
  "externalDocs": {
    "description": "Public API documentation",
    "url": "https://makeugc.ai/docs/api/v2"
  },
  "tags": [
    {
      "name": "Talking actors",
      "description": "Turn a script into an avatar video using a stock or custom actor and your choice of voice."
    },
    {
      "name": "Voices & languages",
      "description": "Discover stock and custom voices, preview audio, and select a voice for video generation."
    },
    {
      "name": "Custom avatars",
      "description": "Create an avatar from a portrait and an optional voice sample, then use it in talking-actor videos."
    },
    {
      "name": "Product in hand",
      "description": "Animate an actor holding your product using audio-driven generation or a sequence of scripted scenes."
    },
    {
      "name": "Content Library",
      "description": "Generate videos from reusable templates with fields discovered from the live template catalog."
    },
    {
      "name": "Shopify video templates",
      "description": "Create product videos from Shopify-compatible templates and organize results in a project for each store."
    },
    {
      "name": "Shoppable ads",
      "description": "Generate product images and videos using category-specific creative formats. API paths use the spelling shopable."
    },
    {
      "name": "Projects",
      "description": "List your projects and reuse a store project to keep API-generated assets organized."
    },
    {
      "name": "Ad Remake",
      "description": "Analyze a reference ad, review a generated prompt and create a new video for your product."
    },
    {
      "name": "Gestures",
      "description": "Animate a still character with a short, natural gesture."
    },
    {
      "name": "Image Ads",
      "description": "Turn product references, brand details and promotional copy into ad images."
    },
    {
      "name": "Background Remover",
      "description": "Remove or replace a video background and download the processed output."
    },
    {
      "name": "Video Extend",
      "description": "Build a continuous video from connected Veo 3.1 scenes."
    },
    {
      "name": "Custom Voice & Text to Speech",
      "description": "Clone or design a reusable voice, then turn scripts into audio."
    },
    {
      "name": "Video Upscale",
      "description": "Quote and upscale owned videos with Topaz, with billing tracked per attempt."
    },
    {
      "name": "AI Script Writer",
      "description": "Create ad scripts from text descriptions or product images."
    },
    {
      "name": "Speech Text Tools",
      "description": "Normalize and enhance scripts before speech synthesis."
    },
    {
      "name": "Templates",
      "description": "Generate product videos from the current app template catalog, with reproducible variation selection."
    },
    {
      "name": "Enterprise models"
    },
    {
      "name": "Seedance"
    }
  ],
  "paths": {
    "/video/avatars": {
      "get": {
        "operationId": "get_video_avatars",
        "tags": [
          "Talking actors"
        ],
        "summary": "List avatars",
        "description": "List template avatars and custom avatars available to the API-key account.",
        "parameters": [
          {
            "name": "gender",
            "in": "query",
            "required": false,
            "description": "Case-insensitive gender filter, for example Female.",
            "schema": {
              "type": "string",
              "description": "Case-insensitive gender filter, for example Female."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Avatars fetched",
                  "data": [
                    {
                      "id": "avatar_123",
                      "name": "Example actor",
                      "thumbnail": "https://your-cdn.example/actor.jpg",
                      "gender": "Female",
                      "skin": "",
                      "age_range": "",
                      "type": ""
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/video/generate": {
      "post": {
        "operationId": "post_video_generate",
        "tags": [
          "Talking actors"
        ],
        "summary": "Generate a talking-actor video",
        "description": "Submit a video job. A successful response means generation has started.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Video generation started",
                  "data": {
                    "id": "video_123"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "avatar_id": {
                    "type": "string",
                    "description": "An id from the avatar list."
                  },
                  "voice_script": {
                    "type": "string",
                    "description": "Spoken script. Required even when voice_url is provided. Allowed: Up to 1,500 characters by default."
                  },
                  "video_name": {
                    "type": "string",
                    "description": "Video and project name. Default: API Generated Video.",
                    "default": "API Generated Video"
                  },
                  "voice_url": {
                    "type": "string",
                    "description": "Public HTTP(S) audio URL; must be accessible and at most 120 seconds. Skips text-to-speech."
                  },
                  "voice_id": {
                    "type": "string",
                    "description": "Use the id returned by GET /video/voices, not its voiceId field."
                  },
                  "voice_settings": {
                    "type": "object",
                    "description": "Optional text-to-speech settings; supply the full settings object when overriding defaults.",
                    "properties": {
                      "stability": {
                        "type": "number",
                        "description": "Voice stability. Allowed: 0–1. Default: 0.75.",
                        "default": 0.75
                      },
                      "similarity_boost": {
                        "type": "number",
                        "description": "Voice similarity. Allowed: 0–1. Default: 0.4.",
                        "default": 0.4
                      },
                      "style": {
                        "type": "number",
                        "description": "Style intensity. Allowed: 0–1. Default: 0.",
                        "default": 0
                      },
                      "use_speaker_boost": {
                        "type": "boolean",
                        "description": "Speaker boost. Default: true.",
                        "default": true
                      },
                      "speed": {
                        "type": "number",
                        "description": "Speech speed multiplier. Default: 1.",
                        "default": 1
                      }
                    },
                    "required": []
                  },
                  "webhook_url": {
                    "type": "string",
                    "description": "Public HTTP(S) callback URL. Use status polling as a fallback."
                  }
                },
                "required": [
                  "avatar_id",
                  "voice_script"
                ],
                "additionalProperties": true
              },
              "example": {
                "avatar_id": "AVATAR_ID",
                "voice_script": "Meet your new favorite everyday coffee cup.",
                "video_name": "Coffee cup introduction"
              }
            }
          }
        }
      }
    },
    "/video/status": {
      "get": {
        "operationId": "get_video_status",
        "tags": [
          "Talking actors"
        ],
        "summary": "Get video status",
        "description": "Poll every 5–10 seconds. Stop on failed, or completed with a non-empty URL. The outer status boolean describes the API request; data.status describes the job.\n\nWhile processing, data.status is processing and url is absent. On failure, data.status is failed; a reason may be included. Save output files if you need permanent access.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "description": "Job ID returned by the matching generation endpoint.",
            "schema": {
              "type": "string",
              "description": "Job ID returned by the matching generation endpoint."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Video is completed",
                  "data": {
                    "status": "completed",
                    "url": "https://your-cdn.example/result.mp4"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/video/voices": {
      "get": {
        "operationId": "get_video_voices",
        "tags": [
          "Voices & languages"
        ],
        "summary": "List voices",
        "description": "Returns stock voices and the account’s custom voices. Availability and languages are defined by this live list.",
        "parameters": [
          {
            "name": "language",
            "in": "query",
            "required": false,
            "description": "Case-insensitive language name, for example English.",
            "schema": {
              "type": "string",
              "description": "Case-insensitive language name, for example English."
            }
          },
          {
            "name": "gender",
            "in": "query",
            "required": false,
            "description": "Case-insensitive gender, for example Female.",
            "schema": {
              "type": "string",
              "description": "Case-insensitive gender, for example Female."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Voices fetched",
                  "data": [
                    {
                      "id": "voice_123",
                      "name": "Example voice",
                      "language": "English",
                      "gender": "Female",
                      "voiceId": "provider_voice_id",
                      "previewUrl": "https://your-cdn.example/preview.mp3",
                      "accent": "American",
                      "country": "United States",
                      "isCustom": false
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/custom-avatar/generate": {
      "post": {
        "operationId": "post_custom_avatar_generate",
        "tags": [
          "Custom avatars"
        ],
        "summary": "Create a custom avatar",
        "description": "This endpoint returns avatar details directly. There is no separate custom-avatar status endpoint.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "status": true,
                    "message": "Custom avatar created",
                    "avatar_id": "avatar_123",
                    "thumbnail_url": "https://your-cdn.example/portrait.jpg",
                    "audio_url": "https://your-cdn.example/voice.mp3",
                    "selected_voice_id": "voice_123"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "description": "Portrait image file (at most 10 MiB) or public image URL."
                  },
                  "voice": {
                    "type": "string",
                    "description": "Voice sample file (at most 10 MiB) or public audio URL. Omit to use an assigned voice."
                  }
                },
                "required": [
                  "image"
                ],
                "additionalProperties": true
              },
              "example": {
                "image": "https://your-cdn.example/portrait.jpg",
                "voice": "https://your-cdn.example/voice.mp3"
              }
            }
          }
        }
      }
    },
    "/product-in-hand/nova-v2/generate": {
      "post": {
        "operationId": "post_product_in_hand_nova_v2_generate",
        "tags": [
          "Product in hand"
        ],
        "summary": "Generate with Nova V2",
        "description": "Up to 90 seconds. Costs 1 API credit unit (100 displayed credits).",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Video generation started",
                  "data": {
                    "id": "video_123"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "image_url": {
                    "type": "string",
                    "description": "Public URL of the actor/product composition."
                  },
                  "script": {
                    "type": "string",
                    "description": "Required with voice_id when voice_url is omitted. Allowed: Up to 2,000 characters."
                  },
                  "voice_url": {
                    "type": "string",
                    "description": "Public audio URL. Takes priority over script-generated audio."
                  },
                  "voice_id": {
                    "type": "string",
                    "description": "Use the id returned by GET /video/voices, not its voiceId field."
                  },
                  "project_id": {
                    "type": "string",
                    "description": "Existing project ID. Omit to create a project automatically."
                  },
                  "webhook_url": {
                    "type": "string",
                    "description": "Public HTTP(S) callback URL. Use status polling as a fallback."
                  }
                },
                "required": [
                  "image_url"
                ],
                "additionalProperties": true
              },
              "example": {
                "image_url": "https://your-cdn.example/actor-with-product.jpg",
                "voice_url": "https://your-cdn.example/voice.mp3"
              }
            }
          }
        }
      }
    },
    "/product-in-hand/omi-human/generate": {
      "post": {
        "operationId": "post_product_in_hand_omi_human_generate",
        "tags": [
          "Product in hand"
        ],
        "summary": "Generate with Omi-Human",
        "description": "Up to 30 seconds. Under 15 seconds costs 1 API credit unit; 15–30 seconds costs 2 (100 / 200 displayed credits).",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Video generation started",
                  "data": {
                    "id": "video_123"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "image_url": {
                    "type": "string",
                    "description": "Public URL of the actor/product composition."
                  },
                  "script": {
                    "type": "string",
                    "description": "Required with voice_id when voice_url is omitted. Allowed: Up to 2,000 characters."
                  },
                  "voice_url": {
                    "type": "string",
                    "description": "Public audio URL. Takes priority over script-generated audio."
                  },
                  "voice_id": {
                    "type": "string",
                    "description": "Use the id returned by GET /video/voices, not its voiceId field."
                  },
                  "project_id": {
                    "type": "string",
                    "description": "Existing project ID. Omit to create a project automatically."
                  },
                  "webhook_url": {
                    "type": "string",
                    "description": "Public HTTP(S) callback URL. Use status polling as a fallback."
                  }
                },
                "required": [
                  "image_url"
                ],
                "additionalProperties": true
              },
              "example": {
                "image_url": "https://your-cdn.example/actor-with-product.jpg",
                "voice_url": "https://your-cdn.example/voice.mp3"
              }
            }
          }
        }
      }
    },
    "/product-in-hand/veo/generate": {
      "post": {
        "operationId": "post_product_in_hand_veo_generate",
        "tags": [
          "Product in hand"
        ],
        "summary": "Generate scenes with Veo",
        "description": "Create 1–4 scenes. Each scene costs 1 API credit unit for Fast or 2 for Pro (100 / 200 displayed credits).",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Video generation started",
                  "data": {
                    "id": "video_123"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "image_url": {
                    "type": "string",
                    "description": "Public actor/product image URL."
                  },
                  "scenes": {
                    "type": "array",
                    "description": "Scene objects, each containing a non-empty script and optional description. Allowed: 1–4 scenes.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "script": {
                          "type": "string",
                          "description": "Spoken script for this scene."
                        },
                        "description": {
                          "type": "string",
                          "description": "Visual direction for this scene."
                        }
                      },
                      "required": [
                        "script"
                      ]
                    }
                  },
                  "model": {
                    "type": "string",
                    "description": "Use pro for Veo 3.1 Pro; omit for Fast. Allowed: pro | fast. Default: fast.",
                    "enum": [
                      "pro",
                      "fast"
                    ],
                    "default": "fast"
                  },
                  "end_image_url": {
                    "type": "string",
                    "description": "Optional last frame URL. Used only for a single-scene request."
                  },
                  "voice_id": {
                    "type": "string",
                    "description": "Use the id returned by GET /video/voices, not its voiceId field."
                  },
                  "project_id": {
                    "type": "string",
                    "description": "Existing project ID. Omit to create a project automatically."
                  },
                  "webhook_url": {
                    "type": "string",
                    "description": "Public HTTP(S) callback URL. Use status polling as a fallback."
                  }
                },
                "required": [
                  "image_url",
                  "scenes"
                ],
                "additionalProperties": true
              },
              "example": {
                "image_url": "https://your-cdn.example/actor-with-product.jpg",
                "scenes": [
                  {
                    "script": "This is the cup I reach for every morning.",
                    "description": "Natural light, relaxed delivery."
                  }
                ],
                "model": "fast"
              }
            }
          }
        }
      }
    },
    "/product-in-hand/status": {
      "get": {
        "operationId": "get_product_in_hand_status",
        "tags": [
          "Product in hand"
        ],
        "summary": "Get video status",
        "description": "Poll every 5–10 seconds. Stop on failed, or completed with a non-empty URL. The outer status boolean describes the API request; data.status describes the job.\n\nWhile processing, data.status is processing and url is absent. On failure, data.status is failed; a reason may be included. Save output files if you need permanent access.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "description": "Job ID returned by the matching generation endpoint.",
            "schema": {
              "type": "string",
              "description": "Job ID returned by the matching generation endpoint."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Video is completed",
                  "data": {
                    "status": "completed",
                    "url": "https://your-cdn.example/result.mp4"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/content-library/templates": {
      "get": {
        "operationId": "get_content_library_templates",
        "tags": [
          "Content Library"
        ],
        "summary": "List templates",
        "description": "Discover template IDs, credit costs and require_fields. credit is a numeric string or null. Template field types include input, textarea, image and select; honor max, options and required: false when present. Returned values vary by template; this example is illustrative.",
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "required": false,
            "description": "Category value from the categories endpoint.",
            "schema": {
              "type": "string",
              "description": "Category value from the categories endpoint. Default: all.",
              "default": "all"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Templates retrieved successfully",
                  "data": [
                    {
                      "id": "template_123",
                      "title": "Product introduction",
                      "description": "Introduce a product with a short script.",
                      "preview_url": "https://your-cdn.example/template-preview.mp4",
                      "credit": "1",
                      "category": [
                        "product"
                      ],
                      "require_fields": {
                        "product_image": {
                          "type": "image",
                          "label": "Product image"
                        },
                        "product_name": {
                          "type": "input",
                          "label": "Product name"
                        },
                        "script": {
                          "type": "textarea",
                          "label": "Script",
                          "max": 400
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/content-library/categories": {
      "get": {
        "operationId": "get_content_library_categories",
        "tags": [
          "Content Library"
        ],
        "summary": "List categories",
        "description": "Use a returned value to filter templates.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Categories retrieved successfully",
                  "data": [
                    {
                      "label": "All",
                      "value": "all"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/content-library/generate": {
      "post": {
        "operationId": "post_content_library_generate",
        "tags": [
          "Content Library"
        ],
        "summary": "Generate from a template",
        "description": "Start a template job. Omit project_id to create a project automatically.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Video generation started",
                  "data": {
                    "db_id": "video_123"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "template_id": {
                    "type": "string",
                    "description": "ID from the templates list."
                  },
                  "project_id": {
                    "type": "string",
                    "description": "Existing project ID. Omit to create a project automatically."
                  },
                  "webhook_url": {
                    "type": "string",
                    "description": "Public HTTP(S) callback URL. Use status polling as a fallback."
                  },
                  "add_watermark": {
                    "type": "boolean",
                    "description": "Whether to add a watermark."
                  }
                },
                "required": [
                  "template_id"
                ],
                "additionalProperties": true
              },
              "example": {
                "template_id": "TEMPLATE_ID",
                "product_image": "https://your-cdn.example/product.jpg",
                "product_name": "Everyday cup",
                "script": "Your new morning favorite."
              }
            }
          }
        }
      }
    },
    "/content-library/status": {
      "get": {
        "operationId": "get_content_library_status",
        "tags": [
          "Content Library"
        ],
        "summary": "Get video status",
        "description": "Poll every 5–10 seconds. Stop on failed, or completed with a non-empty URL. The outer status boolean describes the API request; data.status describes the job.\n\nWhile processing, data.status is processing and url is absent. On failure, data.status is failed; a reason may be included. Save output files if you need permanent access.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "description": "Job ID returned by the matching generation endpoint.",
            "schema": {
              "type": "string",
              "description": "Job ID returned by the matching generation endpoint."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Video is completed",
                  "data": {
                    "db_id": "video_123",
                    "status": "completed",
                    "url": "https://your-cdn.example/result.mp4"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/content-library/shopify/templates": {
      "get": {
        "operationId": "get_content_library_shopify_templates",
        "tags": [
          "Shopify video templates"
        ],
        "summary": "List templates",
        "description": "Discover template IDs, credit costs and require_fields. credit is a numeric string or null. Template field types include input, textarea, image and select; honor max, options and required: false when present. Returned values vary by template; this example is illustrative.",
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "required": false,
            "description": "Category value from the categories endpoint.",
            "schema": {
              "type": "string",
              "description": "Category value from the categories endpoint. Default: all.",
              "default": "all"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Templates retrieved successfully",
                  "data": [
                    {
                      "id": "template_123",
                      "title": "Product introduction",
                      "description": "Introduce a product with a short script.",
                      "preview_url": "https://your-cdn.example/template-preview.mp4",
                      "credit": "1",
                      "category": [
                        "product"
                      ],
                      "require_fields": {
                        "product_image": {
                          "type": "image",
                          "label": "Product image"
                        },
                        "product_name": {
                          "type": "input",
                          "label": "Product name"
                        },
                        "script": {
                          "type": "textarea",
                          "label": "Script",
                          "max": 400
                        }
                      },
                      "placeholders": [
                        "product_name",
                        "script"
                      ],
                      "product_image_required": true,
                      "allowed_models": [
                        "seedance-2.0-fast",
                        "seedance-2.0",
                        "seedance-2.5"
                      ],
                      "default_model": "seedance-2.0-fast"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/content-library/shopify/categories": {
      "get": {
        "operationId": "get_content_library_shopify_categories",
        "tags": [
          "Shopify video templates"
        ],
        "summary": "List categories",
        "description": "Use a returned value to filter templates.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Categories retrieved successfully",
                  "data": [
                    {
                      "label": "All",
                      "value": "all"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/content-library/shopify/generate": {
      "post": {
        "operationId": "post_content_library_shopify_generate",
        "tags": [
          "Shopify video templates"
        ],
        "summary": "Generate a Shopify product video",
        "description": "The generation response can also include job_id, feature, model, credits_used and raw_status.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Video generation started",
                  "data": {
                    "db_id": "video_123",
                    "job_id": "job_123",
                    "feature": "v2v_shopify",
                    "model": "seedance-2.0-fast",
                    "raw_status": "0"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "template_id": {
                    "type": "string",
                    "description": "Shopify template ID."
                  },
                  "product_image": {
                    "type": "string",
                    "description": "Public HTTP(S) product image URL; at most 2,000 characters."
                  },
                  "actor_image": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Public HTTP(S) actor image URL."
                  },
                  "project_id": {
                    "type": "string",
                    "description": "Existing project ID. Required unless project_name is provided."
                  },
                  "project_name": {
                    "type": "string",
                    "description": "Store project name. Required unless project_id is provided. Allowed: 1–256 characters."
                  },
                  "duration": {
                    "type": [
                      "string",
                      "number"
                    ],
                    "description": "Video duration. Allowed: 10 | 15 | 10s | 15s.",
                    "enum": [
                      "10",
                      10,
                      "15",
                      15,
                      "10s",
                      "15s"
                    ]
                  },
                  "aspect_ratio": {
                    "type": "string",
                    "description": "Video aspect ratio. Allowed: 21:9 | 16:9 | 4:3 | 1:1 | 3:4 | 9:16 | adaptive.",
                    "enum": [
                      "21:9",
                      "16:9",
                      "4:3",
                      "1:1",
                      "3:4",
                      "9:16",
                      "adaptive"
                    ]
                  },
                  "model": {
                    "type": "string",
                    "description": "Video model. Allowed: seedance-2.0-fast | seedance-2.0 | seedance-2.5.",
                    "enum": [
                      "seedance-2.0-fast",
                      "seedance-2.0",
                      "seedance-2.5"
                    ]
                  },
                  "generate_audio": {
                    "type": "boolean",
                    "description": "Generate audio."
                  },
                  "add_watermark": {
                    "type": "boolean",
                    "description": "Add a watermark."
                  },
                  "voice_id": {
                    "type": "string",
                    "description": "Use the id returned by GET /video/voices, not its voiceId field."
                  },
                  "voiceId": {
                    "type": "string",
                    "description": "Alias for voice_id. Prefer voice_id; it takes precedence."
                  },
                  "webhook_url": {
                    "type": "string",
                    "description": "Public HTTP(S) callback URL. Use status polling as a fallback."
                  }
                },
                "required": [
                  "template_id",
                  "product_image"
                ],
                "additionalProperties": true
              },
              "example": {
                "template_id": "TEMPLATE_ID",
                "product_image": "https://your-cdn.example/product.jpg",
                "project_name": "store.myshopify.com",
                "model": "seedance-2.0-fast",
                "duration": 10
              }
            }
          }
        }
      }
    },
    "/content-library/shopify/status": {
      "get": {
        "operationId": "get_content_library_shopify_status",
        "tags": [
          "Shopify video templates"
        ],
        "summary": "Get video status",
        "description": "Poll every 5–10 seconds. Stop on failed, or completed with a non-empty URL. The outer status boolean describes the API request; data.status describes the job.\n\nWhile processing, data.status is processing and url is absent. On failure, data.status is failed; a reason may be included. Save output files if you need permanent access.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "description": "Job ID returned by the matching generation endpoint.",
            "schema": {
              "type": "string",
              "description": "Job ID returned by the matching generation endpoint."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Video is completed",
                  "data": {
                    "db_id": "video_123",
                    "raw_status": "1",
                    "feature": "v2v_shopify",
                    "status": "completed",
                    "url": "https://your-cdn.example/result.mp4"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/shopable/packs": {
      "get": {
        "operationId": "get_shopable_packs",
        "tags": [
          "Shoppable ads"
        ],
        "summary": "List creative packs",
        "description": "Returns defaults, supported formats, model choices and categories. The example shows the response structure; use values from your actual response.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Shopable packs",
                  "data": {
                    "default_category": "CATEGORY_ID",
                    "default_image_format": "IMAGE_FORMAT",
                    "default_video_format": "VIDEO_FORMAT",
                    "default_aspect_ratio": "9:16",
                    "default_video_duration": "10",
                    "video_duration_min": 4,
                    "video_duration_max": 15,
                    "default_image_model": "MODEL_ID",
                    "default_video_model": "seedance-2.0-fast",
                    "video_models": [
                      "seedance-2.0",
                      "seedance-2.0-fast"
                    ],
                    "image_formats": [
                      "IMAGE_FORMAT"
                    ],
                    "video_formats": [
                      "VIDEO_FORMAT"
                    ],
                    "categories": [
                      {
                        "id": "CATEGORY_ID",
                        "display_name": "Example category",
                        "recommended_image_formats": [
                          "IMAGE_FORMAT"
                        ],
                        "recommended_video_formats": [
                          "VIDEO_FORMAT"
                        ],
                        "allowed_image_formats": [
                          "IMAGE_FORMAT"
                        ],
                        "allowed_video_formats": [
                          "VIDEO_FORMAT"
                        ]
                      }
                    ]
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/shopable/packs/{category}": {
      "get": {
        "operationId": "get_shopable_packs_category",
        "tags": [
          "Shoppable ads"
        ],
        "summary": "Get a category pack",
        "description": "URL-encode the category ID returned by the pack list.",
        "parameters": [
          {
            "name": "category",
            "in": "path",
            "required": true,
            "description": "Category ID from /shopable/packs.",
            "schema": {
              "type": "string",
              "description": "Category ID from /shopable/packs."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Shopable pack",
                  "data": {
                    "id": "CATEGORY_ID",
                    "display_name": "Example category",
                    "recommended_image_formats": [
                      "IMAGE_FORMAT"
                    ],
                    "recommended_video_formats": [
                      "VIDEO_FORMAT"
                    ],
                    "allowed_image_formats": [
                      "IMAGE_FORMAT"
                    ],
                    "allowed_video_formats": [
                      "VIDEO_FORMAT"
                    ]
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/shopable/images": {
      "post": {
        "operationId": "post_shopable_images",
        "tags": [
          "Shoppable ads"
        ],
        "summary": "Generate a product image",
        "description": "Creates an asynchronous image job. Read data.id and any returned warnings or credits_used.",
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Image generation started",
                  "data": {
                    "id": "image_123",
                    "status": 0,
                    "category": "CATEGORY_ID",
                    "format": "IMAGE_FORMAT",
                    "poll_path": "/shopable/images/status?id=image_123"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "category": {
                    "type": "string",
                    "description": "Category ID from /shopable/packs. Allowed: 1–100 characters."
                  },
                  "format": {
                    "type": "string",
                    "description": "An allowed image/video format from the selected category pack. Allowed: 1–100 characters."
                  },
                  "context": {
                    "type": "string",
                    "description": "Product details and creative direction. Allowed: 1–4,000 characters."
                  },
                  "project_id": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Existing project owned by your account. Takes precedence over project_name."
                  },
                  "project_name": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Find or create a store project by name. Allowed: 1–256 characters."
                  },
                  "actors": {
                    "type": "array",
                    "description": "Optional actors. Allowed: Up to 4 actors.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "image_url": {
                          "type": "string",
                          "description": "Public image URL for each supplied actor; at most 2,000 characters."
                        },
                        "audio_url": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Public actor audio URL; at most 2,000 characters."
                        },
                        "name": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Actor name. Allowed: Up to 100 characters."
                        },
                        "dialogue": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Actor dialogue. Allowed: Up to 500 characters."
                        }
                      },
                      "required": [
                        "image_url"
                      ]
                    }
                  },
                  "aspect_ratio": {
                    "type": "string",
                    "description": "Output ratio. Read defaults from the packs endpoint. Allowed: Up to 20 characters."
                  },
                  "creative_seed": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Creative variation identifier. Allowed: Up to 64 characters."
                  },
                  "creative_intensity": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Creative direction strength. Allowed: elegant | bold | surreal.",
                    "enum": [
                      "elegant",
                      "bold",
                      "surreal"
                    ]
                  },
                  "image_url": {
                    "type": "string",
                    "description": "Public product image URL; at most 2,000 characters."
                  },
                  "size": {
                    "type": "string",
                    "description": "Image size preset. Allowed: Up to 32 characters."
                  },
                  "model": {
                    "type": "string",
                    "description": "Image model ID. Read the default from packs. Allowed: 1–100 characters."
                  },
                  "num_images": {
                    "type": "integer",
                    "description": "Number of images. Allowed: 1–4."
                  },
                  "output_format": {
                    "type": "string",
                    "description": "Image output format. Allowed: png | jpeg.",
                    "enum": [
                      "png",
                      "jpeg"
                    ]
                  },
                  "watermark": {
                    "type": "boolean",
                    "description": "Whether to add an image watermark."
                  },
                  "webhook_url": {
                    "type": "string",
                    "description": "Public HTTP(S) callback URL. Use status polling as a fallback."
                  },
                  "webhook_secret": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Optional callback secret. Confirm callback verification details for your integration; no universal signature scheme is specified here. Allowed: 8–256 characters."
                  }
                },
                "required": [
                  "category",
                  "format",
                  "context",
                  "image_url"
                ],
                "additionalProperties": true
              },
              "example": {
                "category": "CATEGORY_ID",
                "format": "IMAGE_FORMAT",
                "context": "A ceramic cup for a calm morning routine.",
                "image_url": "https://your-cdn.example/product.jpg",
                "num_images": 1
              }
            }
          }
        }
      }
    },
    "/shopable/images/status": {
      "get": {
        "operationId": "get_shopable_images_status",
        "tags": [
          "Shoppable ads"
        ],
        "summary": "Get image status",
        "description": "Poll every 5–10 seconds. Stop on failed, or completed with a non-empty URL. The outer status boolean describes the API request; data.status describes the job.\n\nWhile processing, data.status is processing and url is absent. On failure, data.status is failed; a reason may be included. Save output files if you need permanent access.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "description": "Job ID returned by the matching generation endpoint.",
            "schema": {
              "type": "string",
              "description": "Job ID returned by the matching generation endpoint."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Image is completed",
                  "data": {
                    "raw_status": 1,
                    "status": "completed",
                    "url": "https://your-cdn.example/result.png"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/shopable/videos": {
      "post": {
        "operationId": "post_shopable_videos",
        "tags": [
          "Shoppable ads"
        ],
        "summary": "Generate a product video",
        "description": "Creates an asynchronous video job. Category and format values must come from the live pack list.",
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Video generation started",
                  "data": {
                    "id": "video_123",
                    "status": "0",
                    "category": "CATEGORY_ID",
                    "format": "VIDEO_FORMAT",
                    "poll_path": "/shopable/videos/status?id=video_123"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "category": {
                    "type": "string",
                    "description": "Category ID from /shopable/packs. Allowed: 1–100 characters."
                  },
                  "format": {
                    "type": "string",
                    "description": "An allowed image/video format from the selected category pack. Allowed: 1–100 characters."
                  },
                  "context": {
                    "type": "string",
                    "description": "Product details and creative direction. Allowed: 1–4,000 characters."
                  },
                  "project_id": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Existing project owned by your account. Takes precedence over project_name."
                  },
                  "project_name": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Find or create a store project by name. Allowed: 1–256 characters."
                  },
                  "actors": {
                    "type": "array",
                    "description": "Optional actors. Allowed: Up to 4 actors.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "image_url": {
                          "type": "string",
                          "description": "Public image URL for each supplied actor; at most 2,000 characters."
                        },
                        "audio_url": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Public actor audio URL; at most 2,000 characters."
                        },
                        "name": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Actor name. Allowed: Up to 100 characters."
                        },
                        "dialogue": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Actor dialogue. Allowed: Up to 500 characters."
                        }
                      },
                      "required": [
                        "image_url"
                      ]
                    }
                  },
                  "aspect_ratio": {
                    "type": "string",
                    "description": "Output ratio. Read defaults from the packs endpoint. Allowed: Up to 20 characters."
                  },
                  "creative_seed": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Creative variation identifier. Allowed: Up to 64 characters."
                  },
                  "creative_intensity": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Creative direction strength. Allowed: elegant | bold | surreal.",
                    "enum": [
                      "elegant",
                      "bold",
                      "surreal"
                    ]
                  },
                  "image_urls": {
                    "type": "array",
                    "description": "Public product image URLs; at most 2,000 characters each. Allowed: Up to 4 images.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "duration": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Duration string; use the limits returned by packs. Allowed: Up to 8 characters."
                  },
                  "resolution": {
                    "type": "string",
                    "description": "Output resolution. Allowed: Up to 20 characters."
                  },
                  "model": {
                    "type": "string",
                    "description": "Video model. Allowed: seedance-2.0 | seedance-2.0-fast.",
                    "enum": [
                      "seedance-2.0",
                      "seedance-2.0-fast"
                    ]
                  },
                  "check_human": {
                    "type": "boolean",
                    "description": "Enable human-content checking."
                  },
                  "add_watermark": {
                    "type": "boolean",
                    "description": "Add a video watermark."
                  },
                  "source_asset_id": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Optional source image asset ID. Allowed: Up to 64 characters."
                  }
                },
                "required": [
                  "category",
                  "format",
                  "context"
                ],
                "additionalProperties": true
              },
              "example": {
                "category": "CATEGORY_ID",
                "format": "VIDEO_FORMAT",
                "context": "A warm, natural product showcase.",
                "image_urls": [
                  "https://your-cdn.example/product.jpg"
                ],
                "model": "seedance-2.0-fast",
                "duration": "10"
              }
            }
          }
        }
      }
    },
    "/shopable/videos/status": {
      "get": {
        "operationId": "get_shopable_videos_status",
        "tags": [
          "Shoppable ads"
        ],
        "summary": "Get video status",
        "description": "Poll every 5–10 seconds. Stop on failed, or completed with a non-empty URL. The outer status boolean describes the API request; data.status describes the job.\n\nWhile processing, data.status is processing and url is absent. On failure, data.status is failed; a reason may be included. Save output files if you need permanent access.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "description": "Job ID returned by the matching generation endpoint.",
            "schema": {
              "type": "string",
              "description": "Job ID returned by the matching generation endpoint."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Video is completed",
                  "data": {
                    "raw_status": "1",
                    "status": "completed",
                    "url": "https://your-cdn.example/result.mp4"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/projects": {
      "get": {
        "operationId": "get_projects",
        "tags": [
          "Projects"
        ],
        "summary": "List projects",
        "description": "List projects belonging to your account.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "total": 1,
                  "projects": [
                    {
                      "id": "project_123",
                      "name": "My project",
                      "folderId": null,
                      "createdAt": "2026-10-13T00:00:00.000Z",
                      "updatedAt": "2026-10-13T00:00:00.000Z"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      },
      "post": {
        "operationId": "post_projects",
        "tags": [
          "Projects"
        ],
        "summary": "Find or create a store project",
        "description": "Reuse a project with the supplied store name or create one when needed.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "id": "project_123",
                    "name": "store.myshopify.com",
                    "created_at": "2026-10-13T00:00:00.000Z",
                    "updated_at": "2026-10-13T00:00:00.000Z"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Store project name, typically a shop domain. Whitespace is trimmed. Allowed: 1–256 characters."
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": true
              },
              "example": {
                "name": "store.myshopify.com"
              }
            }
          }
        }
      }
    },
    "/enterprise/projects": {
      "get": {
        "operationId": "get_enterprise_projects",
        "tags": [
          "Projects"
        ],
        "summary": "List projects for model generation",
        "description": "Alternate project list used with the model API. Notice that this response has no outer status field.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "total": 1,
                  "projects": [
                    {
                      "id": "project_123",
                      "name": "My project",
                      "folderId": null,
                      "createdAt": "2026-10-13T00:00:00.000Z",
                      "updatedAt": "2026-10-13T00:00:00.000Z"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/ad-remake/analyze": {
      "post": {
        "operationId": "post_ad_remake_analyze",
        "tags": [
          "Ad Remake"
        ],
        "summary": "Analyze a reference ad",
        "description": "Extract a structured analysis from a reference video without generating a video.\n\nThis operation does not start or charge for video generation. Analysis fields can vary; tolerate additional properties.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "source": "url",
                    "analysis_depth": "standard",
                    "analysis": {
                      "summary": "A creator demonstrates a product, then ends with a call to action."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "video_url": {
                    "type": "string",
                    "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                  },
                  "context": {
                    "type": "string",
                    "maxLength": 4000
                  },
                  "analysis_depth": {
                    "type": "string",
                    "enum": [
                      "quick",
                      "standard",
                      "detailed"
                    ],
                    "default": "standard"
                  }
                },
                "required": [
                  "video_url"
                ],
                "additionalProperties": false
              },
              "example": {
                "video_url": "https://your-cdn.example/reference.mp4",
                "analysis_depth": "standard"
              }
            }
          }
        }
      }
    },
    "/ad-remake/suggest": {
      "post": {
        "operationId": "post_ad_remake_suggest",
        "tags": [
          "Ad Remake"
        ],
        "summary": "Suggest a remake prompt",
        "description": "Analyze your references and return a reusable prompt without starting video generation.\n\nThis operation does not charge for video generation. Save the returned prompt and pass it to /ad-remake/generate after review.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "project_id": "project_123",
                    "prompt": "A creator demonstrates the ceramic cup in a sunlit kitchen.",
                    "negative_prompt": "",
                    "model": "seedance-2.5",
                    "video_job": null
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project_id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256,
                    "description": "Existing project owned by your account. Omit to create one."
                  },
                  "model": {
                    "type": "string",
                    "enum": [
                      "seedance-2.0-fast",
                      "seedance-2.5",
                      "kling-video-o3-pro",
                      "veo-3.1"
                    ],
                    "default": "seedance-2.5"
                  },
                  "video_url": {
                    "type": "string",
                    "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                  },
                  "image_url": {
                    "type": "string",
                    "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                  },
                  "context": {
                    "type": "string",
                    "maxLength": 4000
                  },
                  "prompt": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1800
                  },
                  "analysis_depth": {
                    "type": "string",
                    "enum": [
                      "quick",
                      "standard",
                      "detailed"
                    ],
                    "default": "standard"
                  },
                  "duration": {
                    "type": "integer"
                  },
                  "aspect_ratio": {
                    "type": "string",
                    "maxLength": 20
                  },
                  "resolution": {
                    "type": "string",
                    "maxLength": 20
                  }
                },
                "required": [],
                "additionalProperties": false
              },
              "example": {
                "project_id": "project_123",
                "model": "seedance-2.5",
                "video_url": "https://your-cdn.example/reference.mp4",
                "image_url": "https://your-cdn.example/product.jpg",
                "context": "Recreate the reference ad for our ceramic coffee cup.",
                "duration": 10,
                "aspect_ratio": "9:16"
              }
            }
          }
        }
      }
    },
    "/ad-remake/generate": {
      "post": {
        "operationId": "post_ad_remake_generate",
        "tags": [
          "Ad Remake"
        ],
        "summary": "Generate an ad remake",
        "description": "Generate from reference media or submit a reviewed prompt directly. Save data.id for polling.\n\nWhen prompt is supplied, reference-video analysis and context are skipped; image_url can still guide the output.\n\nVideo generation is charged by the selected model. data.video_job.credits_used reports the submitted job's charge.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "id": "job_123",
                    "project_id": "project_123",
                    "status": "processing",
                    "prompt": "A creator demonstrates the ceramic cup in a sunlit kitchen.",
                    "model": "seedance-2.5",
                    "video_job": {
                      "id": "job_123",
                      "status": "processing",
                      "credits_used": 1.5
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project_id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256,
                    "description": "Existing project owned by your account. Omit to create one."
                  },
                  "model": {
                    "type": "string",
                    "enum": [
                      "seedance-2.0-fast",
                      "seedance-2.5",
                      "kling-video-o3-pro",
                      "veo-3.1"
                    ],
                    "default": "seedance-2.5"
                  },
                  "video_url": {
                    "type": "string",
                    "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                  },
                  "image_url": {
                    "type": "string",
                    "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                  },
                  "context": {
                    "type": "string",
                    "maxLength": 4000
                  },
                  "prompt": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1800
                  },
                  "analysis_depth": {
                    "type": "string",
                    "enum": [
                      "quick",
                      "standard",
                      "detailed"
                    ],
                    "default": "standard"
                  },
                  "duration": {
                    "type": "integer"
                  },
                  "aspect_ratio": {
                    "type": "string",
                    "maxLength": 20
                  },
                  "resolution": {
                    "type": "string",
                    "maxLength": 20
                  }
                },
                "required": [],
                "additionalProperties": false
              },
              "example": {
                "project_id": "project_123",
                "model": "seedance-2.5",
                "video_url": "https://your-cdn.example/reference.mp4",
                "image_url": "https://your-cdn.example/product.jpg",
                "context": "Recreate the reference ad for our ceramic coffee cup.",
                "duration": 10,
                "aspect_ratio": "9:16"
              }
            }
          }
        }
      }
    },
    "/ad-remake/status": {
      "get": {
        "operationId": "get_ad_remake_status",
        "tags": [
          "Ad Remake"
        ],
        "summary": "Get remake status",
        "description": "Poll with the data.id returned by /ad-remake/generate.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "description": "id input.",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "id": "job_123",
                    "project_id": "project_123",
                    "status": "completed",
                    "video_url": "https://your-cdn.example/result.mp4"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/gestures/generate": {
      "post": {
        "operationId": "post_gestures_generate",
        "tags": [
          "Gestures"
        ],
        "summary": "Generate gestures",
        "description": "Animate a person in a reference image using a motion description.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "id": "job_123",
                    "project_id": "project_123",
                    "status": "processing",
                    "credits_charged": 0.5
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project_id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256,
                    "description": "Existing project owned by your account. Omit to create one."
                  },
                  "prompt": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "image_url": {
                    "type": "string",
                    "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                  }
                },
                "required": [
                  "prompt",
                  "image_url"
                ],
                "additionalProperties": false
              },
              "example": {
                "project_id": "project_123",
                "image_url": "https://your-cdn.example/product.jpg",
                "prompt": "The person smiles and gently waves toward the camera."
              }
            }
          }
        }
      }
    },
    "/gestures/status": {
      "get": {
        "operationId": "get_gestures_status",
        "tags": [
          "Gestures"
        ],
        "summary": "Get gesture status",
        "description": "Poll the submitted gesture job until video_url is available.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "description": "id input.",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "id": "job_123",
                    "project_id": "project_123",
                    "status": "completed",
                    "video_url": "https://your-cdn.example/result.mp4"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/image-ads/generate": {
      "post": {
        "operationId": "post_image_ads_generate",
        "tags": [
          "Image Ads"
        ],
        "summary": "Generate image ads",
        "description": "Create branded ads from one to four product references, optional promotion details and a visual prompt.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "id": "job_123",
                    "project_id": "project_123",
                    "status": "processing"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project_id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256,
                    "description": "Existing project owned by your account. Omit to create one."
                  },
                  "image_urls": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                    },
                    "minItems": 1,
                    "maxItems": 4
                  },
                  "prompt": {
                    "type": "string",
                    "maxLength": 2000,
                    "default": ""
                  },
                  "brand_name": {
                    "type": "string",
                    "maxLength": 200,
                    "default": ""
                  },
                  "brand_description": {
                    "type": "string",
                    "maxLength": 4000,
                    "default": ""
                  },
                  "promotion": {
                    "type": "object",
                    "properties": {
                      "original_price": {
                        "type": "string",
                        "maxLength": 100
                      },
                      "promo_price": {
                        "type": "string",
                        "maxLength": 100
                      },
                      "details": {
                        "type": "string",
                        "maxLength": 2000
                      }
                    },
                    "required": [],
                    "additionalProperties": false
                  },
                  "num_images": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 4,
                    "default": 1
                  },
                  "aspect_ratio": {
                    "type": "string",
                    "enum": [
                      "21:9",
                      "16:9",
                      "3:2",
                      "4:3",
                      "5:4",
                      "1:1",
                      "4:5",
                      "3:4",
                      "2:3",
                      "9:16"
                    ],
                    "default": "1:1"
                  },
                  "output_format": {
                    "type": "string",
                    "enum": [
                      "png",
                      "jpeg",
                      "webp"
                    ],
                    "default": "png"
                  },
                  "resolution": {
                    "type": "string",
                    "enum": [
                      "1K",
                      "2K",
                      "4K"
                    ],
                    "default": "1K"
                  }
                },
                "required": [
                  "image_urls"
                ],
                "additionalProperties": false
              },
              "example": {
                "project_id": "project_123",
                "image_urls": [
                  "https://your-cdn.example/product.jpg"
                ],
                "brand_name": "Morning Cup",
                "brand_description": "Reusable ceramic travel cups",
                "prompt": "Minimal product ad with a warm cream background.",
                "promotion": {
                  "original_price": "$40",
                  "promo_price": "$32",
                  "details": "Launch offer"
                },
                "num_images": 1,
                "aspect_ratio": "1:1",
                "resolution": "1K",
                "output_format": "png"
              }
            }
          }
        }
      }
    },
    "/image-ads/status": {
      "get": {
        "operationId": "get_image_ads_status",
        "tags": [
          "Image Ads"
        ],
        "summary": "Get image ad status",
        "description": "Poll data.id. Completed output is an array in data.image_urls.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "description": "id input.",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "id": "job_123",
                    "project_id": "project_123",
                    "status": "completed",
                    "image_urls": [
                      "https://your-cdn.example/ad.png"
                    ]
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/background-remover/generate": {
      "post": {
        "operationId": "post_background_remover_generate",
        "tags": [
          "Background Remover"
        ],
        "summary": "Remove or replace a video background",
        "description": "Remove the background, apply a solid hex color, or composite the subject over an image. Creates a separate project job.\n\nFor a replacement image, supply background_image_url. position_x, position_y, width_scale and height_scale apply only to this image mode; background_color and transparent_format apply to removal/color mode.\n\nwebm_vp9 and mov_prores produce video; png_sequence and pro_bundle can produce a downloadable archive. Read output_url without assuming an MP4 file.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "id": "job_123",
                    "project_id": "project_123",
                    "status": "processing"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project_id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256,
                    "description": "Existing project owned by your account. Omit to create one."
                  },
                  "video_url": {
                    "type": "string",
                    "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                  },
                  "background_image_url": {
                    "type": "string",
                    "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                  },
                  "background_color": {
                    "type": "string",
                    "pattern": "^(transparent|#[0-9a-fA-F]{6})$",
                    "default": "transparent"
                  },
                  "transparent_format": {
                    "type": "string",
                    "enum": [
                      "webm_vp9",
                      "mov_prores",
                      "png_sequence",
                      "pro_bundle"
                    ],
                    "default": "webm_vp9"
                  },
                  "position_x": {
                    "type": "number",
                    "minimum": -2,
                    "maximum": 2,
                    "default": 0
                  },
                  "position_y": {
                    "type": "number",
                    "minimum": -2,
                    "maximum": 2,
                    "default": 0
                  },
                  "width_scale": {
                    "type": "number",
                    "maximum": 10,
                    "exclusiveMinimum": 0,
                    "default": 1
                  },
                  "height_scale": {
                    "type": "number",
                    "maximum": 10,
                    "exclusiveMinimum": 0,
                    "default": 1
                  }
                },
                "required": [
                  "video_url"
                ],
                "additionalProperties": false
              },
              "example": {
                "project_id": "project_123",
                "video_url": "https://your-cdn.example/reference.mp4",
                "background_color": "transparent",
                "transparent_format": "webm_vp9"
              }
            }
          }
        }
      }
    },
    "/background-remover/status": {
      "get": {
        "operationId": "get_background_remover_status",
        "tags": [
          "Background Remover"
        ],
        "summary": "Get background processing status",
        "description": "Poll the MakeUGC data.id, not an upstream provider ID. The completed file or archive is in output_url.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "description": "id input.",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "id": "job_123",
                    "project_id": "project_123",
                    "status": "completed",
                    "output_url": "https://your-cdn.example/transparent.webm"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/video-extend/generate": {
      "post": {
        "operationId": "post_video_extend_generate",
        "tags": [
          "Video Extend"
        ],
        "summary": "Generate connected scenes",
        "description": "Create one to four connected scenes using Veo 3.1. Start from a prompt or image and extend the generated first scene.\n\nThe first scene uses an 8-second duration; continuation length is controlled by the model. This endpoint builds a new sequence; it does not accept an existing video URL.\n\nend_image_url is supported only when scenes has one item. fast and pro select the Veo tier. Charges depend on tier and scene count.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "id": "job_123",
                    "project_id": "project_123",
                    "status": "processing",
                    "scene_count": 2
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project_id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256,
                    "description": "Existing project owned by your account. Omit to create one."
                  },
                  "model": {
                    "type": "string",
                    "enum": [
                      "fast",
                      "pro"
                    ],
                    "default": "fast"
                  },
                  "scenes": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "prompt": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        }
                      },
                      "required": [
                        "prompt"
                      ],
                      "additionalProperties": false
                    },
                    "minItems": 1,
                    "maxItems": 4
                  },
                  "image_url": {
                    "type": "string",
                    "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                  },
                  "end_image_url": {
                    "type": "string",
                    "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                  },
                  "aspect_ratio": {
                    "type": "string",
                    "enum": [
                      "9:16",
                      "16:9",
                      "1:1"
                    ],
                    "default": "9:16"
                  }
                },
                "required": [
                  "scenes"
                ],
                "additionalProperties": false
              },
              "example": {
                "project_id": "project_123",
                "model": "fast",
                "image_url": "https://your-cdn.example/product.jpg",
                "scenes": [
                  {
                    "prompt": "A slow close-up of the cup on a sunlit table."
                  },
                  {
                    "prompt": "Continue the same shot as a hand picks up the cup."
                  }
                ],
                "aspect_ratio": "9:16"
              }
            }
          }
        }
      }
    },
    "/video-extend/status": {
      "get": {
        "operationId": "get_video_extend_status",
        "tags": [
          "Video Extend"
        ],
        "summary": "Get connected video status",
        "description": "Poll until the final connected output is available in video_url.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "description": "id input.",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "id": "job_123",
                    "project_id": "project_123",
                    "status": "completed",
                    "video_url": "https://your-cdn.example/result.mp4"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/custom-voices/upload": {
      "post": {
        "operationId": "post_custom_voices_upload",
        "tags": [
          "Custom Voice & Text to Speech"
        ],
        "summary": "Prepare an audio upload",
        "description": "Create an owned upload and obtain presigned multipart POST instructions for a voice sample.\n\nPOST multipart/form-data directly to data.presigned.url with every returned fields entry and the audio file as file (append file last). Do not send X-Api-Key to storage. Wait for a successful storage response before cloning; do not send raw audio to /custom-voices/clone.\n\nUse a clear recording with one speaker and no background music. Upload URLs are temporary; request a new upload if the storage signature expires.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "id": "upload_123",
                    "presigned": {
                      "url": "https://your-upload-bucket.example",
                      "fields": {
                        "key": "uploads/sample.mp3",
                        "policy": "SIGNED_POLICY"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "required": [],
                "additionalProperties": false
              },
              "example": {}
            }
          }
        }
      }
    },
    "/custom-voices/clone": {
      "post": {
        "operationId": "post_custom_voices_clone",
        "tags": [
          "Custom Voice & Text to Speech"
        ],
        "summary": "Clone an uploaded voice",
        "description": "Process a sample uploaded through /custom-voices/upload. Save data.id to track voice availability.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "id": "upload_123",
                    "status": "processing",
                    "credits_charged": 1
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "upload_id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "voice_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  }
                },
                "required": [
                  "upload_id",
                  "voice_name"
                ],
                "additionalProperties": false
              },
              "example": {
                "upload_id": "upload_123",
                "voice_name": "My brand voice"
              }
            }
          }
        }
      }
    },
    "/custom-voices/design": {
      "post": {
        "operationId": "post_custom_voices_design",
        "tags": [
          "Custom Voice & Text to Speech"
        ],
        "summary": "Preview a designed voice",
        "description": "Create voice previews from a description or reference image. Choose a preview before saving it.\n\nEach preview_token belongs to your API key's account and expires after one hour. Pass the token unchanged to /custom-voices/save; provider voice IDs and arbitrary preview URLs are not accepted.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "text": "A short voice preview.",
                    "previews": [
                      {
                        "audio_url": "https://your-cdn.example/voice-preview.mp3",
                        "preview_token": "SIGNED_PREVIEW_TOKEN"
                      }
                    ]
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "prompt": {
                    "type": "string",
                    "maxLength": 1000,
                    "default": ""
                  },
                  "image_url": {
                    "type": "string",
                    "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                  }
                },
                "required": [],
                "additionalProperties": false
              },
              "example": {
                "prompt": "Warm, confident adult voice with a natural conversational delivery."
              }
            }
          }
        }
      }
    },
    "/custom-voices/save": {
      "post": {
        "operationId": "post_custom_voices_save",
        "tags": [
          "Custom Voice & Text to Speech"
        ],
        "summary": "Save a designed voice",
        "description": "Save a selected preview as a reusable custom voice.\n\nIf voice_id is null, poll /custom-voices/status using the full returned id. Design status IDs expire after seven days; after that use /video/voices. A status token cannot be used to save another voice.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "id": "design:SIGNED_STATUS_TOKEN",
                    "voice_id": "voice_123",
                    "status": "completed",
                    "credits_charged": 1
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "preview_token": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 8000,
                    "description": "Owner-bound token returned by /custom-voices/design; expires after one hour."
                  },
                  "voice_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  }
                },
                "required": [
                  "preview_token",
                  "voice_name"
                ],
                "additionalProperties": false
              },
              "example": {
                "preview_token": "SIGNED_PREVIEW_TOKEN",
                "voice_name": "My designed voice"
              }
            }
          }
        }
      }
    },
    "/custom-voices/status": {
      "get": {
        "operationId": "get_custom_voices_status",
        "tags": [
          "Custom Voice & Text to Speech"
        ],
        "summary": "Get custom voice availability",
        "description": "Resolve an upload ID or a design status ID to a reusable MakeUGC voice_id.\n\nUse the returned voice_id directly, even if the cached /video/voices listing has not refreshed. A request remains processing until a saved voice is available; if it remains pending, contact support with the job ID and x-request-id rather than repeatedly paying for another submission.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "description": "id input.",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 8500
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "id": "upload_123",
                    "status": "completed",
                    "voice_id": "voice_123"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/speech/generate": {
      "post": {
        "operationId": "post_speech_generate",
        "tags": [
          "Custom Voice & Text to Speech"
        ],
        "summary": "Generate speech audio",
        "description": "Synthesize a script with a stock voice or a custom voice owned by your account. Returns an audio URL synchronously.\n\nvoice_id is the MakeUGC database id from GET /video/voices, not the voiceId provider identifier. Custom voices must belong to the API key owner.\n\neleven_v4 uses stability and similarity_boost; its provider ignores the other settings. eleven_v3 snaps stability to 0, 0.5 or 1. OpenAI and Hebrew voices use the provider assigned to that voice; model does not override it.\n\nDownload audio_url for permanent storage. No polling or webhook is needed for speech audio.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "audio_url": "https://your-cdn.example/speech.mp3",
                    "voice_id": "voice_123"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "script": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1500
                  },
                  "voice_id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256,
                    "description": "MakeUGC voice id from GET /video/voices, not the provider voiceId."
                  },
                  "model": {
                    "type": "string",
                    "enum": [
                      "eleven_multilingual_v2",
                      "eleven_v3",
                      "eleven_v4"
                    ],
                    "default": "eleven_v4"
                  },
                  "settings": {
                    "type": "object",
                    "properties": {
                      "stability": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 1,
                        "default": 0.5
                      },
                      "similarity_boost": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 1,
                        "default": 0.75
                      },
                      "style": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 1,
                        "default": 0
                      },
                      "use_speaker_boost": {
                        "type": "boolean",
                        "default": true
                      },
                      "speed": {
                        "type": "number",
                        "minimum": 0.5,
                        "maximum": 3,
                        "default": 1
                      }
                    },
                    "required": [],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "script",
                  "voice_id"
                ],
                "additionalProperties": false
              },
              "example": {
                "script": "Meet your new everyday coffee companion.",
                "voice_id": "voice_123",
                "model": "eleven_v4",
                "settings": {
                  "stability": 0.5,
                  "similarity_boost": 0.75
                }
              }
            }
          }
        }
      }
    },
    "/upscale/quote": {
      "post": {
        "operationId": "post_upscale_quote",
        "tags": [
          "Video Upscale"
        ],
        "summary": "Quote an upscale",
        "description": "Probe an owned video and estimate the credit cost without submitting an upscale job.\n\nSource probing can take up to 370 seconds. Use a client timeout of at least 420 seconds. The quote is informational; submission obtains its own current quote.\n\nSource must be at most 300 seconds and 60 fps. Upscale factor must be 1–4, with output at most 2160 pixels on the short side and 3840 on the long side. Unsupported source geometry is rejected.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "success": true,
                    "videoId": "video_123",
                    "modelFamily": "precision",
                    "model": "Proteus",
                    "upscaleFactor": 1.5,
                    "metadata": {
                      "width": 720,
                      "height": 1280,
                      "duration": 10,
                      "fps": 30,
                      "frames": 300
                    },
                    "quote": {
                      "credits": 1.25
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "video_id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "project_id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "video_type": {
                    "type": "string",
                    "enum": [
                      "video",
                      "product-in-hand",
                      "b-roll",
                      "gestures",
                      "wan-animate",
                      "sora2",
                      "scenes",
                      "seedance_2_video",
                      "seedance_25_video",
                      "grok_video",
                      "minimax_video",
                      "veo3_extend",
                      "prompt_studio_video",
                      "template_ads",
                      "platform_background_removal"
                    ]
                  },
                  "model_family": {
                    "type": "string",
                    "enum": [
                      "precision",
                      "generative",
                      "creative"
                    ]
                  },
                  "model": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "target_resolution": {
                    "type": "string",
                    "enum": [
                      "720p",
                      "1080p",
                      "1440p",
                      "2160p"
                    ]
                  }
                },
                "required": [
                  "video_id",
                  "project_id",
                  "video_type",
                  "model_family",
                  "model",
                  "target_resolution"
                ],
                "additionalProperties": false
              },
              "example": {
                "video_id": "video_123",
                "project_id": "project_123",
                "video_type": "seedance_25_video",
                "model_family": "precision",
                "model": "Proteus",
                "target_resolution": "1080p"
              }
            }
          }
        }
      }
    },
    "/upscale/generate": {
      "post": {
        "operationId": "post_upscale_generate",
        "tags": [
          "Video Upscale"
        ],
        "summary": "Submit an upscale",
        "description": "Upscale an existing video owned by your account and save data.billing_id for this attempt.\n\nUpscale replaces the output URL on the existing video record. Save the original file first if you need both versions.\n\nThe service handles charging and refunds. This operation is not idempotent: do not submit again while an attempt is active.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "id": "video_123",
                    "billing_id": "billing_123",
                    "project_id": "project_123",
                    "status": "processing"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "video_id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "project_id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "video_type": {
                    "type": "string",
                    "enum": [
                      "video",
                      "product-in-hand",
                      "b-roll",
                      "gestures",
                      "wan-animate",
                      "sora2",
                      "scenes",
                      "seedance_2_video",
                      "seedance_25_video",
                      "grok_video",
                      "minimax_video",
                      "veo3_extend",
                      "prompt_studio_video",
                      "template_ads",
                      "platform_background_removal"
                    ]
                  },
                  "model_family": {
                    "type": "string",
                    "enum": [
                      "precision",
                      "generative",
                      "creative"
                    ]
                  },
                  "model": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "target_resolution": {
                    "type": "string",
                    "enum": [
                      "720p",
                      "1080p",
                      "1440p",
                      "2160p"
                    ]
                  }
                },
                "required": [
                  "video_id",
                  "project_id",
                  "video_type",
                  "model_family",
                  "model",
                  "target_resolution"
                ],
                "additionalProperties": false
              },
              "example": {
                "video_id": "video_123",
                "project_id": "project_123",
                "video_type": "seedance_25_video",
                "model_family": "precision",
                "model": "Proteus",
                "target_resolution": "1080p"
              }
            }
          }
        }
      }
    },
    "/upscale/status": {
      "get": {
        "operationId": "get_upscale_status",
        "tags": [
          "Video Upscale"
        ],
        "summary": "Get upscale attempt status",
        "description": "Poll using billing_id and the same source video identifiers. video_url is returned only after this billing attempt completes.\n\nUpscale uses preparing and charged as in-progress statuses; completed, refunded and failed are terminal. A video record may retain its original URL while upscale is running. Always poll this endpoint instead of the original generation status.",
        "parameters": [
          {
            "name": "video_id",
            "in": "query",
            "required": true,
            "description": "video id input.",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          },
          {
            "name": "project_id",
            "in": "query",
            "required": true,
            "description": "project id input.",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          },
          {
            "name": "video_type",
            "in": "query",
            "required": true,
            "description": "video type input.",
            "schema": {
              "type": "string",
              "enum": [
                "video",
                "product-in-hand",
                "b-roll",
                "gestures",
                "wan-animate",
                "sora2",
                "scenes",
                "seedance_2_video",
                "seedance_25_video",
                "grok_video",
                "minimax_video",
                "veo3_extend",
                "prompt_studio_video",
                "template_ads",
                "platform_background_removal"
              ]
            }
          },
          {
            "name": "billing_id",
            "in": "query",
            "required": true,
            "description": "billing id input.",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "id": "video_123",
                    "billing_id": "billing_123",
                    "status": "completed",
                    "video_url": "https://your-cdn.example/upscaled.mp4",
                    "credits_charged": 1.25,
                    "credits_refunded": 0,
                    "error": null
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/scripts/generate": {
      "post": {
        "operationId": "post_scripts_generate",
        "tags": [
          "AI Script Writer"
        ],
        "summary": "Write a script",
        "description": "Create a spoken ad script and optional avatar suggestions from a product description and tone.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "script": "Meet your new everyday coffee companion.",
                    "avatar_ids": [
                      "avatar_123"
                    ]
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "description": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "style": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "max_character": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1500
                  }
                },
                "required": [
                  "description",
                  "style"
                ],
                "additionalProperties": false
              },
              "example": {
                "description": "A lightweight ceramic travel cup that keeps coffee warm.",
                "style": "Friendly, conversational",
                "max_character": 800
              }
            }
          }
        }
      }
    },
    "/scripts/product": {
      "post": {
        "operationId": "post_scripts_product",
        "tags": [
          "AI Script Writer"
        ],
        "summary": "Write a script from product images",
        "description": "Use one or two product images with your description to write a product ad script.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "script": "This is the cup I take everywhere.",
                    "avatar_ids": []
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "description": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1000
                  },
                  "style": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "image_url": {
                    "type": "string",
                    "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                  },
                  "second_image_url": {
                    "type": "string",
                    "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                  }
                },
                "required": [
                  "description",
                  "style",
                  "image_url"
                ],
                "additionalProperties": false
              },
              "example": {
                "description": "A ceramic travel cup",
                "style": "Enthusiastic product demo",
                "image_url": "https://your-cdn.example/product.jpg"
              }
            }
          }
        }
      }
    },
    "/speech/normalize": {
      "post": {
        "operationId": "post_speech_normalize",
        "tags": [
          "Speech Text Tools"
        ],
        "summary": "Normalize speech text",
        "description": "Prepare numbers, abbreviations and text for speech synthesis. Returns the resulting script immediately.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "script": "Save twenty percent on orders over fifty dollars.",
                    "changed": true
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "script": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1500
                  }
                },
                "required": [
                  "script"
                ],
                "additionalProperties": false
              },
              "example": {
                "script": "Save 20% on orders over $50."
              }
            }
          }
        }
      }
    },
    "/speech/enhance": {
      "post": {
        "operationId": "post_speech_enhance",
        "tags": [
          "Speech Text Tools"
        ],
        "summary": "Enhance speech text",
        "description": "Improve delivery cues and phrasing for speech generation. Review the returned script before synthesizing audio.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "script": "[warmly] This cup makes every morning better.",
                    "changed": true
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "script": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1500
                  }
                },
                "required": [
                  "script"
                ],
                "additionalProperties": false
              },
              "example": {
                "script": "This cup makes every morning better."
              }
            }
          }
        }
      }
    },
    "/templates/list": {
      "get": {
        "operationId": "get_templates_list",
        "tags": [
          "Templates"
        ],
        "summary": "List templates",
        "description": "List current app templates, preview media, categories and require_fields for each template.",
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "required": false,
            "description": "category input.",
            "schema": {
              "type": "string",
              "maxLength": 200
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "templates": [
                      {
                        "id": "template_123",
                        "title": "Product spotlight",
                        "description": "A product demonstration",
                        "preview_url": "https://your-cdn.example/reference.mp4",
                        "credit": null,
                        "category": [
                          "Product ads"
                        ],
                        "require_fields": {
                          "product_image": {
                            "type": "image",
                            "required": true
                          },
                          "product_name": {
                            "type": "input",
                            "required": true,
                            "max": 100
                          }
                        }
                      }
                    ]
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/templates/generate": {
      "post": {
        "operationId": "post_templates_generate",
        "tags": [
          "Templates"
        ],
        "summary": "Generate a template video",
        "description": "Generate with a current app template, a seed and the required inputs declared by that template.\n\nFetch /templates/list first. Fixed media, model, duration, hook and voice inputs belong at the top level. Other declared require_fields belong inside fields; unknown keys and billing/ownership controls are rejected.\n\nTemplate-required fields, option lists and per-field length limits are checked at submission. Send product_image or product_images (up to three), not both. For multiple products, the first image satisfies a product_image requirement.\n\nseed is required. Use a safe JSON integer or a signed decimal string for larger values. It selects template variations; it does not guarantee pixel-identical model outputs. Save variation_picks from the response.\n\nTemplates are the current app catalog. Older Content Library templates use /content-library/* and cannot be submitted here. Generation cost depends on the model and duration; read credits_used.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "id": "job_123",
                    "project_id": "project_123",
                    "status": "processing",
                    "model": "seedance-2.0-fast",
                    "credits_used": 1.5,
                    "seed": 12345,
                    "variation_picks": {}
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project_id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256,
                    "description": "Existing project owned by your account. Omit to create one."
                  },
                  "template_id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "seed": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "string",
                        "pattern": "^-?(0|[1-9]\\d*)$",
                        "maxLength": 64
                      }
                    ]
                  },
                  "product_image": {
                    "type": "string",
                    "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                  },
                  "product_images": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                    },
                    "minItems": 1,
                    "maxItems": 3
                  },
                  "actor_image": {
                    "type": "string",
                    "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                  },
                  "actor_image_2": {
                    "type": "string",
                    "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                  },
                  "voice_id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256,
                    "description": "MakeUGC voice id from GET /video/voices."
                  },
                  "model": {
                    "type": "string",
                    "enum": [
                      "seedance-2.0-fast",
                      "seedance-2.0",
                      "seedance-2.5"
                    ],
                    "default": "seedance-2.0-fast"
                  },
                  "duration": {
                    "type": "string",
                    "enum": [
                      "10",
                      "15",
                      "20",
                      "25",
                      "30"
                    ],
                    "default": "15"
                  },
                  "aspect_ratio": {
                    "type": "string",
                    "enum": [
                      "9:16",
                      "16:9",
                      "1:1"
                    ],
                    "default": "9:16"
                  },
                  "hook": {
                    "type": "string",
                    "enum": [
                      "question",
                      "pattern_interrupt",
                      "social_proof",
                      "pov_grab",
                      "whisper_secret",
                      "bold_claim_first"
                    ]
                  },
                  "fields": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string",
                      "maxLength": 5000
                    },
                    "default": {},
                    "description": "Only keys declared in the selected template's require_fields. Billing and ownership fields are rejected."
                  }
                },
                "required": [
                  "template_id",
                  "seed"
                ],
                "additionalProperties": false
              },
              "example": {
                "project_id": "project_123",
                "template_id": "template_123",
                "seed": 12345,
                "product_image": "https://your-cdn.example/product.jpg",
                "model": "seedance-2.0-fast",
                "duration": "15",
                "aspect_ratio": "9:16",
                "fields": {
                  "product_name": "Morning Cup"
                }
              }
            }
          }
        }
      }
    },
    "/templates/status": {
      "get": {
        "operationId": "get_templates_status",
        "tags": [
          "Templates"
        ],
        "summary": "Get template video status",
        "description": "Poll the ID from /templates/generate, scoped to your API key's account.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "description": "id input.",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "data": {
                    "id": "job_123",
                    "project_id": "project_123",
                    "status": "completed",
                    "video_url": "https://your-cdn.example/result.mp4"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/enterprise/models": {
      "get": {
        "operationId": "get_enterprise_models",
        "tags": [
          "Enterprise models"
        ],
        "summary": "List available enterprise models",
        "description": "Returns the current enterprise catalog with model IDs, media types and credit descriptions. The response below is an excerpt. Dedicated Seedance IDs such as seedance-2.5 are documented separately and are not returned by this endpoint.\n\nThe credit descriptions are informational. In particular, the enterprise catalog’s compatibility Seedance descriptions may not reflect the duration/resolution tariff. Use the dedicated Seedance endpoint’s estimated_credits for new integrations.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "models": [
                    {
                      "model": "gpt-image-2",
                      "media": "image",
                      "credits": "0.1"
                    },
                    {
                      "model": "veo3-1-fast-t2v",
                      "media": "video",
                      "credits": "1.0"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/enterprise/generate": {
      "post": {
        "operationId": "post_enterprise_generate",
        "tags": [
          "Enterprise models"
        ],
        "summary": "Generate with an enterprise model",
        "description": "The same endpoint creates images, edits images and generates videos. Send the exact model ID and put its inputs inside params. Generation is asynchronous.\n\nSave request_id, project_id and media before polling. Grok Imagine 1.5 and Gemini Omni may also return credits_deducted, credits_charged, refund_result and credit_adjustment.\n\nThe model ID determines the mode. Do not send mode, user_id or billing controls inside params. Grok Imagine 1.5, Gemini Omni and the expanded app model catalog reject unknown params.\n\nExpanded model references identify polling-only workflows. Omit webhook_url for these models; supplying it returns 400 before submission. Keep request_id exactly as returned, including any prefix, and URL-encode it in the status path.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "request_id": "request_123",
                  "project_id": "project_123",
                  "media": "image",
                  "model": "gpt-image-2",
                  "status": "queued",
                  "message": "Enterprise API job queued"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "gemini-omni-flash-1-1-t2v"
                        ],
                        "description": "Gemini Omni Flash 1.1 · Text to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Non-empty video prompt. Allowed: Up to 20,000 characters."
                          },
                          "resolution": {
                            "type": "string",
                            "description": "Output resolution. Allowed: 360p | 720p | 1080p | 4k. Default: 720p.",
                            "enum": [
                              "360p",
                              "720p",
                              "1080p",
                              "4k"
                            ],
                            "default": "720p"
                          },
                          "duration": {
                            "type": "integer",
                            "description": "Output duration in seconds. Allowed: 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10. Default: 8.",
                            "enum": [
                              3,
                              4,
                              5,
                              6,
                              7,
                              8,
                              9,
                              10
                            ],
                            "default": 8
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "description": "Output aspect ratio. Allowed: 16:9 | 9:16. Default: 16:9.",
                            "enum": [
                              "16:9",
                              "9:16"
                            ],
                            "default": "16:9"
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "gemini-omni-flash-1-1-i2v"
                        ],
                        "description": "Gemini Omni Flash 1.1 · Image to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Non-empty video prompt. Allowed: Up to 20,000 characters."
                          },
                          "resolution": {
                            "type": "string",
                            "description": "Output resolution. Allowed: 360p | 720p | 1080p | 4k. Default: 720p.",
                            "enum": [
                              "360p",
                              "720p",
                              "1080p",
                              "4k"
                            ],
                            "default": "720p"
                          },
                          "duration": {
                            "type": "integer",
                            "description": "Output duration in seconds. Allowed: 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10. Default: 8.",
                            "enum": [
                              3,
                              4,
                              5,
                              6,
                              7,
                              8,
                              9,
                              10
                            ],
                            "default": 8
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "description": "Output aspect ratio. Allowed: 16:9 | 9:16. Default: 16:9.",
                            "enum": [
                              "16:9",
                              "9:16"
                            ],
                            "default": "16:9"
                          },
                          "image_url": {
                            "type": "string",
                            "description": "First frame."
                          },
                          "end_image_url": {
                            "type": "string",
                            "description": "Optional last frame."
                          }
                        },
                        "required": [
                          "prompt",
                          "image_url"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "gemini-omni-flash-1-1-r2v"
                        ],
                        "description": "Gemini Omni Flash 1.1 · Reference to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Non-empty video prompt. Allowed: Up to 20,000 characters."
                          },
                          "resolution": {
                            "type": "string",
                            "description": "Output resolution. Allowed: 360p | 720p | 1080p | 4k. Default: 720p.",
                            "enum": [
                              "360p",
                              "720p",
                              "1080p",
                              "4k"
                            ],
                            "default": "720p"
                          },
                          "duration": {
                            "type": "integer",
                            "description": "Output duration in seconds. Allowed: 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10. Default: 8.",
                            "enum": [
                              3,
                              4,
                              5,
                              6,
                              7,
                              8,
                              9,
                              10
                            ],
                            "default": 8
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "description": "Output aspect ratio. Allowed: 16:9 | 9:16. Default: 16:9.",
                            "enum": [
                              "16:9",
                              "9:16"
                            ],
                            "default": "16:9"
                          },
                          "image_urls": {
                            "type": "array",
                            "description": "Ordered reference images. Mention them as <IMAGE_REF_0>, <IMAGE_REF_1>, etc. Allowed: Up to 10 images.",
                            "items": {
                              "type": "string"
                            }
                          },
                          "reference_video_urls": {
                            "type": "array",
                            "description": "Ordered reference videos. Each must be at most 3 seconds. Mention them as <VIDEO_REF_0>, etc. Allowed: Up to 3 videos.",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "gemini-omni-flash-1-1-edit"
                        ],
                        "description": "Gemini Omni Flash 1.1 · Edit"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Non-empty video prompt. Allowed: Up to 20,000 characters."
                          },
                          "resolution": {
                            "type": "string",
                            "description": "Output resolution. Allowed: 360p | 720p | 1080p | 4k. Default: 720p.",
                            "enum": [
                              "360p",
                              "720p",
                              "1080p",
                              "4k"
                            ],
                            "default": "720p"
                          },
                          "video_url": {
                            "type": "string",
                            "description": "Source video to edit. Generation duration limits do not apply."
                          }
                        },
                        "required": [
                          "prompt",
                          "video_url"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "grok-imagine-video-1-5-t2v"
                        ],
                        "description": "Grok Imagine 1.5 · Text to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Non-blank video prompt. Allowed: Up to 4,096 characters."
                          },
                          "duration": {
                            "type": "integer",
                            "description": "Output duration in seconds; strings and fractions are rejected. Allowed: 1–15. Default: 6.",
                            "default": 6
                          },
                          "resolution": {
                            "type": "string",
                            "description": "Output resolution. Allowed: 480p | 720p | 1080p. Default: 720p.",
                            "enum": [
                              "480p",
                              "720p",
                              "1080p"
                            ],
                            "default": "720p"
                          },
                          "enable_safety_checker": {
                            "type": "boolean",
                            "description": "Disable only with provider authorization for relaxed screening. Default: true.",
                            "default": true
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "description": "Output aspect ratio. Allowed: 16:9 | 4:3 | 3:2 | 1:1 | 2:3 | 3:4 | 9:16. Default: 16:9.",
                            "enum": [
                              "16:9",
                              "4:3",
                              "3:2",
                              "1:1",
                              "2:3",
                              "3:4",
                              "9:16"
                            ],
                            "default": "16:9"
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "grok-imagine-video-1-5-i2v"
                        ],
                        "description": "Grok Imagine 1.5 · Image to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Non-blank video prompt. Allowed: Up to 4,096 characters."
                          },
                          "duration": {
                            "type": "integer",
                            "description": "Output duration in seconds; strings and fractions are rejected. Allowed: 1–15. Default: 6.",
                            "default": 6
                          },
                          "resolution": {
                            "type": "string",
                            "description": "Output resolution. Allowed: 480p | 720p | 1080p. Default: 720p.",
                            "enum": [
                              "480p",
                              "720p",
                              "1080p"
                            ],
                            "default": "720p"
                          },
                          "enable_safety_checker": {
                            "type": "boolean",
                            "description": "Disable only with provider authorization for relaxed screening. Default: true.",
                            "default": true
                          },
                          "image_url": {
                            "type": "string",
                            "description": "Source image. Aspect ratio follows this image; do not send aspect_ratio."
                          }
                        },
                        "required": [
                          "prompt",
                          "image_url"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "grok-imagine-video-1-5-r2v"
                        ],
                        "description": "Grok Imagine 1.5 · Reference to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Non-blank video prompt. Allowed: Up to 4,096 characters."
                          },
                          "duration": {
                            "type": "integer",
                            "description": "Output duration in seconds; strings and fractions are rejected. Allowed: 1–15. Default: 8.",
                            "default": 8
                          },
                          "resolution": {
                            "type": "string",
                            "description": "Output resolution. Allowed: 480p | 720p. Default: 480p.",
                            "enum": [
                              "480p",
                              "720p"
                            ],
                            "default": "480p"
                          },
                          "enable_safety_checker": {
                            "type": "boolean",
                            "description": "Disable only with provider authorization for relaxed screening. Default: true.",
                            "default": true
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "description": "Output aspect ratio. Allowed: 16:9 | 4:3 | 3:2 | 1:1 | 2:3 | 3:4 | 9:16. Default: 16:9.",
                            "enum": [
                              "16:9",
                              "4:3",
                              "3:2",
                              "1:1",
                              "2:3",
                              "3:4",
                              "9:16"
                            ],
                            "default": "16:9"
                          },
                          "reference_image_urls": {
                            "type": "array",
                            "description": "Ordered images, including repeats. Refer to them as <IMAGE_0>, <IMAGE_1>, etc. Allowed: 1–7 images.",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "prompt",
                          "reference_image_urls"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "nano-banana-pro"
                        ],
                        "description": "Nano Banana Pro"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Generation prompt. Allowed: Max 2000 characters."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "description": "Target image aspect ratio. Allowed: 21:9 | 9:21 | 16:9 | 9:16 | 3:2 | 2:3 | 4:3 | 3:4 | 5:4 | 4:5 | 1:1.",
                            "enum": [
                              "21:9",
                              "9:21",
                              "16:9",
                              "9:16",
                              "3:2",
                              "2:3",
                              "4:3",
                              "3:4",
                              "5:4",
                              "4:5",
                              "1:1"
                            ]
                          },
                          "output_format": {
                            "type": "string",
                            "description": "Output image format. Allowed: png | jpeg | webp. Default: png.",
                            "enum": [
                              "png",
                              "jpeg",
                              "webp"
                            ],
                            "default": "png"
                          },
                          "safety_tolerance": {
                            "type": "string",
                            "description": "Provider safety tolerance value. Default: 4.",
                            "default": "4"
                          },
                          "resolution": {
                            "type": "string",
                            "description": "Output resolution preset. Allowed: 1k | 2k | 4k. Default: 1k.",
                            "enum": [
                              "1k",
                              "2k",
                              "4k"
                            ],
                            "default": "1k"
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": true
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "gpt-image-2"
                        ],
                        "description": "GPT Image 2"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Generation prompt. Allowed: Max 2000 characters."
                          },
                          "quality": {
                            "type": "string",
                            "description": "Image quality preset. Allowed: high | medium | low. Default: high.",
                            "enum": [
                              "high",
                              "medium",
                              "low"
                            ],
                            "default": "high"
                          },
                          "image_size": {
                            "type": "string",
                            "description": "Target image size preset. Allowed: square_hd | square | portrait_4_3 | portrait_16_9 | landscape_4_3 | landscape_16_9.",
                            "enum": [
                              "square_hd",
                              "square",
                              "portrait_4_3",
                              "portrait_16_9",
                              "landscape_4_3",
                              "landscape_16_9"
                            ]
                          },
                          "output_format": {
                            "type": "string",
                            "description": "Output image format. Allowed: png | jpeg | webp. Default: png.",
                            "enum": [
                              "png",
                              "jpeg",
                              "webp"
                            ],
                            "default": "png"
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": true
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "flux-2-pro"
                        ],
                        "description": "FLUX.2 Pro"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Generation prompt. Allowed: Max 2000 characters."
                          },
                          "image_size": {
                            "type": "string",
                            "description": "Target image size preset. Allowed: square_hd | square | portrait_4_3 | portrait_16_9 | landscape_4_3 | landscape_16_9.",
                            "enum": [
                              "square_hd",
                              "square",
                              "portrait_4_3",
                              "portrait_16_9",
                              "landscape_4_3",
                              "landscape_16_9"
                            ]
                          },
                          "safety_tolerance": {
                            "type": "string",
                            "description": "Provider safety tolerance value. Default: 2.",
                            "default": "2"
                          },
                          "enable_safety_checker": {
                            "type": "boolean",
                            "description": "Enable provider safety checker. Default: true.",
                            "default": true
                          },
                          "output_format": {
                            "type": "string",
                            "description": "Output image format. Allowed: png | jpeg | webp. Default: jpeg.",
                            "enum": [
                              "png",
                              "jpeg",
                              "webp"
                            ],
                            "default": "jpeg"
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": true
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "grok-imagine-image"
                        ],
                        "description": "Grok Imagine Image"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Generation prompt. Allowed: Max 2000 characters."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "description": "Target image aspect ratio. Allowed: 21:9 | 9:21 | 16:9 | 9:16 | 3:2 | 2:3 | 4:3 | 3:4 | 5:4 | 4:5 | 1:1.",
                            "enum": [
                              "21:9",
                              "9:21",
                              "16:9",
                              "9:16",
                              "3:2",
                              "2:3",
                              "4:3",
                              "3:4",
                              "5:4",
                              "4:5",
                              "1:1"
                            ]
                          },
                          "resolution": {
                            "type": "string",
                            "description": "Output resolution preset. Allowed: 1k | 2k | 4k. Default: 1k.",
                            "enum": [
                              "1k",
                              "2k",
                              "4k"
                            ],
                            "default": "1k"
                          },
                          "output_format": {
                            "type": "string",
                            "description": "Output image format. Allowed: png | jpeg | webp. Default: jpeg.",
                            "enum": [
                              "png",
                              "jpeg",
                              "webp"
                            ],
                            "default": "jpeg"
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": true
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "nano-banana-pro-edit"
                        ],
                        "description": "Nano Banana Pro · Edit"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Editing prompt. Allowed: Max 2000 characters."
                          },
                          "image_urls": {
                            "type": "array",
                            "description": "Source image URLs. Allowed: Up to 2 URLs.",
                            "items": {
                              "type": "string"
                            }
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "description": "Target image aspect ratio. Allowed: 21:9 | 9:21 | 16:9 | 9:16 | 3:2 | 2:3 | 4:3 | 3:4 | 5:4 | 4:5 | 1:1 | auto. Default: auto.",
                            "enum": [
                              "21:9",
                              "9:21",
                              "16:9",
                              "9:16",
                              "3:2",
                              "2:3",
                              "4:3",
                              "3:4",
                              "5:4",
                              "4:5",
                              "1:1",
                              "auto"
                            ],
                            "default": "auto"
                          },
                          "output_format": {
                            "type": "string",
                            "description": "Output image format. Allowed: png | jpeg | webp. Default: png.",
                            "enum": [
                              "png",
                              "jpeg",
                              "webp"
                            ],
                            "default": "png"
                          },
                          "safety_tolerance": {
                            "type": "string",
                            "description": "Provider safety tolerance value. Default: 4.",
                            "default": "4"
                          },
                          "resolution": {
                            "type": "string",
                            "description": "Output resolution preset. Allowed: 1k | 2k | 4k. Default: 1k.",
                            "enum": [
                              "1k",
                              "2k",
                              "4k"
                            ],
                            "default": "1k"
                          }
                        },
                        "required": [
                          "prompt",
                          "image_urls"
                        ],
                        "additionalProperties": true
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "gpt-image-2-edit"
                        ],
                        "description": "GPT Image 2 · Edit"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Editing prompt. Allowed: Max 2000 characters."
                          },
                          "image_urls": {
                            "type": "array",
                            "description": "Source image URLs. Allowed: Up to 2 URLs.",
                            "items": {
                              "type": "string"
                            }
                          },
                          "quality": {
                            "type": "string",
                            "description": "Image quality preset. Allowed: high | medium | low. Default: high.",
                            "enum": [
                              "high",
                              "medium",
                              "low"
                            ],
                            "default": "high"
                          },
                          "image_size": {
                            "type": "string",
                            "description": "Target image size preset. Allowed: square_hd | square | portrait_4_3 | portrait_16_9 | landscape_4_3 | landscape_16_9.",
                            "enum": [
                              "square_hd",
                              "square",
                              "portrait_4_3",
                              "portrait_16_9",
                              "landscape_4_3",
                              "landscape_16_9"
                            ]
                          },
                          "output_format": {
                            "type": "string",
                            "description": "Output image format. Allowed: png | jpeg | webp. Default: png.",
                            "enum": [
                              "png",
                              "jpeg",
                              "webp"
                            ],
                            "default": "png"
                          }
                        },
                        "required": [
                          "prompt",
                          "image_urls"
                        ],
                        "additionalProperties": true
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "flux-2-pro-edit"
                        ],
                        "description": "FLUX.2 Pro · Edit"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Editing prompt. Allowed: Max 2000 characters."
                          },
                          "image_urls": {
                            "type": "array",
                            "description": "Source image URLs. Allowed: Up to 2 URLs.",
                            "items": {
                              "type": "string"
                            }
                          },
                          "image_size": {
                            "type": "string",
                            "description": "Target image size preset. Allowed: square_hd | square | portrait_4_3 | portrait_16_9 | landscape_4_3 | landscape_16_9.",
                            "enum": [
                              "square_hd",
                              "square",
                              "portrait_4_3",
                              "portrait_16_9",
                              "landscape_4_3",
                              "landscape_16_9"
                            ]
                          },
                          "safety_tolerance": {
                            "type": "string",
                            "description": "Provider safety tolerance value. Default: 2.",
                            "default": "2"
                          },
                          "enable_safety_checker": {
                            "type": "boolean",
                            "description": "Enable provider safety checker. Default: true.",
                            "default": true
                          },
                          "output_format": {
                            "type": "string",
                            "description": "Output image format. Allowed: png | jpeg | webp. Default: jpeg.",
                            "enum": [
                              "png",
                              "jpeg",
                              "webp"
                            ],
                            "default": "jpeg"
                          }
                        },
                        "required": [
                          "prompt",
                          "image_urls"
                        ],
                        "additionalProperties": true
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "grok-imagine-image-edit"
                        ],
                        "description": "Grok Imagine Image · Edit"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Editing prompt. Allowed: Max 2000 characters."
                          },
                          "image_urls": {
                            "type": "array",
                            "description": "Source image URLs. Allowed: Up to 2 URLs.",
                            "items": {
                              "type": "string"
                            }
                          },
                          "resolution": {
                            "type": "string",
                            "description": "Output resolution preset. Allowed: 1k | 2k | 4k. Default: 1k.",
                            "enum": [
                              "1k",
                              "2k",
                              "4k"
                            ],
                            "default": "1k"
                          },
                          "output_format": {
                            "type": "string",
                            "description": "Output image format. Allowed: png | jpeg | webp. Default: jpeg.",
                            "enum": [
                              "png",
                              "jpeg",
                              "webp"
                            ],
                            "default": "jpeg"
                          }
                        },
                        "required": [
                          "prompt",
                          "image_urls"
                        ],
                        "additionalProperties": true
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "veo3-1-fast-i2v"
                        ],
                        "description": "Veo 3.1 · Fast · Image to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Video prompt. Allowed: Max 2000 characters."
                          },
                          "image_url": {
                            "type": "string",
                            "description": "Source image URL. Allowed: Valid URL."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "description": "Target video aspect ratio. Allowed: 16:9 | 9:16 | auto. Default: 16:9.",
                            "enum": [
                              "16:9",
                              "9:16",
                              "auto"
                            ],
                            "default": "16:9"
                          },
                          "duration": {
                            "type": [
                              "string",
                              "number"
                            ],
                            "description": "Video duration. Allowed: 8 or 8s. Default: 8s.",
                            "default": "8s"
                          },
                          "resolution": {
                            "type": "string",
                            "description": "Output resolution. Allowed: 720p | 1080p. Default: 720p.",
                            "enum": [
                              "720p",
                              "1080p"
                            ],
                            "default": "720p"
                          },
                          "generate_audio": {
                            "type": "boolean",
                            "description": "Generate audio track. Default: true.",
                            "default": true
                          },
                          "safety_tolerance": {
                            "type": "string",
                            "description": "Provider safety tolerance value. Default: 4.",
                            "default": "4"
                          }
                        },
                        "required": [
                          "prompt",
                          "image_url"
                        ],
                        "additionalProperties": true
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "veo3-1-fast-t2v"
                        ],
                        "description": "Veo 3.1 · Fast · Text to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Video prompt. Allowed: Max 2000 characters."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "description": "Target video aspect ratio. Allowed: 16:9 | 9:16. Default: 16:9.",
                            "enum": [
                              "16:9",
                              "9:16"
                            ],
                            "default": "16:9"
                          },
                          "duration": {
                            "type": [
                              "string",
                              "number"
                            ],
                            "description": "Video duration. Allowed: 8 or 8s. Default: 8s.",
                            "default": "8s"
                          },
                          "resolution": {
                            "type": "string",
                            "description": "Output resolution. Allowed: 720p | 1080p. Default: 1080p.",
                            "enum": [
                              "720p",
                              "1080p"
                            ],
                            "default": "1080p"
                          },
                          "generate_audio": {
                            "type": "boolean",
                            "description": "Generate audio track. Default: true.",
                            "default": true
                          },
                          "auto_fix": {
                            "type": "boolean",
                            "description": "Allow provider auto-fix behavior. Default: true.",
                            "default": true
                          },
                          "safety_tolerance": {
                            "type": "string",
                            "description": "Provider safety tolerance value. Default: 4.",
                            "default": "4"
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": true
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "veo3-1-i2v"
                        ],
                        "description": "Veo 3.1 · Image to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Video prompt. Allowed: Max 2000 characters."
                          },
                          "image_url": {
                            "type": "string",
                            "description": "Source image URL. Allowed: Valid URL."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "description": "Target video aspect ratio. Allowed: 16:9 | 9:16 | auto. Default: 16:9.",
                            "enum": [
                              "16:9",
                              "9:16",
                              "auto"
                            ],
                            "default": "16:9"
                          },
                          "duration": {
                            "type": [
                              "string",
                              "number"
                            ],
                            "description": "Video duration. Allowed: 8 or 8s. Default: 8s.",
                            "default": "8s"
                          },
                          "resolution": {
                            "type": "string",
                            "description": "Output resolution. Allowed: 720p | 1080p. Default: 720p.",
                            "enum": [
                              "720p",
                              "1080p"
                            ],
                            "default": "720p"
                          },
                          "generate_audio": {
                            "type": "boolean",
                            "description": "Generate audio track. Default: true.",
                            "default": true
                          },
                          "safety_tolerance": {
                            "type": "string",
                            "description": "Provider safety tolerance value. Default: 4.",
                            "default": "4"
                          }
                        },
                        "required": [
                          "prompt",
                          "image_url"
                        ],
                        "additionalProperties": true
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "veo3-1-t2v"
                        ],
                        "description": "Veo 3.1 · Text to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Video prompt. Allowed: Max 2000 characters."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "description": "Target video aspect ratio. Allowed: 16:9 | 9:16. Default: 16:9.",
                            "enum": [
                              "16:9",
                              "9:16"
                            ],
                            "default": "16:9"
                          },
                          "duration": {
                            "type": [
                              "string",
                              "number"
                            ],
                            "description": "Video duration. Allowed: 8 or 8s. Default: 8s.",
                            "default": "8s"
                          },
                          "resolution": {
                            "type": "string",
                            "description": "Output resolution. Allowed: 720p | 1080p. Default: 1080p.",
                            "enum": [
                              "720p",
                              "1080p"
                            ],
                            "default": "1080p"
                          },
                          "generate_audio": {
                            "type": "boolean",
                            "description": "Generate audio track. Default: true.",
                            "default": true
                          },
                          "auto_fix": {
                            "type": "boolean",
                            "description": "Allow provider auto-fix behavior. Default: true.",
                            "default": true
                          },
                          "safety_tolerance": {
                            "type": "string",
                            "description": "Provider safety tolerance value. Default: 4.",
                            "default": "4"
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": true
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "veo3-1-lite"
                        ],
                        "description": "Veo 3.1 · Lite · Text to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Video prompt. Allowed: Max 2000 characters."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "description": "Target video aspect ratio. Allowed: 16:9 | 9:16. Default: 16:9.",
                            "enum": [
                              "16:9",
                              "9:16"
                            ],
                            "default": "16:9"
                          },
                          "duration": {
                            "type": [
                              "string",
                              "number"
                            ],
                            "description": "Video duration. Allowed: 8 or 8s. Default: 8s.",
                            "default": "8s"
                          },
                          "resolution": {
                            "type": "string",
                            "description": "Output resolution. Allowed: 720p | 1080p. Default: 1080p.",
                            "enum": [
                              "720p",
                              "1080p"
                            ],
                            "default": "1080p"
                          },
                          "auto_fix": {
                            "type": "boolean",
                            "description": "Allow provider auto-fix behavior. Default: true.",
                            "default": true
                          },
                          "safety_tolerance": {
                            "type": "string",
                            "description": "Provider safety tolerance value. Default: 6.",
                            "default": "6"
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": true
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "veo3-1-lite-i2v"
                        ],
                        "description": "Veo 3.1 · Lite · Image to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Video prompt. Allowed: Max 2000 characters."
                          },
                          "image_url": {
                            "type": "string",
                            "description": "Source image URL. Allowed: Valid URL."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "description": "Target video aspect ratio. Allowed: 16:9 | 9:16. Default: 9:16.",
                            "enum": [
                              "16:9",
                              "9:16"
                            ],
                            "default": "9:16"
                          },
                          "duration": {
                            "type": [
                              "string",
                              "number"
                            ],
                            "description": "Video duration. Allowed: 8 or 8s. Default: 8s.",
                            "default": "8s"
                          },
                          "resolution": {
                            "type": "string",
                            "description": "Output resolution. Allowed: 720p | 1080p. Default: 720p.",
                            "enum": [
                              "720p",
                              "1080p"
                            ],
                            "default": "720p"
                          },
                          "safety_tolerance": {
                            "type": "string",
                            "description": "Provider safety tolerance value. Default: 6.",
                            "default": "6"
                          }
                        },
                        "required": [
                          "prompt",
                          "image_url"
                        ],
                        "additionalProperties": true
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "seedance-2-0-i2v"
                        ],
                        "description": "Seedance 2.0 · Image to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Video prompt. Allowed: Up to 15,000 Unicode characters."
                          },
                          "image_url": {
                            "type": "string",
                            "description": "Source image URL. Allowed: Valid URL."
                          },
                          "duration": {
                            "type": [
                              "string",
                              "number"
                            ],
                            "description": "Video duration. Allowed: Integer 4–15, or -1 for Auto. Default: 10.",
                            "default": "10"
                          },
                          "resolution": {
                            "type": "string",
                            "description": "Output resolution. Allowed: 480p | 720p | 1080p | 4k. Default: 720p.",
                            "enum": [
                              "480p",
                              "720p",
                              "1080p",
                              "4k"
                            ],
                            "default": "720p"
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "description": "Target video aspect ratio. Allowed: 9:16 | 16:9 | 4:3 | 3:4 | 1:1 | 21:9 | adaptive. Default: 9:16.",
                            "enum": [
                              "9:16",
                              "16:9",
                              "4:3",
                              "3:4",
                              "1:1",
                              "21:9",
                              "adaptive"
                            ],
                            "default": "9:16"
                          },
                          "generate_audio": {
                            "type": "boolean",
                            "description": "Generate audio track. Default: true.",
                            "default": true
                          },
                          "end_image_url": {
                            "type": "string",
                            "description": "Additional reference image for image-to-video. This route does not guarantee last-frame control. Allowed: Valid URL."
                          }
                        },
                        "required": [
                          "prompt",
                          "image_url"
                        ],
                        "additionalProperties": true
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "seedance-2-0-t2v"
                        ],
                        "description": "Seedance 2.0 · Text to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Video prompt. Allowed: Up to 15,000 Unicode characters."
                          },
                          "duration": {
                            "type": [
                              "string",
                              "number"
                            ],
                            "description": "Video duration. Allowed: Integer 4–15, or -1 for Auto. Default: 10.",
                            "default": "10"
                          },
                          "resolution": {
                            "type": "string",
                            "description": "Output resolution. Allowed: 480p | 720p | 1080p | 4k. Default: 720p.",
                            "enum": [
                              "480p",
                              "720p",
                              "1080p",
                              "4k"
                            ],
                            "default": "720p"
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "description": "Target video aspect ratio. Allowed: 9:16 | 16:9 | 4:3 | 3:4 | 1:1 | 21:9 | adaptive. Default: 9:16.",
                            "enum": [
                              "9:16",
                              "16:9",
                              "4:3",
                              "3:4",
                              "1:1",
                              "21:9",
                              "adaptive"
                            ],
                            "default": "9:16"
                          },
                          "generate_audio": {
                            "type": "boolean",
                            "description": "Generate audio track. Default: true.",
                            "default": true
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": true
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "seedance-2-0-fast-i2v"
                        ],
                        "description": "Seedance 2.0 · Fast · Image to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Video prompt. Allowed: Up to 15,000 Unicode characters."
                          },
                          "image_url": {
                            "type": "string",
                            "description": "Source image URL. Allowed: Valid URL."
                          },
                          "duration": {
                            "type": [
                              "string",
                              "number"
                            ],
                            "description": "Video duration. Allowed: Integer 4–15, or -1 for Auto. Default: 10.",
                            "default": "10"
                          },
                          "resolution": {
                            "type": "string",
                            "description": "Output resolution. Allowed: 480p | 720p. Default: 720p.",
                            "enum": [
                              "480p",
                              "720p"
                            ],
                            "default": "720p"
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "description": "Target video aspect ratio. Allowed: 9:16 | 16:9 | 4:3 | 3:4 | 1:1 | 21:9 | adaptive. Default: 9:16.",
                            "enum": [
                              "9:16",
                              "16:9",
                              "4:3",
                              "3:4",
                              "1:1",
                              "21:9",
                              "adaptive"
                            ],
                            "default": "9:16"
                          },
                          "generate_audio": {
                            "type": "boolean",
                            "description": "Generate audio track. Default: true.",
                            "default": true
                          },
                          "end_image_url": {
                            "type": "string",
                            "description": "Additional reference image for image-to-video. This route does not guarantee last-frame control. Allowed: Valid URL."
                          }
                        },
                        "required": [
                          "prompt",
                          "image_url"
                        ],
                        "additionalProperties": true
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "seedance-2-0-fast-t2v"
                        ],
                        "description": "Seedance 2.0 · Fast · Text to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Video prompt. Allowed: Up to 15,000 Unicode characters."
                          },
                          "duration": {
                            "type": [
                              "string",
                              "number"
                            ],
                            "description": "Video duration. Allowed: Integer 4–15, or -1 for Auto. Default: 10.",
                            "default": "10"
                          },
                          "resolution": {
                            "type": "string",
                            "description": "Output resolution. Allowed: 480p | 720p. Default: 720p.",
                            "enum": [
                              "480p",
                              "720p"
                            ],
                            "default": "720p"
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "description": "Target video aspect ratio. Allowed: 9:16 | 16:9 | 4:3 | 3:4 | 1:1 | 21:9 | adaptive. Default: 9:16.",
                            "enum": [
                              "9:16",
                              "16:9",
                              "4:3",
                              "3:4",
                              "1:1",
                              "21:9",
                              "adaptive"
                            ],
                            "default": "9:16"
                          },
                          "generate_audio": {
                            "type": "boolean",
                            "description": "Generate audio track. Default: true.",
                            "default": true
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": true
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": true
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "seedream-v5.0"
                        ],
                        "description": "Seedream 5.0 Pro"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000,
                            "description": "Describe the output you want to generate."
                          },
                          "size": {
                            "type": "string",
                            "pattern": "^(1K|2K|4K|[1-9][0-9]{2,3}x[1-9][0-9]{2,3})$",
                            "default": "2K",
                            "description": "1K, 2K, 4K, or widthxheight. Custom sides must be 512–4096 pixels."
                          },
                          "num_images": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4,
                            "default": 1,
                            "description": "Number of output images; each image consumes credits."
                          },
                          "output_format": {
                            "type": "string",
                            "enum": [
                              "png",
                              "jpeg"
                            ],
                            "default": "png"
                          },
                          "watermark": {
                            "type": "boolean",
                            "default": false
                          },
                          "guidance_scale": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 10
                          },
                          "seed": {
                            "type": "integer"
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "seedream-v5.0-edit"
                        ],
                        "description": "Seedream 5.0 Pro · Edit"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000,
                            "description": "Describe the output you want to generate."
                          },
                          "size": {
                            "type": "string",
                            "pattern": "^(1K|2K|4K|[1-9][0-9]{2,3}x[1-9][0-9]{2,3})$",
                            "default": "2K",
                            "description": "1K, 2K, 4K, or widthxheight. Custom sides must be 512–4096 pixels."
                          },
                          "num_images": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4,
                            "default": 1,
                            "description": "Number of output images; each image consumes credits."
                          },
                          "output_format": {
                            "type": "string",
                            "enum": [
                              "png",
                              "jpeg"
                            ],
                            "default": "png"
                          },
                          "watermark": {
                            "type": "boolean",
                            "default": false
                          },
                          "guidance_scale": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 10
                          },
                          "seed": {
                            "type": "integer"
                          },
                          "image_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "minItems": 1,
                            "maxItems": 10
                          }
                        },
                        "required": [
                          "prompt",
                          "image_urls"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "gpt-image-1.5"
                        ],
                        "description": "GPT Image 1.5"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000,
                            "description": "Describe the output you want to generate."
                          },
                          "size": {
                            "type": "string",
                            "default": "1024x1024",
                            "description": "Output dimensions; see the size rules above."
                          },
                          "quality": {
                            "type": "string",
                            "enum": [
                              "low",
                              "medium",
                              "high",
                              "auto"
                            ],
                            "default": "high"
                          },
                          "n": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4,
                            "default": 1,
                            "description": "Number of output images; each image consumes credits."
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "gpt-image-1.5-edit"
                        ],
                        "description": "GPT Image 1.5 · Edit"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000,
                            "description": "Describe the output you want to generate."
                          },
                          "size": {
                            "type": "string",
                            "default": "1024x1024",
                            "description": "Output dimensions; see the size rules above."
                          },
                          "image_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "minItems": 1,
                            "maxItems": 2
                          },
                          "mask_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          }
                        },
                        "required": [
                          "prompt",
                          "image_urls"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "gpt-image-2.5-flare"
                        ],
                        "description": "GPT Image 2.5 Flare"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000,
                            "description": "Describe the output you want to generate."
                          },
                          "size": {
                            "type": "string",
                            "default": "auto",
                            "description": "Output dimensions; see the size rules above."
                          },
                          "quality": {
                            "type": "string",
                            "enum": [
                              "low",
                              "medium",
                              "high",
                              "auto",
                              "xhigh",
                              "max"
                            ],
                            "default": "auto"
                          },
                          "n": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4,
                            "default": 1,
                            "description": "Number of output images; each image consumes credits."
                          },
                          "background": {
                            "type": "string",
                            "enum": [
                              "auto",
                              "opaque",
                              "transparent"
                            ]
                          },
                          "output_format": {
                            "type": "string",
                            "enum": [
                              "png",
                              "jpeg",
                              "webp"
                            ],
                            "default": "png"
                          },
                          "output_compression": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 100
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "gpt-image-2.5-flare-edit"
                        ],
                        "description": "GPT Image 2.5 Flare · Edit"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000,
                            "description": "Describe the output you want to generate."
                          },
                          "size": {
                            "type": "string",
                            "default": "auto",
                            "description": "Output dimensions; see the size rules above."
                          },
                          "quality": {
                            "type": "string",
                            "enum": [
                              "low",
                              "medium",
                              "high",
                              "auto",
                              "xhigh",
                              "max"
                            ],
                            "default": "auto"
                          },
                          "image_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "minItems": 1,
                            "maxItems": 2
                          },
                          "mask_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "background": {
                            "type": "string",
                            "enum": [
                              "auto",
                              "opaque",
                              "transparent"
                            ]
                          },
                          "output_format": {
                            "type": "string",
                            "enum": [
                              "png",
                              "jpeg",
                              "webp"
                            ],
                            "default": "png"
                          },
                          "output_compression": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 100
                          }
                        },
                        "required": [
                          "prompt",
                          "image_urls"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "gpt-image-2.5-sunburst"
                        ],
                        "description": "GPT Image 2.5 Sunburst"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000,
                            "description": "Describe the output you want to generate."
                          },
                          "size": {
                            "type": "string",
                            "default": "auto",
                            "description": "Output dimensions; see the size rules above."
                          },
                          "quality": {
                            "type": "string",
                            "enum": [
                              "low",
                              "medium",
                              "high",
                              "auto",
                              "xhigh",
                              "max"
                            ],
                            "default": "auto"
                          },
                          "n": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4,
                            "default": 1,
                            "description": "Number of output images; each image consumes credits."
                          },
                          "background": {
                            "type": "string",
                            "enum": [
                              "auto",
                              "opaque",
                              "transparent"
                            ]
                          },
                          "output_format": {
                            "type": "string",
                            "enum": [
                              "png",
                              "jpeg",
                              "webp"
                            ],
                            "default": "png"
                          },
                          "output_compression": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 100
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "gpt-image-2.5-sunburst-edit"
                        ],
                        "description": "GPT Image 2.5 Sunburst · Edit"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000,
                            "description": "Describe the output you want to generate."
                          },
                          "size": {
                            "type": "string",
                            "default": "auto",
                            "description": "Output dimensions; see the size rules above."
                          },
                          "quality": {
                            "type": "string",
                            "enum": [
                              "low",
                              "medium",
                              "high",
                              "auto",
                              "xhigh",
                              "max"
                            ],
                            "default": "auto"
                          },
                          "image_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "minItems": 1,
                            "maxItems": 2
                          },
                          "mask_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "background": {
                            "type": "string",
                            "enum": [
                              "auto",
                              "opaque",
                              "transparent"
                            ]
                          },
                          "output_format": {
                            "type": "string",
                            "enum": [
                              "png",
                              "jpeg",
                              "webp"
                            ],
                            "default": "png"
                          },
                          "output_compression": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 100
                          }
                        },
                        "required": [
                          "prompt",
                          "image_urls"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "banana"
                        ],
                        "description": "Banana"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "num_images": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4,
                            "default": 1,
                            "description": "Number of output images; each image consumes credits."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "enum": [
                              "21:9",
                              "16:9",
                              "3:2",
                              "4:3",
                              "5:4",
                              "1:1",
                              "4:5",
                              "3:4",
                              "2:3",
                              "9:16"
                            ],
                            "default": "1:1"
                          },
                          "output_format": {
                            "type": "string",
                            "enum": [
                              "png",
                              "jpeg",
                              "webp"
                            ],
                            "default": "png"
                          },
                          "resolution": {
                            "type": "string",
                            "enum": [
                              "1K",
                              "2K",
                              "4K"
                            ],
                            "default": "1K"
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "banana-edit"
                        ],
                        "description": "Banana · Edit"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "num_images": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4,
                            "default": 1,
                            "description": "Number of output images; each image consumes credits."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "enum": [
                              "21:9",
                              "16:9",
                              "3:2",
                              "4:3",
                              "5:4",
                              "1:1",
                              "4:5",
                              "3:4",
                              "2:3",
                              "9:16"
                            ],
                            "default": "1:1"
                          },
                          "output_format": {
                            "type": "string",
                            "enum": [
                              "png",
                              "jpeg",
                              "webp"
                            ],
                            "default": "png"
                          },
                          "resolution": {
                            "type": "string",
                            "enum": [
                              "1K",
                              "2K",
                              "4K"
                            ],
                            "default": "1K"
                          },
                          "image_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "minItems": 1,
                            "maxItems": 2
                          }
                        },
                        "required": [
                          "prompt",
                          "image_urls"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "banana-2"
                        ],
                        "description": "Nano Banana 2"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "num_images": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4,
                            "default": 1,
                            "description": "Number of output images; each image consumes credits."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "enum": [
                              "21:9",
                              "16:9",
                              "3:2",
                              "4:3",
                              "5:4",
                              "1:1",
                              "4:5",
                              "3:4",
                              "2:3",
                              "9:16"
                            ],
                            "default": "1:1"
                          },
                          "output_format": {
                            "type": "string",
                            "enum": [
                              "png",
                              "jpeg",
                              "webp"
                            ],
                            "default": "png"
                          },
                          "resolution": {
                            "type": "string",
                            "enum": [
                              "1K",
                              "2K",
                              "4K"
                            ],
                            "default": "1K"
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "banana-2-edit"
                        ],
                        "description": "Nano Banana 2 · Edit"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "num_images": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4,
                            "default": 1,
                            "description": "Number of output images; each image consumes credits."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "enum": [
                              "21:9",
                              "16:9",
                              "3:2",
                              "4:3",
                              "5:4",
                              "1:1",
                              "4:5",
                              "3:4",
                              "2:3",
                              "9:16"
                            ],
                            "default": "1:1"
                          },
                          "output_format": {
                            "type": "string",
                            "enum": [
                              "png",
                              "jpeg",
                              "webp"
                            ],
                            "default": "png"
                          },
                          "resolution": {
                            "type": "string",
                            "enum": [
                              "1K",
                              "2K",
                              "4K"
                            ],
                            "default": "1K"
                          },
                          "image_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "minItems": 1,
                            "maxItems": 2
                          }
                        },
                        "required": [
                          "prompt",
                          "image_urls"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "flux-2"
                        ],
                        "description": "FLUX 2"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "image_size": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "square_hd",
                                  "square",
                                  "portrait_4_3",
                                  "portrait_16_9",
                                  "landscape_4_3",
                                  "landscape_16_9"
                                ]
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "width": {
                                    "type": "integer",
                                    "minimum": 100,
                                    "maximum": 1024
                                  },
                                  "height": {
                                    "type": "integer",
                                    "minimum": 100,
                                    "maximum": 1024
                                  }
                                },
                                "required": [
                                  "width",
                                  "height"
                                ],
                                "additionalProperties": false
                              }
                            ],
                            "default": "square_hd",
                            "description": "A size preset or an object with width and height in pixels."
                          },
                          "output_format": {
                            "type": "string",
                            "enum": [
                              "png",
                              "jpeg"
                            ],
                            "default": "png"
                          },
                          "num_images": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4,
                            "default": 1,
                            "description": "Number of output images; each image consumes credits."
                          },
                          "enable_safety_checker": {
                            "type": "boolean",
                            "default": true
                          },
                          "guidance_scale": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 20,
                            "default": 2.5
                          },
                          "num_inference_steps": {
                            "type": "integer",
                            "minimum": 4,
                            "maximum": 50,
                            "default": 28
                          },
                          "seed": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 8000000
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "flux-2-edit"
                        ],
                        "description": "FLUX 2 · Edit"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "image_size": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "square_hd",
                                  "square",
                                  "portrait_4_3",
                                  "portrait_16_9",
                                  "landscape_4_3",
                                  "landscape_16_9"
                                ]
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "width": {
                                    "type": "integer",
                                    "minimum": 100,
                                    "maximum": 1024
                                  },
                                  "height": {
                                    "type": "integer",
                                    "minimum": 100,
                                    "maximum": 1024
                                  }
                                },
                                "required": [
                                  "width",
                                  "height"
                                ],
                                "additionalProperties": false
                              }
                            ],
                            "default": "square_hd",
                            "description": "A size preset or an object with width and height in pixels."
                          },
                          "output_format": {
                            "type": "string",
                            "enum": [
                              "png",
                              "jpeg"
                            ],
                            "default": "png"
                          },
                          "enable_safety_checker": {
                            "type": "boolean",
                            "default": true
                          },
                          "guidance_scale": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 20,
                            "default": 2.5
                          },
                          "num_inference_steps": {
                            "type": "integer",
                            "minimum": 4,
                            "maximum": 50,
                            "default": 28
                          },
                          "seed": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 8000000
                          },
                          "image_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "minItems": 1,
                            "maxItems": 2
                          }
                        },
                        "required": [
                          "prompt",
                          "image_urls"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "seedream-v4.5"
                        ],
                        "description": "Seedream 4.5"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "image_size": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "square_hd",
                                  "square",
                                  "portrait_4_3",
                                  "portrait_16_9",
                                  "landscape_4_3",
                                  "landscape_16_9",
                                  "auto_2K"
                                ]
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "width": {
                                    "type": "integer",
                                    "minimum": 100,
                                    "maximum": 1024
                                  },
                                  "height": {
                                    "type": "integer",
                                    "minimum": 100,
                                    "maximum": 1024
                                  }
                                },
                                "required": [
                                  "width",
                                  "height"
                                ],
                                "additionalProperties": false
                              }
                            ],
                            "default": "auto_2K"
                          },
                          "num_images": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4,
                            "default": 1,
                            "description": "Number of output images; each image consumes credits."
                          },
                          "max_images": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4,
                            "default": 1,
                            "description": "Number of output images; each image consumes credits."
                          },
                          "enable_safety_checker": {
                            "type": "boolean",
                            "default": true
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "seedream-v4.5-edit"
                        ],
                        "description": "Seedream 4.5 · Edit"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "image_size": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "square_hd",
                                  "square",
                                  "portrait_4_3",
                                  "portrait_16_9",
                                  "landscape_4_3",
                                  "landscape_16_9",
                                  "auto_2K"
                                ]
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "width": {
                                    "type": "integer",
                                    "minimum": 100,
                                    "maximum": 1024
                                  },
                                  "height": {
                                    "type": "integer",
                                    "minimum": 100,
                                    "maximum": 1024
                                  }
                                },
                                "required": [
                                  "width",
                                  "height"
                                ],
                                "additionalProperties": false
                              }
                            ],
                            "default": "auto_2K"
                          },
                          "num_images": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4,
                            "default": 1,
                            "description": "Number of output images; each image consumes credits."
                          },
                          "max_images": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4,
                            "default": 1,
                            "description": "Number of output images; each image consumes credits."
                          },
                          "enable_safety_checker": {
                            "type": "boolean",
                            "default": true
                          },
                          "image_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "minItems": 1,
                            "maxItems": 2
                          }
                        },
                        "required": [
                          "prompt",
                          "image_urls"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "wan-v2.6"
                        ],
                        "description": "WAN 2.6 Image"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "image_size": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "square_hd",
                                  "square",
                                  "portrait_4_3",
                                  "portrait_16_9",
                                  "landscape_4_3",
                                  "landscape_16_9"
                                ]
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "width": {
                                    "type": "integer",
                                    "minimum": 100,
                                    "maximum": 1024
                                  },
                                  "height": {
                                    "type": "integer",
                                    "minimum": 100,
                                    "maximum": 1024
                                  }
                                },
                                "required": [
                                  "width",
                                  "height"
                                ],
                                "additionalProperties": false
                              }
                            ],
                            "default": "square_hd",
                            "description": "A size preset or an object with width and height in pixels."
                          },
                          "max_images": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4,
                            "default": 1,
                            "description": "Number of output images; each image consumes credits."
                          },
                          "enable_safety_checker": {
                            "type": "boolean",
                            "default": true
                          },
                          "negative_prompt": {
                            "type": "string",
                            "maxLength": 1000
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "wan-v2.6-edit"
                        ],
                        "description": "WAN 2.6 Image · Edit"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "image_size": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "square_hd",
                                  "square",
                                  "portrait_4_3",
                                  "portrait_16_9",
                                  "landscape_4_3",
                                  "landscape_16_9"
                                ]
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "width": {
                                    "type": "integer",
                                    "minimum": 100,
                                    "maximum": 1024
                                  },
                                  "height": {
                                    "type": "integer",
                                    "minimum": 100,
                                    "maximum": 1024
                                  }
                                },
                                "required": [
                                  "width",
                                  "height"
                                ],
                                "additionalProperties": false
                              }
                            ],
                            "default": "square_hd",
                            "description": "A size preset or an object with width and height in pixels."
                          },
                          "max_images": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4,
                            "default": 1,
                            "description": "Number of output images; each image consumes credits."
                          },
                          "enable_safety_checker": {
                            "type": "boolean",
                            "default": true
                          },
                          "negative_prompt": {
                            "type": "string",
                            "maxLength": 1000
                          },
                          "enable_prompt_expansion": {
                            "type": "boolean",
                            "default": true
                          },
                          "image_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "minItems": 1,
                            "maxItems": 2
                          }
                        },
                        "required": [
                          "prompt",
                          "image_urls"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "recraft-v3"
                        ],
                        "description": "Recraft v3"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "image_size": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "square_hd",
                                  "square",
                                  "portrait_4_3",
                                  "portrait_16_9",
                                  "landscape_4_3",
                                  "landscape_16_9"
                                ]
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "width": {
                                    "type": "integer",
                                    "minimum": 100,
                                    "maximum": 1024
                                  },
                                  "height": {
                                    "type": "integer",
                                    "minimum": 100,
                                    "maximum": 1024
                                  }
                                },
                                "required": [
                                  "width",
                                  "height"
                                ],
                                "additionalProperties": false
                              }
                            ],
                            "default": "square_hd",
                            "description": "A size preset or an object with width and height in pixels."
                          },
                          "style": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100,
                            "default": "any"
                          },
                          "colors": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "r": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 255
                                },
                                "g": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 255
                                },
                                "b": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 255
                                }
                              },
                              "required": [
                                "r",
                                "g",
                                "b"
                              ],
                              "additionalProperties": false
                            },
                            "maxItems": 20,
                            "description": "Optional palette of RGB colors."
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "recraft-v3-edit"
                        ],
                        "description": "Recraft v3 · Edit"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "image_size": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "square_hd",
                                  "square",
                                  "portrait_4_3",
                                  "portrait_16_9",
                                  "landscape_4_3",
                                  "landscape_16_9"
                                ]
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "width": {
                                    "type": "integer",
                                    "minimum": 100,
                                    "maximum": 1024
                                  },
                                  "height": {
                                    "type": "integer",
                                    "minimum": 100,
                                    "maximum": 1024
                                  }
                                },
                                "required": [
                                  "width",
                                  "height"
                                ],
                                "additionalProperties": false
                              }
                            ],
                            "default": "square_hd",
                            "description": "A size preset or an object with width and height in pixels."
                          },
                          "style": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100,
                            "default": "any"
                          },
                          "colors": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "r": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 255
                                },
                                "g": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 255
                                },
                                "b": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 255
                                }
                              },
                              "required": [
                                "r",
                                "g",
                                "b"
                              ],
                              "additionalProperties": false
                            },
                            "maxItems": 20,
                            "description": "Optional palette of RGB colors."
                          },
                          "strength": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1,
                            "default": 0.2
                          },
                          "negative_prompt": {
                            "type": "string",
                            "maxLength": 1000
                          },
                          "image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          }
                        },
                        "required": [
                          "prompt",
                          "image_url"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "imagen4-preview"
                        ],
                        "description": "Imagen 4 Preview"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "num_images": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4,
                            "default": 1,
                            "description": "Number of output images; each image consumes credits."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "enum": [
                              "1:1",
                              "16:9",
                              "9:16",
                              "4:3",
                              "3:4"
                            ],
                            "default": "1:1"
                          },
                          "output_format": {
                            "type": "string",
                            "enum": [
                              "png",
                              "jpeg",
                              "webp"
                            ],
                            "default": "png"
                          },
                          "resolution": {
                            "type": "string",
                            "enum": [
                              "1K",
                              "2K"
                            ],
                            "default": "1K"
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "imagen4-preview-fast"
                        ],
                        "description": "Imagen 4 Fast"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "num_images": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4,
                            "default": 1,
                            "description": "Number of output images; each image consumes credits."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "enum": [
                              "1:1",
                              "16:9",
                              "9:16",
                              "4:3",
                              "3:4"
                            ],
                            "default": "1:1"
                          },
                          "output_format": {
                            "type": "string",
                            "enum": [
                              "png",
                              "jpeg",
                              "webp"
                            ],
                            "default": "png"
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "imagen4-preview-ultra"
                        ],
                        "description": "Imagen 4 Ultra"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "num_images": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 4,
                            "default": 1,
                            "description": "Number of output images; each image consumes credits."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "enum": [
                              "1:1",
                              "16:9",
                              "9:16",
                              "4:3",
                              "3:4"
                            ],
                            "default": "1:1"
                          },
                          "output_format": {
                            "type": "string",
                            "enum": [
                              "png",
                              "jpeg",
                              "webp"
                            ],
                            "default": "png"
                          },
                          "resolution": {
                            "type": "string",
                            "enum": [
                              "1K",
                              "2K"
                            ],
                            "default": "1K"
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "kling-2-5-turbo"
                        ],
                        "description": "Kling 2.5 Turbo"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "enum": [
                              "9:16",
                              "16:9",
                              "1:1"
                            ],
                            "default": "9:16"
                          },
                          "duration": {
                            "type": "number",
                            "enum": [
                              10
                            ],
                            "default": 10
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "kling-2-6-pro"
                        ],
                        "description": "Kling 2.6 Pro"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "enum": [
                              "9:16",
                              "16:9",
                              "1:1"
                            ],
                            "default": "9:16"
                          },
                          "duration": {
                            "type": "number",
                            "enum": [
                              10
                            ],
                            "default": 10
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "kling-3-0"
                        ],
                        "description": "Kling 3.0"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "end_image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "enum": [
                              "9:16",
                              "16:9",
                              "1:1"
                            ],
                            "default": "9:16"
                          },
                          "duration": {
                            "anyOf": [
                              {
                                "type": "number",
                                "enum": [
                                  10
                                ]
                              },
                              {
                                "type": "number",
                                "enum": [
                                  15
                                ]
                              }
                            ],
                            "default": 10
                          }
                        },
                        "required": [
                          "prompt",
                          "image_url"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "kling-3-turbo-pro"
                        ],
                        "description": "Kling 3 Turbo Pro"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "enum": [
                              "9:16",
                              "16:9",
                              "1:1"
                            ],
                            "default": "9:16"
                          },
                          "duration": {
                            "anyOf": [
                              {
                                "type": "number",
                                "enum": [
                                  10
                                ]
                              },
                              {
                                "type": "number",
                                "enum": [
                                  15
                                ]
                              }
                            ],
                            "default": 10
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "kling-3-turbo-standard"
                        ],
                        "description": "Kling 3 Turbo Standard"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "enum": [
                              "9:16",
                              "16:9",
                              "1:1"
                            ],
                            "default": "9:16"
                          },
                          "duration": {
                            "anyOf": [
                              {
                                "type": "number",
                                "enum": [
                                  10
                                ]
                              },
                              {
                                "type": "number",
                                "enum": [
                                  15
                                ]
                              }
                            ],
                            "default": 10
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "wan-2-6-video"
                        ],
                        "description": "WAN 2.6 Video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "enum": [
                              "9:16",
                              "16:9",
                              "1:1",
                              "4:3",
                              "3:4"
                            ],
                            "default": "9:16"
                          },
                          "duration": {
                            "type": "number",
                            "enum": [
                              15
                            ],
                            "default": 15
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "seedance-1-5-pro"
                        ],
                        "description": "Seedance 1.5 Pro"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "enum": [
                              "9:16",
                              "16:9",
                              "1:1",
                              "21:9",
                              "4:3",
                              "3:4"
                            ],
                            "default": "9:16"
                          },
                          "duration": {
                            "type": "number",
                            "enum": [
                              12
                            ],
                            "default": 12
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "pixverse-5-5"
                        ],
                        "description": "Pixverse 5.5"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "enum": [
                              "9:16",
                              "16:9",
                              "1:1"
                            ],
                            "default": "9:16"
                          },
                          "duration": {
                            "type": "number",
                            "enum": [
                              10
                            ],
                            "default": 10
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "kling-broll"
                        ],
                        "description": "Kling · B-roll"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          }
                        },
                        "required": [
                          "prompt",
                          "image_url"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "wan-3-0-t2v"
                        ],
                        "description": "WAN 3.0 · Text to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "resolution": {
                            "type": "string",
                            "enum": [
                              "480p",
                              "720p",
                              "1080p"
                            ],
                            "default": "1080p"
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "enum": [
                              "adaptive",
                              "16:9",
                              "4:3",
                              "1:1",
                              "3:4",
                              "9:16"
                            ],
                            "default": "adaptive"
                          },
                          "duration": {
                            "type": "integer",
                            "minimum": 2,
                            "maximum": 30,
                            "default": 5
                          },
                          "audio": {
                            "type": "boolean",
                            "default": true
                          },
                          "enable_prompt_expansion": {
                            "type": "boolean",
                            "default": true
                          },
                          "enable_thinking": {
                            "type": "boolean",
                            "default": false
                          },
                          "enable_safety_checker": {
                            "type": "boolean",
                            "default": true
                          },
                          "seed": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 2147483647
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "start_image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "end_image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "reference_image_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "maxItems": 10,
                            "default": []
                          },
                          "reference_video_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "maxItems": 5,
                            "default": []
                          },
                          "reference_audio_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "maxItems": 5,
                            "default": []
                          },
                          "file_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "web_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          }
                        },
                        "required": [],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "wan-3-0-i2v"
                        ],
                        "description": "WAN 3.0 · Image to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "resolution": {
                            "type": "string",
                            "enum": [
                              "480p",
                              "720p",
                              "1080p"
                            ],
                            "default": "1080p"
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "enum": [
                              "adaptive",
                              "16:9",
                              "4:3",
                              "1:1",
                              "3:4",
                              "9:16"
                            ],
                            "default": "adaptive"
                          },
                          "duration": {
                            "type": "integer",
                            "minimum": 2,
                            "maximum": 30,
                            "default": 5
                          },
                          "audio": {
                            "type": "boolean",
                            "default": true
                          },
                          "enable_prompt_expansion": {
                            "type": "boolean",
                            "default": true
                          },
                          "enable_thinking": {
                            "type": "boolean",
                            "default": false
                          },
                          "enable_safety_checker": {
                            "type": "boolean",
                            "default": true
                          },
                          "seed": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 2147483647
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "start_image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "end_image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "reference_image_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "maxItems": 10,
                            "default": []
                          },
                          "reference_video_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "maxItems": 5,
                            "default": []
                          },
                          "reference_audio_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "maxItems": 5,
                            "default": []
                          },
                          "file_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "web_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          }
                        },
                        "required": [
                          "start_image_url"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "wan-3-0-r2v"
                        ],
                        "description": "WAN 3.0 · Reference to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "resolution": {
                            "type": "string",
                            "enum": [
                              "480p",
                              "720p",
                              "1080p"
                            ],
                            "default": "1080p"
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "enum": [
                              "adaptive",
                              "16:9",
                              "4:3",
                              "1:1",
                              "3:4",
                              "9:16"
                            ],
                            "default": "adaptive"
                          },
                          "duration": {
                            "type": "integer",
                            "minimum": 2,
                            "maximum": 30,
                            "default": 5
                          },
                          "audio": {
                            "type": "boolean",
                            "default": true
                          },
                          "enable_prompt_expansion": {
                            "type": "boolean",
                            "default": true
                          },
                          "enable_thinking": {
                            "type": "boolean",
                            "default": false
                          },
                          "enable_safety_checker": {
                            "type": "boolean",
                            "default": true
                          },
                          "seed": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 2147483647
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "start_image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "end_image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "reference_image_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "maxItems": 10,
                            "default": []
                          },
                          "reference_video_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "maxItems": 5,
                            "default": []
                          },
                          "reference_audio_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "maxItems": 5,
                            "default": []
                          },
                          "file_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "web_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          }
                        },
                        "required": [],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "grok-video-t2v"
                        ],
                        "description": "Grok Video · Text to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000,
                            "description": "Describe the output you want to generate."
                          },
                          "duration": {
                            "anyOf": [
                              {
                                "type": "number",
                                "enum": [
                                  10
                                ]
                              },
                              {
                                "type": "number",
                                "enum": [
                                  15
                                ]
                              }
                            ],
                            "default": 10
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "enum": [
                              "9:16",
                              "16:9"
                            ],
                            "default": "9:16"
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "grok-video-i2v"
                        ],
                        "description": "Grok Video · Image to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000,
                            "description": "Describe the output you want to generate."
                          },
                          "image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "duration": {
                            "anyOf": [
                              {
                                "type": "number",
                                "enum": [
                                  10
                                ]
                              },
                              {
                                "type": "number",
                                "enum": [
                                  15
                                ]
                              }
                            ],
                            "default": 10
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "enum": [
                              "9:16",
                              "16:9"
                            ],
                            "default": "9:16"
                          }
                        },
                        "required": [
                          "image_url"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "kling-3-motion-control-standard"
                        ],
                        "description": "Kling 3.0 Motion Control · Standard"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "video_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          }
                        },
                        "required": [
                          "image_url",
                          "video_url"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "kling-3-motion-control-pro"
                        ],
                        "description": "Kling 3.0 Motion Control · Pro"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "video_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          }
                        },
                        "required": [
                          "image_url",
                          "video_url"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "wan-animate"
                        ],
                        "description": "WAN Animate"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "video_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          }
                        },
                        "required": [
                          "image_url",
                          "video_url"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "minimax-h3-max-t2v"
                        ],
                        "description": "MiniMax H3 Max · Text to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "resolution": {
                            "type": "string",
                            "enum": [
                              "480P",
                              "768P",
                              "1080P"
                            ],
                            "default": "1080P"
                          },
                          "duration": {
                            "anyOf": [
                              {
                                "type": "number",
                                "enum": [
                                  10
                                ]
                              },
                              {
                                "type": "number",
                                "enum": [
                                  15
                                ]
                              }
                            ],
                            "default": 10
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "enum": [
                              "21:9",
                              "16:9",
                              "4:3",
                              "1:1",
                              "3:4",
                              "9:16"
                            ],
                            "default": "9:16"
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "minimax-h3-max-i2v"
                        ],
                        "description": "MiniMax H3 Max · Image to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "resolution": {
                            "type": "string",
                            "enum": [
                              "480P",
                              "768P",
                              "1080P"
                            ],
                            "default": "1080P"
                          },
                          "duration": {
                            "anyOf": [
                              {
                                "type": "number",
                                "enum": [
                                  10
                                ]
                              },
                              {
                                "type": "number",
                                "enum": [
                                  15
                                ]
                              }
                            ],
                            "default": 10
                          },
                          "image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "end_image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "minimax-h3-max-r2v"
                        ],
                        "description": "MiniMax H3 Max · Reference to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "resolution": {
                            "type": "string",
                            "enum": [
                              "480P",
                              "768P",
                              "1080P"
                            ],
                            "default": "1080P"
                          },
                          "duration": {
                            "anyOf": [
                              {
                                "type": "number",
                                "enum": [
                                  10
                                ]
                              },
                              {
                                "type": "number",
                                "enum": [
                                  15
                                ]
                              }
                            ],
                            "default": 10
                          },
                          "aspect_ratio": {
                            "type": "string",
                            "enum": [
                              "adaptive",
                              "21:9",
                              "16:9",
                              "4:3",
                              "1:1",
                              "3:4",
                              "9:16"
                            ],
                            "default": "adaptive"
                          },
                          "reference_image_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "maxItems": 9,
                            "default": []
                          },
                          "reference_video_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "maxItems": 3,
                            "default": []
                          },
                          "reference_audio_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "maxItems": 3,
                            "default": []
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "minimax-h3-max-camera-controls"
                        ],
                        "description": "MiniMax H3 Max · Camera controls"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "resolution": {
                            "type": "string",
                            "enum": [
                              "480P",
                              "768P",
                              "1080P"
                            ],
                            "default": "1080P"
                          },
                          "duration": {
                            "anyOf": [
                              {
                                "type": "number",
                                "enum": [
                                  10
                                ]
                              },
                              {
                                "type": "number",
                                "enum": [
                                  15
                                ]
                              }
                            ],
                            "default": 10
                          },
                          "image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "camera_trajectory": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "time": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "azimuth": {
                                  "type": "number"
                                },
                                "elevation": {
                                  "type": "number",
                                  "minimum": -90,
                                  "maximum": 90
                                },
                                "distance": {
                                  "type": "number",
                                  "exclusiveMinimum": 0
                                }
                              },
                              "required": [
                                "time",
                                "azimuth",
                                "elevation",
                                "distance"
                              ],
                              "additionalProperties": false
                            },
                            "minItems": 2,
                            "maxItems": 12
                          }
                        },
                        "required": [
                          "image_url"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "minimax-h3-max-extend-video"
                        ],
                        "description": "MiniMax H3 Max · Extend video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "video_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "duration": {
                            "anyOf": [
                              {
                                "type": "number",
                                "enum": [
                                  5
                                ]
                              },
                              {
                                "type": "number",
                                "enum": [
                                  10
                                ]
                              },
                              {
                                "type": "number",
                                "enum": [
                                  15
                                ]
                              }
                            ],
                            "default": 5
                          },
                          "resolution": {
                            "type": "string",
                            "enum": [
                              "480P",
                              "768P",
                              "1080P",
                              "2K"
                            ],
                            "default": "1080P"
                          },
                          "output": {
                            "type": "string",
                            "enum": [
                              "extended",
                              "continuation"
                            ],
                            "default": "extended"
                          }
                        },
                        "required": [
                          "prompt",
                          "video_url"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "minimax-h3-max-insert-video"
                        ],
                        "description": "MiniMax H3 Max · Insert video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "video_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "start_time": {
                            "type": "number",
                            "minimum": 1.625,
                            "maximum": 60
                          },
                          "resume_time": {
                            "type": "number",
                            "minimum": 1.625,
                            "maximum": 60
                          },
                          "duration": {
                            "anyOf": [
                              {
                                "type": "number",
                                "enum": [
                                  5
                                ]
                              },
                              {
                                "type": "number",
                                "enum": [
                                  8
                                ]
                              },
                              {
                                "type": "number",
                                "enum": [
                                  10
                                ]
                              },
                              {
                                "type": "number",
                                "enum": [
                                  13
                                ]
                              }
                            ],
                            "default": 5
                          },
                          "resolution": {
                            "type": "string",
                            "enum": [
                              "480P",
                              "768P"
                            ],
                            "default": "768P"
                          },
                          "reference_image_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "maxItems": 9,
                            "default": []
                          }
                        },
                        "required": [
                          "video_url",
                          "start_time",
                          "resume_time"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "minimax-h3-max-lip-sync"
                        ],
                        "description": "MiniMax H3 Max · Lip sync"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "image_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "audio_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "resolution": {
                            "type": "string",
                            "enum": [
                              "480P",
                              "768P",
                              "1080P",
                              "2K"
                            ],
                            "default": "1080P"
                          }
                        },
                        "required": [
                          "image_url",
                          "audio_url"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "minimax-h3-max-3d-to-video"
                        ],
                        "description": "MiniMax H3 Max · 3D to video"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "video_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "reference_image_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "maxItems": 8,
                            "default": []
                          },
                          "max_generated_reference_images": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 8,
                            "default": 2
                          },
                          "resolution": {
                            "type": "string",
                            "enum": [
                              "480P",
                              "768P",
                              "1080P"
                            ],
                            "default": "1080P"
                          }
                        },
                        "required": [
                          "video_url"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "model": {
                        "type": "string",
                        "enum": [
                          "minimax-h3-max-recast"
                        ],
                        "description": "MiniMax H3 Max · Recast"
                      },
                      "params": {
                        "type": "object",
                        "properties": {
                          "video_url": {
                            "type": "string",
                            "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                          },
                          "reference_image_urls": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Public HTTP(S) media URL. Private addresses, credentials and data URIs are not accepted."
                            },
                            "minItems": 1,
                            "maxItems": 4
                          },
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000,
                            "description": "Describe the output you want to generate."
                          },
                          "resolution": {
                            "type": "string",
                            "enum": [
                              "768P",
                              "1080P"
                            ],
                            "default": "1080P"
                          }
                        },
                        "required": [
                          "video_url",
                          "reference_image_urls"
                        ],
                        "additionalProperties": false
                      },
                      "project_id": {
                        "type": "string",
                        "description": "Existing project belonging to your account. Omit to create a project automatically."
                      }
                    },
                    "required": [
                      "model",
                      "params"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "examples": {
                "gemini-omni-flash-1-1-t2v": {
                  "summary": "Gemini Omni Flash 1.1 · Text to video",
                  "value": {
                    "model": "gemini-omni-flash-1-1-t2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "resolution": "720p",
                      "duration": 8
                    }
                  }
                },
                "gemini-omni-flash-1-1-i2v": {
                  "summary": "Gemini Omni Flash 1.1 · Image to video",
                  "value": {
                    "model": "gemini-omni-flash-1-1-i2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "resolution": "720p",
                      "duration": 8,
                      "image_url": "https://your-cdn.example/product.jpg"
                    }
                  }
                },
                "gemini-omni-flash-1-1-r2v": {
                  "summary": "Gemini Omni Flash 1.1 · Reference to video",
                  "value": {
                    "model": "gemini-omni-flash-1-1-r2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "resolution": "720p",
                      "duration": 8,
                      "image_urls": [
                        "https://your-cdn.example/product.jpg"
                      ]
                    }
                  }
                },
                "gemini-omni-flash-1-1-edit": {
                  "summary": "Gemini Omni Flash 1.1 · Edit",
                  "value": {
                    "model": "gemini-omni-flash-1-1-edit",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "resolution": "720p",
                      "video_url": "https://your-cdn.example/source.mp4"
                    }
                  }
                },
                "grok-imagine-video-1-5-t2v": {
                  "summary": "Grok Imagine 1.5 · Text to video",
                  "value": {
                    "model": "grok-imagine-video-1-5-t2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "duration": 6,
                      "resolution": "720p"
                    }
                  }
                },
                "grok-imagine-video-1-5-i2v": {
                  "summary": "Grok Imagine 1.5 · Image to video",
                  "value": {
                    "model": "grok-imagine-video-1-5-i2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "duration": 6,
                      "resolution": "720p",
                      "image_url": "https://your-cdn.example/product.jpg"
                    }
                  }
                },
                "grok-imagine-video-1-5-r2v": {
                  "summary": "Grok Imagine 1.5 · Reference to video",
                  "value": {
                    "model": "grok-imagine-video-1-5-r2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "duration": 8,
                      "resolution": "480p",
                      "reference_image_urls": [
                        "https://your-cdn.example/product.jpg"
                      ]
                    }
                  }
                },
                "nano-banana-pro": {
                  "summary": "Nano Banana Pro",
                  "value": {
                    "model": "nano-banana-pro",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background.",
                      "resolution": "1k"
                    }
                  }
                },
                "gpt-image-2": {
                  "summary": "GPT Image 2",
                  "value": {
                    "model": "gpt-image-2",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background."
                    }
                  }
                },
                "flux-2-pro": {
                  "summary": "FLUX.2 Pro",
                  "value": {
                    "model": "flux-2-pro",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background."
                    }
                  }
                },
                "grok-imagine-image": {
                  "summary": "Grok Imagine Image",
                  "value": {
                    "model": "grok-imagine-image",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background.",
                      "resolution": "1k"
                    }
                  }
                },
                "nano-banana-pro-edit": {
                  "summary": "Nano Banana Pro · Edit",
                  "value": {
                    "model": "nano-banana-pro-edit",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background.",
                      "image_urls": [
                        "https://your-cdn.example/product.jpg"
                      ],
                      "resolution": "1k"
                    }
                  }
                },
                "gpt-image-2-edit": {
                  "summary": "GPT Image 2 · Edit",
                  "value": {
                    "model": "gpt-image-2-edit",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background.",
                      "image_urls": [
                        "https://your-cdn.example/product.jpg"
                      ]
                    }
                  }
                },
                "flux-2-pro-edit": {
                  "summary": "FLUX.2 Pro · Edit",
                  "value": {
                    "model": "flux-2-pro-edit",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background.",
                      "image_urls": [
                        "https://your-cdn.example/product.jpg"
                      ]
                    }
                  }
                },
                "grok-imagine-image-edit": {
                  "summary": "Grok Imagine Image · Edit",
                  "value": {
                    "model": "grok-imagine-image-edit",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background.",
                      "image_urls": [
                        "https://your-cdn.example/product.jpg"
                      ],
                      "resolution": "1k"
                    }
                  }
                },
                "veo3-1-fast-i2v": {
                  "summary": "Veo 3.1 · Fast · Image to video",
                  "value": {
                    "model": "veo3-1-fast-i2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "image_url": "https://your-cdn.example/product.jpg",
                      "duration": "8s",
                      "resolution": "720p"
                    }
                  }
                },
                "veo3-1-fast-t2v": {
                  "summary": "Veo 3.1 · Fast · Text to video",
                  "value": {
                    "model": "veo3-1-fast-t2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "duration": "8s",
                      "resolution": "1080p"
                    }
                  }
                },
                "veo3-1-i2v": {
                  "summary": "Veo 3.1 · Image to video",
                  "value": {
                    "model": "veo3-1-i2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "image_url": "https://your-cdn.example/product.jpg",
                      "duration": "8s",
                      "resolution": "720p"
                    }
                  }
                },
                "veo3-1-t2v": {
                  "summary": "Veo 3.1 · Text to video",
                  "value": {
                    "model": "veo3-1-t2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "duration": "8s",
                      "resolution": "1080p"
                    }
                  }
                },
                "veo3-1-lite": {
                  "summary": "Veo 3.1 · Lite · Text to video",
                  "value": {
                    "model": "veo3-1-lite",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "duration": "8s",
                      "resolution": "1080p"
                    }
                  }
                },
                "veo3-1-lite-i2v": {
                  "summary": "Veo 3.1 · Lite · Image to video",
                  "value": {
                    "model": "veo3-1-lite-i2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "image_url": "https://your-cdn.example/product.jpg",
                      "duration": "8s",
                      "resolution": "720p"
                    }
                  }
                },
                "seedance-2-0-i2v": {
                  "summary": "Seedance 2.0 · Image to video",
                  "value": {
                    "model": "seedance-2-0-i2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "image_url": "https://your-cdn.example/product.jpg",
                      "duration": "10",
                      "resolution": "720p"
                    }
                  }
                },
                "seedance-2-0-t2v": {
                  "summary": "Seedance 2.0 · Text to video",
                  "value": {
                    "model": "seedance-2-0-t2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "duration": "10",
                      "resolution": "720p"
                    }
                  }
                },
                "seedance-2-0-fast-i2v": {
                  "summary": "Seedance 2.0 · Fast · Image to video",
                  "value": {
                    "model": "seedance-2-0-fast-i2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "image_url": "https://your-cdn.example/product.jpg",
                      "duration": "10",
                      "resolution": "720p"
                    }
                  }
                },
                "seedance-2-0-fast-t2v": {
                  "summary": "Seedance 2.0 · Fast · Text to video",
                  "value": {
                    "model": "seedance-2-0-fast-t2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "duration": "10",
                      "resolution": "720p"
                    }
                  }
                },
                "seedream-v5.0": {
                  "summary": "Seedream 5.0 Pro",
                  "value": {
                    "model": "seedream-v5.0",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background.",
                      "size": "2K"
                    }
                  }
                },
                "seedream-v5.0-edit": {
                  "summary": "Seedream 5.0 Pro · Edit",
                  "value": {
                    "model": "seedream-v5.0-edit",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background.",
                      "size": "2K",
                      "image_urls": [
                        "https://your-cdn.example/product.jpg"
                      ]
                    }
                  }
                },
                "gpt-image-1.5": {
                  "summary": "GPT Image 1.5",
                  "value": {
                    "model": "gpt-image-1.5",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background."
                    }
                  }
                },
                "gpt-image-1.5-edit": {
                  "summary": "GPT Image 1.5 · Edit",
                  "value": {
                    "model": "gpt-image-1.5-edit",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background.",
                      "image_urls": [
                        "https://your-cdn.example/product.jpg"
                      ]
                    }
                  }
                },
                "gpt-image-2.5-flare": {
                  "summary": "GPT Image 2.5 Flare",
                  "value": {
                    "model": "gpt-image-2.5-flare",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background."
                    }
                  }
                },
                "gpt-image-2.5-flare-edit": {
                  "summary": "GPT Image 2.5 Flare · Edit",
                  "value": {
                    "model": "gpt-image-2.5-flare-edit",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background.",
                      "image_urls": [
                        "https://your-cdn.example/product.jpg"
                      ]
                    }
                  }
                },
                "gpt-image-2.5-sunburst": {
                  "summary": "GPT Image 2.5 Sunburst",
                  "value": {
                    "model": "gpt-image-2.5-sunburst",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background."
                    }
                  }
                },
                "gpt-image-2.5-sunburst-edit": {
                  "summary": "GPT Image 2.5 Sunburst · Edit",
                  "value": {
                    "model": "gpt-image-2.5-sunburst-edit",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background.",
                      "image_urls": [
                        "https://your-cdn.example/product.jpg"
                      ]
                    }
                  }
                },
                "banana": {
                  "summary": "Banana",
                  "value": {
                    "model": "banana",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background."
                    }
                  }
                },
                "banana-edit": {
                  "summary": "Banana · Edit",
                  "value": {
                    "model": "banana-edit",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background.",
                      "image_urls": [
                        "https://your-cdn.example/product.jpg"
                      ]
                    }
                  }
                },
                "banana-2": {
                  "summary": "Nano Banana 2",
                  "value": {
                    "model": "banana-2",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background."
                    }
                  }
                },
                "banana-2-edit": {
                  "summary": "Nano Banana 2 · Edit",
                  "value": {
                    "model": "banana-2-edit",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background.",
                      "image_urls": [
                        "https://your-cdn.example/product.jpg"
                      ]
                    }
                  }
                },
                "flux-2": {
                  "summary": "FLUX 2",
                  "value": {
                    "model": "flux-2",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background."
                    }
                  }
                },
                "flux-2-edit": {
                  "summary": "FLUX 2 · Edit",
                  "value": {
                    "model": "flux-2-edit",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background.",
                      "image_urls": [
                        "https://your-cdn.example/product.jpg"
                      ]
                    }
                  }
                },
                "seedream-v4.5": {
                  "summary": "Seedream 4.5",
                  "value": {
                    "model": "seedream-v4.5",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background."
                    }
                  }
                },
                "seedream-v4.5-edit": {
                  "summary": "Seedream 4.5 · Edit",
                  "value": {
                    "model": "seedream-v4.5-edit",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background.",
                      "image_urls": [
                        "https://your-cdn.example/product.jpg"
                      ]
                    }
                  }
                },
                "wan-v2.6": {
                  "summary": "WAN 2.6 Image",
                  "value": {
                    "model": "wan-v2.6",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background."
                    }
                  }
                },
                "wan-v2.6-edit": {
                  "summary": "WAN 2.6 Image · Edit",
                  "value": {
                    "model": "wan-v2.6-edit",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background.",
                      "image_urls": [
                        "https://your-cdn.example/product.jpg"
                      ]
                    }
                  }
                },
                "recraft-v3": {
                  "summary": "Recraft v3",
                  "value": {
                    "model": "recraft-v3",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background."
                    }
                  }
                },
                "recraft-v3-edit": {
                  "summary": "Recraft v3 · Edit",
                  "value": {
                    "model": "recraft-v3-edit",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background.",
                      "image_url": "https://your-cdn.example/product.jpg"
                    }
                  }
                },
                "imagen4-preview": {
                  "summary": "Imagen 4 Preview",
                  "value": {
                    "model": "imagen4-preview",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background."
                    }
                  }
                },
                "imagen4-preview-fast": {
                  "summary": "Imagen 4 Fast",
                  "value": {
                    "model": "imagen4-preview-fast",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background."
                    }
                  }
                },
                "imagen4-preview-ultra": {
                  "summary": "Imagen 4 Ultra",
                  "value": {
                    "model": "imagen4-preview-ultra",
                    "params": {
                      "prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background."
                    }
                  }
                },
                "kling-2-5-turbo": {
                  "summary": "Kling 2.5 Turbo",
                  "value": {
                    "model": "kling-2-5-turbo",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "duration": 10
                    }
                  }
                },
                "kling-2-6-pro": {
                  "summary": "Kling 2.6 Pro",
                  "value": {
                    "model": "kling-2-6-pro",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "duration": 10
                    }
                  }
                },
                "kling-3-0": {
                  "summary": "Kling 3.0",
                  "value": {
                    "model": "kling-3-0",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "duration": 10,
                      "image_url": "https://your-cdn.example/product.jpg"
                    }
                  }
                },
                "kling-3-turbo-pro": {
                  "summary": "Kling 3 Turbo Pro",
                  "value": {
                    "model": "kling-3-turbo-pro",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "duration": 10
                    }
                  }
                },
                "kling-3-turbo-standard": {
                  "summary": "Kling 3 Turbo Standard",
                  "value": {
                    "model": "kling-3-turbo-standard",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "duration": 10
                    }
                  }
                },
                "wan-2-6-video": {
                  "summary": "WAN 2.6 Video",
                  "value": {
                    "model": "wan-2-6-video",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "duration": 15
                    }
                  }
                },
                "seedance-1-5-pro": {
                  "summary": "Seedance 1.5 Pro",
                  "value": {
                    "model": "seedance-1-5-pro",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "duration": 12
                    }
                  }
                },
                "pixverse-5-5": {
                  "summary": "Pixverse 5.5",
                  "value": {
                    "model": "pixverse-5-5",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "duration": 10
                    }
                  }
                },
                "kling-broll": {
                  "summary": "Kling · B-roll",
                  "value": {
                    "model": "kling-broll",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "image_url": "https://your-cdn.example/product.jpg"
                    }
                  }
                },
                "wan-3-0-t2v": {
                  "summary": "WAN 3.0 · Text to video",
                  "value": {
                    "model": "wan-3-0-t2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "duration": 5
                    }
                  }
                },
                "wan-3-0-i2v": {
                  "summary": "WAN 3.0 · Image to video",
                  "value": {
                    "model": "wan-3-0-i2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "duration": 5,
                      "start_image_url": "https://your-cdn.example/product.jpg"
                    }
                  }
                },
                "wan-3-0-r2v": {
                  "summary": "WAN 3.0 · Reference to video",
                  "value": {
                    "model": "wan-3-0-r2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "duration": 5,
                      "reference_image_urls": [
                        "https://your-cdn.example/product.jpg"
                      ]
                    }
                  }
                },
                "grok-video-t2v": {
                  "summary": "Grok Video · Text to video",
                  "value": {
                    "model": "grok-video-t2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "duration": 10
                    }
                  }
                },
                "grok-video-i2v": {
                  "summary": "Grok Video · Image to video",
                  "value": {
                    "model": "grok-video-i2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "duration": 10,
                      "image_url": "https://your-cdn.example/product.jpg"
                    }
                  }
                },
                "kling-3-motion-control-standard": {
                  "summary": "Kling 3.0 Motion Control · Standard",
                  "value": {
                    "model": "kling-3-motion-control-standard",
                    "params": {
                      "image_url": "https://your-cdn.example/product.jpg",
                      "video_url": "https://your-cdn.example/source.mp4"
                    }
                  }
                },
                "kling-3-motion-control-pro": {
                  "summary": "Kling 3.0 Motion Control · Pro",
                  "value": {
                    "model": "kling-3-motion-control-pro",
                    "params": {
                      "image_url": "https://your-cdn.example/product.jpg",
                      "video_url": "https://your-cdn.example/source.mp4"
                    }
                  }
                },
                "wan-animate": {
                  "summary": "WAN Animate",
                  "value": {
                    "model": "wan-animate",
                    "params": {
                      "image_url": "https://your-cdn.example/product.jpg",
                      "video_url": "https://your-cdn.example/source.mp4"
                    }
                  }
                },
                "minimax-h3-max-t2v": {
                  "summary": "MiniMax H3 Max · Text to video",
                  "value": {
                    "model": "minimax-h3-max-t2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "duration": 10
                    }
                  }
                },
                "minimax-h3-max-i2v": {
                  "summary": "MiniMax H3 Max · Image to video",
                  "value": {
                    "model": "minimax-h3-max-i2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "image_url": "https://your-cdn.example/product.jpg",
                      "duration": 10
                    }
                  }
                },
                "minimax-h3-max-r2v": {
                  "summary": "MiniMax H3 Max · Reference to video",
                  "value": {
                    "model": "minimax-h3-max-r2v",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "reference_image_urls": [
                        "https://your-cdn.example/product.jpg"
                      ],
                      "duration": 10
                    }
                  }
                },
                "minimax-h3-max-camera-controls": {
                  "summary": "MiniMax H3 Max · Camera controls",
                  "value": {
                    "model": "minimax-h3-max-camera-controls",
                    "params": {
                      "image_url": "https://your-cdn.example/product.jpg",
                      "duration": 10
                    }
                  }
                },
                "minimax-h3-max-extend-video": {
                  "summary": "MiniMax H3 Max · Extend video",
                  "value": {
                    "model": "minimax-h3-max-extend-video",
                    "params": {
                      "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                      "video_url": "https://your-cdn.example/source.mp4",
                      "duration": 5
                    }
                  }
                },
                "minimax-h3-max-insert-video": {
                  "summary": "MiniMax H3 Max · Insert video",
                  "value": {
                    "model": "minimax-h3-max-insert-video",
                    "params": {
                      "video_url": "https://your-cdn.example/source.mp4",
                      "start_time": 2,
                      "resume_time": 4,
                      "duration": 5
                    }
                  }
                },
                "minimax-h3-max-lip-sync": {
                  "summary": "MiniMax H3 Max · Lip sync",
                  "value": {
                    "model": "minimax-h3-max-lip-sync",
                    "params": {
                      "image_url": "https://your-cdn.example/product.jpg",
                      "audio_url": "https://your-cdn.example/speech.mp3"
                    }
                  }
                },
                "minimax-h3-max-3d-to-video": {
                  "summary": "MiniMax H3 Max · 3D to video",
                  "value": {
                    "model": "minimax-h3-max-3d-to-video",
                    "params": {
                      "video_url": "https://your-cdn.example/source.mp4",
                      "reference_image_urls": [
                        "https://your-cdn.example/product.jpg"
                      ]
                    }
                  }
                },
                "minimax-h3-max-recast": {
                  "summary": "MiniMax H3 Max · Recast",
                  "value": {
                    "model": "minimax-h3-max-recast",
                    "params": {
                      "video_url": "https://your-cdn.example/source.mp4",
                      "reference_image_urls": [
                        "https://your-cdn.example/product.jpg"
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/enterprise/status/{requestId}": {
      "get": {
        "operationId": "get_enterprise_status_requestId",
        "tags": [
          "Enterprise models"
        ],
        "summary": "Get an enterprise job",
        "description": "Poll by the request_id returned from generation. Supply media to select the image or video result. Jobs must belong to your account.\n\nStatus is normally numeric: 0 = processing, 1 = completed, 2 = failed. Video status can also be a string; accept numeric strings and queued/processing/completed/failed.\n\nImages return output.output_link, an array of URLs. Videos return video_url (possibly null). Video responses do not include project_id. Do not look for data.url on this endpoint.",
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "required": true,
            "description": "The returned request_id.",
            "schema": {
              "type": "string",
              "description": "The returned request_id."
            }
          },
          {
            "name": "media",
            "in": "query",
            "required": false,
            "description": "Result type. When omitted, video is checked first, then image.",
            "schema": {
              "type": "string",
              "description": "Result type. When omitted, video is checked first, then image. Allowed: image | video.",
              "enum": [
                "image",
                "video"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "request_id": "request_123",
                  "media": "image",
                  "status": 1,
                  "mode": "gpt-image-2",
                  "project_id": "project_123",
                  "output": {
                    "output_link": [
                      "https://your-cdn.example/result.png"
                    ]
                  },
                  "created_at": "2026-10-13T00:00:00.000Z",
                  "updated_at": "2026-10-13T00:00:30.000Z"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    },
    "/seedance/generate": {
      "post": {
        "operationId": "post_seedance_generate",
        "tags": [
          "Seedance"
        ],
        "summary": "Generate a Seedance video",
        "description": "Generate with Seedance 2.0 Pro, 2.0 Fast or 2.5. Inputs are top-level. Unknown fields are rejected. image_url and image_urls are mutually exclusive; 2.0 audio requires images. See the model reference for all conditional validation rules.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Video generation started",
                  "data": {
                    "id": "video_123",
                    "project_id": "project_123",
                    "model": "seedance-2.5",
                    "status": "processing",
                    "estimated_credits": 1.6
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "prompt": {
                        "type": "string",
                        "description": "Describe the video. Allowed: 1–15,000 Unicode characters."
                      },
                      "duration": {
                        "type": "integer",
                        "description": "Output seconds. Use -1 for Auto; numeric strings are rejected. Allowed: 4–30 or -1. Default: 10.",
                        "default": 10
                      },
                      "aspect_ratio": {
                        "type": "string",
                        "description": "Output aspect ratio. Allowed: 9:16 | 16:9 | 4:3 | 3:4 | 1:1 | 21:9 | adaptive. Default: 9:16.",
                        "enum": [
                          "9:16",
                          "16:9",
                          "4:3",
                          "3:4",
                          "1:1",
                          "21:9",
                          "adaptive"
                        ],
                        "default": "9:16"
                      },
                      "resolution": {
                        "type": "string",
                        "description": "Output resolution. Allowed: 480p | 720p | 1080p. Default: 720p.",
                        "enum": [
                          "480p",
                          "720p",
                          "1080p"
                        ],
                        "default": "720p"
                      },
                      "generate_audio": {
                        "type": "boolean",
                        "description": "Generate an audio track. Default: true.",
                        "default": true
                      },
                      "image_url": {
                        "type": "string",
                        "description": "One public reference image URL. Mutually exclusive with image_urls."
                      },
                      "image_urls": {
                        "type": "array",
                        "description": "Public reference image URLs. Mutually exclusive with image_url. Allowed: 1–30 images.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "audio_url": {
                        "type": "string",
                        "description": "Public reference audio URL."
                      },
                      "project_id": {
                        "type": "string",
                        "description": "An existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "HTTP(S) notification URL. Keep status polling as a fallback."
                      },
                      "model": {
                        "type": "string",
                        "enum": [
                          "seedance-2.5"
                        ],
                        "description": "Seedance 2.5"
                      }
                    },
                    "required": [
                      "model",
                      "prompt"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "prompt": {
                        "type": "string",
                        "description": "Describe the video. Allowed: 1–15,000 Unicode characters."
                      },
                      "duration": {
                        "type": "integer",
                        "description": "Output seconds. Use -1 for Auto; numeric strings are rejected. Allowed: 4–15 or -1. Default: 10.",
                        "default": 10
                      },
                      "aspect_ratio": {
                        "type": "string",
                        "description": "Output aspect ratio. Allowed: 9:16 | 16:9 | 4:3 | 3:4 | 1:1 | 21:9 | adaptive. Default: 9:16.",
                        "enum": [
                          "9:16",
                          "16:9",
                          "4:3",
                          "3:4",
                          "1:1",
                          "21:9",
                          "adaptive"
                        ],
                        "default": "9:16"
                      },
                      "resolution": {
                        "type": "string",
                        "description": "Output resolution. Allowed: 480p | 720p | 1080p | 4k. Default: 720p.",
                        "enum": [
                          "480p",
                          "720p",
                          "1080p",
                          "4k"
                        ],
                        "default": "720p"
                      },
                      "generate_audio": {
                        "type": "boolean",
                        "description": "Generate an audio track. Default: true.",
                        "default": true
                      },
                      "image_url": {
                        "type": "string",
                        "description": "One public reference image URL. Mutually exclusive with image_urls."
                      },
                      "image_urls": {
                        "type": "array",
                        "description": "Public reference image URLs. Mutually exclusive with image_url. Allowed: 1–9 images.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "audio_url": {
                        "type": "string",
                        "description": "Public reference audio URL; also provide at least one image."
                      },
                      "project_id": {
                        "type": "string",
                        "description": "An existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "HTTP(S) notification URL. Keep status polling as a fallback."
                      },
                      "model": {
                        "type": "string",
                        "enum": [
                          "seedance-2.0"
                        ],
                        "description": "Seedance 2.0 Pro"
                      }
                    },
                    "required": [
                      "model",
                      "prompt"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "prompt": {
                        "type": "string",
                        "description": "Describe the video. Allowed: 1–15,000 Unicode characters."
                      },
                      "duration": {
                        "type": "integer",
                        "description": "Output seconds. Use -1 for Auto; numeric strings are rejected. Allowed: 4–15 or -1. Default: 10.",
                        "default": 10
                      },
                      "aspect_ratio": {
                        "type": "string",
                        "description": "Output aspect ratio. Allowed: 9:16 | 16:9 | 4:3 | 3:4 | 1:1 | 21:9 | adaptive. Default: 9:16.",
                        "enum": [
                          "9:16",
                          "16:9",
                          "4:3",
                          "3:4",
                          "1:1",
                          "21:9",
                          "adaptive"
                        ],
                        "default": "9:16"
                      },
                      "resolution": {
                        "type": "string",
                        "description": "Output resolution. Allowed: 480p | 720p. Default: 720p.",
                        "enum": [
                          "480p",
                          "720p"
                        ],
                        "default": "720p"
                      },
                      "generate_audio": {
                        "type": "boolean",
                        "description": "Generate an audio track. Default: true.",
                        "default": true
                      },
                      "image_url": {
                        "type": "string",
                        "description": "One public reference image URL. Mutually exclusive with image_urls."
                      },
                      "image_urls": {
                        "type": "array",
                        "description": "Public reference image URLs. Mutually exclusive with image_url. Allowed: 1–9 images.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "audio_url": {
                        "type": "string",
                        "description": "Public reference audio URL; also provide at least one image."
                      },
                      "project_id": {
                        "type": "string",
                        "description": "An existing project belonging to your account. Omit to create a project automatically."
                      },
                      "webhook_url": {
                        "type": "string",
                        "description": "HTTP(S) notification URL. Keep status polling as a fallback."
                      },
                      "model": {
                        "type": "string",
                        "enum": [
                          "seedance-2.0-fast"
                        ],
                        "description": "Seedance 2.0 Fast"
                      }
                    },
                    "required": [
                      "model",
                      "prompt"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "examples": {
                "seedance-2.5": {
                  "summary": "Seedance 2.5",
                  "value": {
                    "model": "seedance-2.5",
                    "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                    "duration": 10,
                    "aspect_ratio": "9:16",
                    "resolution": "720p",
                    "generate_audio": true
                  }
                },
                "seedance-2.0": {
                  "summary": "Seedance 2.0 Pro",
                  "value": {
                    "model": "seedance-2.0",
                    "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                    "duration": 10,
                    "aspect_ratio": "9:16",
                    "resolution": "720p",
                    "generate_audio": true
                  }
                },
                "seedance-2.0-fast": {
                  "summary": "Seedance 2.0 Fast",
                  "value": {
                    "model": "seedance-2.0-fast",
                    "prompt": "A slow camera move around a ceramic coffee cup in warm morning light.",
                    "duration": 10,
                    "aspect_ratio": "9:16",
                    "resolution": "720p",
                    "generate_audio": true
                  }
                }
              }
            }
          }
        }
      }
    },
    "/seedance/status": {
      "get": {
        "operationId": "get_seedance_status",
        "tags": [
          "Seedance"
        ],
        "summary": "Get Seedance status",
        "description": "Poll by data.id. Read data.status: processing, completed or failed. A completed url can be null until the output is available.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "description": "The generation data.id.",
            "schema": {
              "type": "string",
              "description": "The generation data.id."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request. Generation responses acknowledge submission; inspect the matching status endpoint for the result. The example is illustrative and may omit optional fields.",
            "headers": {
              "x-request-id": {
                "description": "HTTP request trace ID, distinct from the generation job ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "status": true,
                  "message": "Video is completed",
                  "data": {
                    "id": "video_123",
                    "status": "completed",
                    "url": "https://your-cdn.example/result.mp4"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "default": {
            "$ref": "#/components/responses/ApiError"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ApiKey": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Api-Key"
      }
    },
    "schemas": {
      "ApiError": {
        "type": "object",
        "properties": {
          "status": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "detail": {},
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": true
      }
    },
    "responses": {
      "Unauthorized": {
        "description": "Missing, invalid or inactive API key.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiError"
            },
            "example": {
              "status": false,
              "message": "Not authenticated"
            }
          }
        }
      },
      "ApiError": {
        "description": "Error; inspect detail or message. See /docs/api/v2/errors for status codes and endpoint differences.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiError"
            }
          }
        }
      }
    }
  }
}