{
  "components": {
    "schemas": {
      "APIError": {
        "properties": {
          "code": {
            "description": "Stable machine-readable error code.",
            "type": "string",
            "x-description-zh": "稳定的程序错误码。"
          },
          "details": {
            "additionalProperties": true,
            "description": "Public error-specific fields; inspect without logging private inputs.",
            "type": "object",
            "x-description-zh": "特定错误的公开详情，检查时不记录私有输入。"
          },
          "message": {
            "description": "Human-readable explanation; do not branch on exact text.",
            "type": "string",
            "x-description-zh": "人类可读说明，不依赖精确文本分支。"
          },
          "param": {
            "description": "Related public parameter, if known.",
            "type": [
              "string",
              "null"
            ],
            "x-description-zh": "已知时指向相关公开参数。"
          },
          "request_id": {
            "description": "Public support correlation ID, not a credential.",
            "type": [
              "string",
              "null"
            ],
            "x-description-zh": "供支持关联排查的公共请求 ID，不是凭据。"
          },
          "retryable": {
            "description": "Retry may help; still preserve idempotency and respect Retry-After.",
            "type": "boolean",
            "x-description-zh": "重试可能有帮助，但仍需保持幂等并遵循 Retry-After。"
          }
        },
        "required": [
          "code",
          "message",
          "retryable",
          "request_id",
          "details"
        ],
        "type": "object"
      },
      "APIErrorEnvelope": {
        "properties": {
          "error": {
            "$ref": "#/components/schemas/APIError"
          }
        },
        "required": [
          "error"
        ],
        "type": "object"
      },
      "AccountAPIKey": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Identity of the authenticated key, not its secret. Idempotency is scoped to this identity.",
            "format": "uuid",
            "title": "Id",
            "type": "string",
            "x-description-zh": "当前 Key 的标识，不是密钥明文；幂等去重受此身份约束。"
          },
          "scopes": {
            "description": "Permissions granted to this key.",
            "items": {
              "type": "string"
            },
            "title": "Scopes",
            "type": "array",
            "x-description-zh": "当前 Key 获得的权限。"
          }
        },
        "required": [
          "id",
          "scopes"
        ],
        "title": "AccountAPIKey",
        "type": "object"
      },
      "AccountLimits": {
        "additionalProperties": false,
        "properties": {
          "concurrency": {
            "description": "Maximum concurrent jobs across this account.",
            "title": "Concurrency",
            "type": "integer",
            "x-description-zh": "整个账户的最大并发任务数。"
          },
          "create_per_minute": {
            "description": "Account-wide create requests per minute.",
            "title": "Create Per Minute",
            "type": "integer",
            "x-description-zh": "账户每分钟创建请求限额。"
          },
          "other_per_minute": {
            "description": "Account-wide other requests per minute.",
            "title": "Other Per Minute",
            "type": "integer",
            "x-description-zh": "账户每分钟其他请求限额。"
          },
          "queue": {
            "description": "Maximum queued jobs across this account.",
            "title": "Queue",
            "type": "integer",
            "x-description-zh": "整个账户的最大排队任务数。"
          }
        },
        "required": [
          "concurrency",
          "queue",
          "create_per_minute",
          "other_per_minute"
        ],
        "title": "AccountLimits",
        "type": "object"
      },
      "AccountPlan": {
        "additionalProperties": false,
        "properties": {
          "cancel_at_period_end": {
            "description": "Whether the current paid subscription will stop renewing; false for registered access.",
            "title": "Cancel At Period End",
            "type": "boolean",
            "x-description-zh": "当前付费订阅是否停止续订；注册基础档为 false。"
          },
          "code": {
            "description": "Current developer access tier: registered, basic, expert, or ultra.",
            "title": "Code",
            "type": "string",
            "x-description-zh": "当前开发者访问档位：registered、basic、expert 或 ultra。"
          },
          "current_period_end": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Paid subscription period end in UTC, or null for registered access.",
            "title": "Current Period End",
            "x-description-zh": "付费订阅周期的 UTC 结束时间；注册基础档为 null。"
          }
        },
        "required": [
          "code",
          "current_period_end",
          "cancel_at_period_end"
        ],
        "title": "AccountPlan",
        "type": "object"
      },
      "AccountResponse": {
        "additionalProperties": false,
        "properties": {
          "api_key": {
            "$ref": "#/components/schemas/AccountAPIKey",
            "description": "Current key identity and scopes; never the key secret.",
            "x-description-zh": "当前 Key 标识及权限，不返回密钥明文。"
          },
          "id": {
            "description": "Authenticated account ID.",
            "format": "uuid",
            "title": "Id",
            "type": "string",
            "x-description-zh": "当前鉴权账户 ID。"
          },
          "limits": {
            "$ref": "#/components/schemas/AccountLimits",
            "description": "Limits are shared by every key on this account.",
            "x-description-zh": "所有 Key 共用的账户级限额。"
          },
          "object": {
            "const": "account",
            "default": "account",
            "title": "Object",
            "type": "string"
          },
          "plan": {
            "$ref": "#/components/schemas/AccountPlan",
            "description": "Current developer access tier and optional subscription period.",
            "x-description-zh": "当前开发者访问档位及可选订阅周期。"
          }
        },
        "required": [
          "id",
          "plan",
          "api_key",
          "limits"
        ],
        "title": "AccountResponse",
        "type": "object"
      },
      "AnimationCreateRequest": {
        "additionalProperties": false,
        "properties": {
          "export": {
            "$ref": "#/components/schemas/ExportOptions",
            "default": {
              "frame_count": 24,
              "output_formats": [
                "spritesheet"
              ],
              "output_height": 512,
              "output_width": 512,
              "transparent": {
                "enabled": false
              },
              "unity": {
                "pivot": "bottom_center",
                "pixels_per_unit": 100
              }
            },
            "description": "Export after video generation. Alpha-bearing formats require an alpha_key source; compatible formats automatically enable its transparent export.",
            "x-description-zh": "视频生成后执行导出；带 Alpha 的格式要求 alpha_key 来源，适配格式会自动启用其透明处理。"
          },
          "input": {
            "$ref": "#/components/schemas/GenerationInput",
            "description": "Images owned by the caller or supplied for this generation.",
            "x-description-zh": "调用方所属或本次提供的生成图片。"
          },
          "metadata": {
            "additionalProperties": true,
            "default": {},
            "description": "Caller metadata: simple string/number/boolean/null values, at most 4 KiB JSON. Do not store secrets.",
            "title": "Metadata",
            "type": "object",
            "x-description-zh": "调用方元数据，仅字符串、数字、布尔或 null；JSON 不超过 4 KiB，不存凭据。"
          },
          "negative_prompt": {
            "default": "",
            "description": "Optional exclusions, only when the model supports negative prompts.",
            "maxLength": 4000,
            "title": "Negative Prompt",
            "type": "string",
            "x-description-zh": "可选负向提示词，仅适用于支持的模型。"
          },
          "prompt": {
            "default": "",
            "description": "Motion instruction; nonempty when the model requires a prompt. Keep private prompts out of logs.",
            "maxLength": 8000,
            "title": "Prompt",
            "type": "string",
            "x-description-zh": "动作提示词；模型要求时不能为空，私有提示词不得写入日志。"
          },
          "selection": {
            "$ref": "#/components/schemas/Selection",
            "default": {
              "duration_seconds": null,
              "mode": "full",
              "start_seconds": 0.0
            },
            "description": "Interval selected after generation; full by default.",
            "x-description-zh": "生成后选取的区间，默认完整视频。"
          },
          "video": {
            "$ref": "#/components/schemas/VideoOptions",
            "default": {
              "duration_seconds": null,
              "input_canvas": null,
              "model": null,
              "ratio": null,
              "resolution": null,
              "seed": null,
              "style_preset": null,
              "transparency": {
                "key_color": null,
                "key_selection": "auto",
                "mode": "standard"
              },
              "watermark": null
            },
            "description": "Model-compatible generation settings.",
            "x-description-zh": "符合模型能力的生成设置。"
          }
        },
        "required": [
          "input"
        ],
        "title": "AnimationCreateRequest",
        "type": "object"
      },
      "AnimationExportCreateRequest": {
        "additionalProperties": false,
        "properties": {
          "export": {
            "$ref": "#/components/schemas/ExportOptions",
            "default": {
              "frame_count": 24,
              "output_formats": [
                "spritesheet"
              ],
              "output_height": 512,
              "output_width": 512,
              "transparent": {
                "enabled": false
              },
              "unity": {
                "pivot": "bottom_center",
                "pixels_per_unit": 100
              }
            },
            "description": "Output formats and processing settings.",
            "x-description-zh": "输出格式及处理设置。"
          },
          "metadata": {
            "additionalProperties": true,
            "default": {},
            "description": "Simple scalar/null metadata; at most 4 KiB JSON, no credentials.",
            "title": "Metadata",
            "type": "object",
            "x-description-zh": "简单标量或 null 元数据，JSON 不超过 4 KiB，不包含凭据。"
          },
          "selection": {
            "$ref": "#/components/schemas/Selection",
            "default": {
              "duration_seconds": null,
              "mode": "full",
              "start_seconds": 0.0
            },
            "description": "Source interval to export.",
            "x-description-zh": "需要导出的源视频区间。"
          },
          "source_video_asset_id": {
            "description": "Owned source video asset ID, not a task ID. Reuse an existing video to avoid generating motion again.",
            "format": "uuid",
            "title": "Source Video Asset Id",
            "type": "string",
            "x-description-zh": "所属源视频资产 ID，不是任务 ID；复用已有视频可避免重新生成动作。"
          }
        },
        "required": [
          "source_video_asset_id"
        ],
        "title": "AnimationExportCreateRequest",
        "type": "object"
      },
      "AssetResponse": {
        "additionalProperties": false,
        "properties": {
          "byte_size": {
            "description": "Expected file size in bytes.",
            "title": "Byte Size",
            "type": "integer",
            "x-description-zh": "文件预期字节数。"
          },
          "created_at": {
            "description": "Creation timestamp in UTC.",
            "format": "date-time",
            "title": "Created At",
            "type": "string",
            "x-description-zh": "UTC 创建时间。"
          },
          "download_expires_at": {
            "description": "Signed URL expiry in UTC; refresh via asset lookup when expired.",
            "format": "date-time",
            "title": "Download Expires At",
            "type": "string",
            "x-description-zh": "签名 URL 的 UTC 过期时间；过期后重新查询资产。"
          },
          "download_url": {
            "description": "Sensitive short-lived signed URL. Download without a Bearer header, including after redirects; never log the URL.",
            "title": "Download Url",
            "type": "string",
            "x-description-zh": "敏感短期签名 URL；下载及跳转时均不携带 Bearer 头，不记录此 URL。"
          },
          "format": {
            "description": "Artifact format; inspect actual outputs rather than assuming an array order.",
            "title": "Format",
            "type": "string",
            "x-description-zh": "实际资产格式，不要依赖 outputs 固定顺序。"
          },
          "id": {
            "description": "Stable public asset ID; use it to refresh download metadata.",
            "format": "uuid",
            "title": "Id",
            "type": "string",
            "x-description-zh": "稳定公共资产 ID，用于刷新下载信息。"
          },
          "mime_type": {
            "description": "Asset media type.",
            "title": "Mime Type",
            "type": "string",
            "x-description-zh": "资产媒体类型。"
          },
          "object": {
            "const": "asset",
            "default": "asset",
            "title": "Object",
            "type": "string"
          }
        },
        "required": [
          "id",
          "format",
          "mime_type",
          "byte_size",
          "created_at",
          "download_url",
          "download_expires_at"
        ],
        "title": "AssetResponse",
        "type": "object"
      },
      "Base64ImageInput": {
        "additionalProperties": false,
        "properties": {
          "data": {
            "description": "Pure Base64 without a data URL prefix; decoded limits: 10 MiB per image, 20 MiB total.",
            "minLength": 4,
            "title": "Data",
            "type": "string",
            "x-description-zh": "纯 Base64，不含 data URL 前缀；解码后单张 10 MiB、合计 20 MiB。"
          },
          "media_type": {
            "description": "Actual image MIME type.",
            "enum": [
              "image/png",
              "image/jpeg",
              "image/webp"
            ],
            "title": "Media Type",
            "type": "string",
            "x-description-zh": "图片实际 MIME 类型。"
          },
          "type": {
            "const": "base64",
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "type",
          "media_type",
          "data"
        ],
        "title": "Base64ImageInput",
        "type": "object"
      },
      "Body_create_file_v1_files_post": {
        "properties": {
          "file": {
            "description": "PNG, JPEG, or WebP image bytes; validated before returning a public file ID.",
            "format": "binary",
            "title": "File",
            "type": "string",
            "x-description-zh": "PNG、JPEG 或 WebP 图片字节，校验后返回公共文件 ID。"
          }
        },
        "required": [
          "file"
        ],
        "title": "Body_create_file_v1_files_post",
        "type": "object"
      },
      "CreditUsage": {
        "additionalProperties": false,
        "properties": {
          "charged": {
            "description": "Net charged credits. Confirmed provider moderation rejection is refunded; cancellation alone is not a refund.",
            "title": "Charged",
            "type": "integer",
            "x-description-zh": "最终净扣费积分。供应商明确审核拒绝会退分，取消本身不代表退款。"
          },
          "held": {
            "description": "Credits currently reserved, not an additional charge to sum with charged.",
            "title": "Held",
            "type": "integer",
            "x-description-zh": "当前预占积分，不应与 charged 相加当作扣费。"
          },
          "quoted": {
            "description": "Quoted total, not necessarily the final charge.",
            "title": "Quoted",
            "type": "integer",
            "x-description-zh": "报价总额，不一定等于最终扣费。"
          },
          "refunded": {
            "default": 0,
            "description": "Credits returned after a charge; already excluded from charged. Not a cash refund.",
            "title": "Refunded",
            "type": "integer",
            "x-description-zh": "扣费后退回的积分，已从 charged 中扣除，不是现金退款。"
          },
          "released": {
            "default": 0,
            "description": "Credits returned from an uncommitted hold.",
            "title": "Released",
            "type": "integer",
            "x-description-zh": "尚未确认扣费即释放的积分。"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Billing state: held, charged, released, refunded, or managed for internal child tasks.",
            "title": "Status",
            "x-description-zh": "积分状态：held、charged、released、refunded，内部子任务可为 managed。"
          }
        },
        "required": [
          "quoted",
          "held",
          "charged"
        ],
        "title": "CreditUsage",
        "type": "object"
      },
      "CreditsBalanceResponse": {
        "additionalProperties": false,
        "properties": {
          "available": {
            "description": "Currently available account credits; not a feature-entitlement flag.",
            "title": "Available",
            "type": "integer",
            "x-description-zh": "当前账户可用积分，不代表功能权益已解锁。"
          },
          "object": {
            "const": "credit_balance",
            "default": "credit_balance",
            "title": "Object",
            "type": "string"
          }
        },
        "required": [
          "available"
        ],
        "title": "CreditsBalanceResponse",
        "type": "object"
      },
      "ExportOptions": {
        "additionalProperties": false,
        "properties": {
          "frame_count": {
            "default": 24,
            "description": "Number of frames sampled over the selected interval, not an FPS field.",
            "maximum": 240,
            "minimum": 1,
            "title": "Frame Count",
            "type": "integer",
            "x-description-zh": "在选段内采样的帧数，不是 FPS 参数。"
          },
          "output_formats": {
            "default": [
              "spritesheet"
            ],
            "description": "Requested asset formats; defaults to spritesheet. Duplicates are removed. Metadata needs its matching texture.",
            "items": {
              "enum": [
                "clip_video",
                "webm_alpha",
                "prores_4444",
                "frames_zip",
                "spritesheet",
                "spritesheet_json",
                "unity_meta",
                "unity_pack",
                "godot_pack",
                "unreal_paper2d_pack",
                "cocos_creator_pack"
              ],
              "type": "string"
            },
            "minItems": 1,
            "title": "Output Formats",
            "type": "array",
            "x-description-zh": "请求的资产格式；默认 spritesheet，重复项会去重，元数据需配套纹理。"
          },
          "output_height": {
            "default": 512,
            "description": "Output frame height in pixels.",
            "maximum": 1024,
            "minimum": 64,
            "title": "Output Height",
            "type": "integer",
            "x-description-zh": "输出帧高度，单位像素。"
          },
          "output_width": {
            "default": 512,
            "description": "Output frame width in pixels.",
            "maximum": 1024,
            "minimum": 64,
            "title": "Output Width",
            "type": "integer",
            "x-description-zh": "输出帧宽度，单位像素。"
          },
          "transparent": {
            "$ref": "#/components/schemas/ExportTransparency",
            "default": {
              "enabled": false
            },
            "description": "Use the enabled object form. Legacy booleans are accepted but normalized to this object.",
            "x-description-zh": "使用 enabled 对象形式；兼容布尔值输入并规范化为此对象。"
          },
          "unity": {
            "$ref": "#/components/schemas/UnityOptions",
            "default": {
              "pivot": "bottom_center",
              "pixels_per_unit": 100
            },
            "description": "Settings for Unity-specific metadata and packs.",
            "x-description-zh": "Unity 专用元数据和资源包设置。"
          }
        },
        "title": "ExportOptions",
        "type": "object"
      },
      "ExportTransparency": {
        "additionalProperties": false,
        "properties": {
          "enabled": {
            "default": false,
            "description": "Transparent processing for compatible outputs; requires an alpha_key source and does not make MP4 transparent.",
            "title": "Enabled",
            "type": "boolean",
            "x-description-zh": "为兼容输出启用透明处理；要求 alpha_key 来源，不会让 MP4 透明。"
          }
        },
        "title": "ExportTransparency",
        "type": "object"
      },
      "FileImageInput": {
        "additionalProperties": false,
        "properties": {
          "file_id": {
            "description": "Owned public file ID from POST /files or complete_image_upload; not a Studio upload ID.",
            "format": "uuid",
            "title": "File Id",
            "type": "string",
            "x-description-zh": "POST /files 或 complete_image_upload 返回的所属公共文件 ID，不是 Studio uploadId。"
          },
          "type": {
            "const": "file",
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "type",
          "file_id"
        ],
        "title": "FileImageInput",
        "type": "object"
      },
      "FileResponse": {
        "additionalProperties": false,
        "properties": {
          "byte_size": {
            "description": "Stored image byte count.",
            "title": "Byte Size",
            "type": "integer",
            "x-description-zh": "存储图片字节数。"
          },
          "created_at": {
            "description": "UTC upload creation time.",
            "format": "date-time",
            "title": "Created At",
            "type": "string",
            "x-description-zh": "上传创建的 UTC 时间。"
          },
          "height": {
            "description": "Decoded image height in pixels.",
            "title": "Height",
            "type": "integer",
            "x-description-zh": "解码后图片高度，像素。"
          },
          "id": {
            "description": "Reusable public file ID for type=file inputs.",
            "format": "uuid",
            "title": "Id",
            "type": "string",
            "x-description-zh": "type=file 输入使用的可复用公共文件 ID。"
          },
          "mime_type": {
            "description": "Validated image media type.",
            "title": "Mime Type",
            "type": "string",
            "x-description-zh": "校验后的图片媒体类型。"
          },
          "object": {
            "const": "file",
            "default": "file",
            "title": "Object",
            "type": "string"
          },
          "sha256": {
            "description": "SHA-256 of the image bytes.",
            "title": "Sha256",
            "type": "string",
            "x-description-zh": "图片字节的 SHA-256。"
          },
          "width": {
            "description": "Decoded image width in pixels.",
            "title": "Width",
            "type": "integer",
            "x-description-zh": "解码后图片宽度，像素。"
          }
        },
        "required": [
          "id",
          "mime_type",
          "byte_size",
          "width",
          "height",
          "sha256",
          "created_at"
        ],
        "title": "FileResponse",
        "type": "object"
      },
      "GenerationInput": {
        "additionalProperties": false,
        "properties": {
          "first_frame": {
            "description": "Required starting image; use the type discriminator to select an input representation.",
            "discriminator": {
              "mapping": {
                "base64": "#/components/schemas/Base64ImageInput",
                "file": "#/components/schemas/FileImageInput",
                "url": "#/components/schemas/UrlImageInput"
              },
              "propertyName": "type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/FileImageInput"
              },
              {
                "$ref": "#/components/schemas/Base64ImageInput"
              },
              {
                "$ref": "#/components/schemas/UrlImageInput"
              }
            ],
            "title": "First Frame",
            "x-description-zh": "必需首帧，用 type 选择图片传入方式。"
          },
          "last_frame": {
            "anyOf": [
              {
                "discriminator": {
                  "mapping": {
                    "base64": "#/components/schemas/Base64ImageInput",
                    "file": "#/components/schemas/FileImageInput",
                    "url": "#/components/schemas/UrlImageInput"
                  },
                  "propertyName": "type"
                },
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/FileImageInput"
                  },
                  {
                    "$ref": "#/components/schemas/Base64ImageInput"
                  },
                  {
                    "$ref": "#/components/schemas/UrlImageInput"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Optional end image; the selected model must support first/last-frame mode.",
            "title": "Last Frame",
            "x-description-zh": "可选尾帧，所选模型必须支持首尾帧模式。"
          },
          "reference_images": {
            "default": [],
            "description": "Additional references, excluding the first frame. The live model can impose a smaller limit.",
            "items": {
              "discriminator": {
                "mapping": {
                  "base64": "#/components/schemas/Base64ImageInput",
                  "file": "#/components/schemas/FileImageInput",
                  "url": "#/components/schemas/UrlImageInput"
                },
                "propertyName": "type"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/FileImageInput"
                },
                {
                  "$ref": "#/components/schemas/Base64ImageInput"
                },
                {
                  "$ref": "#/components/schemas/UrlImageInput"
                }
              ]
            },
            "maxItems": 8,
            "title": "Reference Images",
            "type": "array",
            "x-description-zh": "额外参考图，不含首帧；实时模型可能有更低上限。"
          }
        },
        "required": [
          "first_frame"
        ],
        "title": "GenerationInput",
        "type": "object"
      },
      "GenerationTransparency": {
        "additionalProperties": false,
        "properties": {
          "key_color": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Temporary key color when using manual selection; normally leave automatic selection enabled.",
            "title": "Key Color",
            "x-description-zh": "手动选择时使用的临时键色；通常保留自动选择。"
          },
          "key_selection": {
            "default": "auto",
            "description": "How the temporary key color is selected.",
            "enum": [
              "auto",
              "manual"
            ],
            "title": "Key Selection",
            "type": "string",
            "x-description-zh": "临时键色的选择方式。"
          },
          "mode": {
            "default": "standard",
            "description": "standard keeps the scene; alpha_key requires meaningful alpha in all active input images. Raw videos remain opaque.",
            "enum": [
              "standard",
              "alpha_key"
            ],
            "title": "Mode",
            "type": "string",
            "x-description-zh": "standard 保留场景；alpha_key 要求所有参与图片有有效 Alpha，原始视频仍不透明。"
          }
        },
        "title": "GenerationTransparency",
        "type": "object"
      },
      "InputCanvasOptions": {
        "additionalProperties": false,
        "properties": {
          "aspect_ratio": {
            "default": "follow_output",
            "description": "Follow the output ratio or preserve the source ratio.",
            "enum": [
              "follow_output",
              "source"
            ],
            "title": "Aspect Ratio",
            "type": "string",
            "x-description-zh": "跟随输出比例或保持原图比例。"
          },
          "background": {
            "default": "auto",
            "description": "Canvas extension background strategy.",
            "enum": [
              "auto",
              "transparent",
              "solid"
            ],
            "title": "Background",
            "type": "string",
            "x-description-zh": "画布扩展区域的背景策略。"
          },
          "background_color": {
            "anyOf": [
              {
                "pattern": "^#[0-9A-Fa-f]{6}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Six-digit RGB color for a solid extension.",
            "title": "Background Color",
            "x-description-zh": "纯色扩展区域的六位 RGB 颜色。"
          },
          "enabled": {
            "default": true,
            "description": "Whether to prepare an expanded input canvas.",
            "title": "Enabled",
            "type": "boolean",
            "x-description-zh": "是否准备扩展输入画布。"
          },
          "position_x": {
            "default": 0.5,
            "description": "Normalized horizontal source position.",
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Position X",
            "type": "number",
            "x-description-zh": "归一化水平位置。"
          },
          "position_y": {
            "default": 0.5,
            "description": "Normalized vertical source position.",
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Position Y",
            "type": "number",
            "x-description-zh": "归一化垂直位置。"
          },
          "source_scale": {
            "default": 0.8,
            "description": "Source subject scale within the canvas.",
            "maximum": 1.0,
            "minimum": 0.5,
            "title": "Source Scale",
            "type": "number",
            "x-description-zh": "原图主体在画布中的缩放比例。"
          }
        },
        "title": "InputCanvasOptions",
        "type": "object"
      },
      "ModelCapabilities": {
        "additionalProperties": false,
        "properties": {
          "aspect_ratio_mode": {
            "description": "Provider's aspect-ratio handling mode.",
            "title": "Aspect Ratio Mode",
            "type": "string",
            "x-description-zh": "供应商对画幅比例的处理模式。"
          },
          "default_duration_seconds": {
            "description": "Default generation duration in seconds.",
            "title": "Default Duration Seconds",
            "type": "integer",
            "x-description-zh": "默认生成时长，秒。"
          },
          "default_ratio": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Default ratio, or null when not applicable.",
            "title": "Default Ratio",
            "x-description-zh": "默认比例，不适用时为 null。"
          },
          "default_resolution": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Default resolution, or null when not applicable.",
            "title": "Default Resolution",
            "x-description-zh": "默认分辨率，不适用时为 null。"
          },
          "durations": {
            "description": "Supported generation durations in seconds; also inspect resolution-specific constraints.",
            "items": {
              "type": "integer"
            },
            "title": "Durations",
            "type": "array",
            "x-description-zh": "支持的生成秒数，同时检查分辨率专属限制。"
          },
          "durations_by_resolution": {
            "additionalProperties": {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            "default": {},
            "description": "Resolution-specific supported durations in seconds.",
            "title": "Durations By Resolution",
            "type": "object",
            "x-description-zh": "各分辨率支持的时长秒数。"
          },
          "id": {
            "description": "Stable provider:model selector for requests; use the live catalog.",
            "title": "Id",
            "type": "string",
            "x-description-zh": "请求使用的 provider:model 标识，以实时目录为准。"
          },
          "label": {
            "description": "Human-readable model label.",
            "title": "Label",
            "type": "string",
            "x-description-zh": "人类可读模型名称。"
          },
          "max_reference_images": {
            "description": "Model reference-image capacity; the first frame occupies the first reference slot in reference mode.",
            "title": "Max Reference Images",
            "type": "integer",
            "x-description-zh": "模型参考图容量；参考图模式中首帧占第一个参考图槽位。"
          },
          "model": {
            "description": "Model identifier within the provider.",
            "title": "Model",
            "type": "string",
            "x-description-zh": "供应商内的模型标识。"
          },
          "modes": {
            "description": "Supported input modes, such as first_frame, first_last_frame, or reference_images.",
            "items": {
              "type": "string"
            },
            "title": "Modes",
            "type": "array",
            "x-description-zh": "支持的输入模式，如 first_frame、first_last_frame、reference_images。"
          },
          "provider": {
            "description": "Public provider identifier.",
            "title": "Provider",
            "type": "string",
            "x-description-zh": "公开供应商标识。"
          },
          "ratios": {
            "description": "Supported aspect ratio values; check ratios_by_mode where present.",
            "items": {
              "type": "string"
            },
            "title": "Ratios",
            "type": "array",
            "x-description-zh": "支持的比例；存在 ratios_by_mode 时同时检查。"
          },
          "ratios_by_mode": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "default": {},
            "description": "Input-mode-specific supported ratios.",
            "title": "Ratios By Mode",
            "type": "object",
            "x-description-zh": "各输入模式支持的比例。"
          },
          "reference_image_duration_seconds": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Required duration for reference mode, when constrained.",
            "title": "Reference Image Duration Seconds",
            "x-description-zh": "参考图模式有固定限制时要求的秒数。"
          },
          "requires_prompt": {
            "description": "Whether prompt must be nonempty.",
            "title": "Requires Prompt",
            "type": "boolean",
            "x-description-zh": "是否要求提示词非空。"
          },
          "resolutions": {
            "description": "Supported resolution values.",
            "items": {
              "type": "string"
            },
            "title": "Resolutions",
            "type": "array",
            "x-description-zh": "支持的分辨率选项。"
          },
          "returns_last_frame": {
            "description": "Whether the model can return a last-frame asset.",
            "title": "Returns Last Frame",
            "type": "boolean",
            "x-description-zh": "模型是否可返回末帧资产。"
          },
          "supports_first_frame": {
            "description": "Whether a first-frame input is supported.",
            "title": "Supports First Frame",
            "type": "boolean",
            "x-description-zh": "是否支持首帧输入。"
          },
          "supports_last_frame": {
            "description": "Whether a last-frame input is supported.",
            "title": "Supports Last Frame",
            "type": "boolean",
            "x-description-zh": "是否支持尾帧输入。"
          },
          "supports_negative_prompt": {
            "description": "Whether negative_prompt is supported.",
            "title": "Supports Negative Prompt",
            "type": "boolean",
            "x-description-zh": "是否支持负向提示词。"
          },
          "supports_reference_images": {
            "description": "Whether reference-image mode is supported.",
            "title": "Supports Reference Images",
            "type": "boolean",
            "x-description-zh": "是否支持参考图模式。"
          },
          "supports_seed": {
            "description": "Whether seed is supported.",
            "title": "Supports Seed",
            "type": "boolean",
            "x-description-zh": "是否支持 seed。"
          },
          "supports_watermark": {
            "description": "Whether the watermark setting is supported.",
            "title": "Supports Watermark",
            "type": "boolean",
            "x-description-zh": "是否支持水印设置。"
          }
        },
        "required": [
          "id",
          "provider",
          "model",
          "label",
          "modes",
          "durations",
          "resolutions",
          "ratios",
          "default_duration_seconds",
          "default_resolution",
          "default_ratio",
          "supports_seed",
          "supports_watermark",
          "supports_first_frame",
          "supports_last_frame",
          "supports_negative_prompt",
          "supports_reference_images",
          "max_reference_images",
          "reference_image_duration_seconds",
          "requires_prompt",
          "returns_last_frame",
          "aspect_ratio_mode"
        ],
        "title": "ModelCapabilities",
        "type": "object"
      },
      "ModelsResponse": {
        "additionalProperties": false,
        "properties": {
          "data": {
            "description": "Currently enabled models; do not hard-code this list in a client.",
            "items": {
              "$ref": "#/components/schemas/ModelCapabilities"
            },
            "title": "Data",
            "type": "array",
            "x-description-zh": "当前启用的模型，客户端不要写死此清单。"
          },
          "object": {
            "const": "list",
            "default": "list",
            "title": "Object",
            "type": "string"
          }
        },
        "required": [
          "data"
        ],
        "title": "ModelsResponse",
        "type": "object"
      },
      "QuoteResponse": {
        "additionalProperties": false,
        "properties": {
          "breakdown": {
            "additionalProperties": true,
            "default": {},
            "description": "Public cost components; use credits as the quoted total.",
            "title": "Breakdown",
            "type": "object",
            "x-description-zh": "公开费用组成，以 credits 为报价总额。"
          },
          "credits": {
            "description": "Current estimated credits. No price lock or spend authorization; creation recalculates the quote.",
            "title": "Credits",
            "type": "integer",
            "x-description-zh": "当前预计积分，不锁价也不构成支出授权；创建时会重新报价。"
          },
          "object": {
            "const": "quote",
            "default": "quote",
            "title": "Object",
            "type": "string"
          }
        },
        "required": [
          "credits"
        ],
        "title": "QuoteResponse",
        "type": "object"
      },
      "Selection": {
        "additionalProperties": false,
        "properties": {
          "duration_seconds": {
            "anyOf": [
              {
                "exclusiveMinimum": 0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Required when mode=range; positive interval length in seconds.",
            "title": "Duration Seconds",
            "x-description-zh": "mode=range 时必填，选段时长秒数必须为正。"
          },
          "mode": {
            "default": "full",
            "description": "full uses the complete source; range requires duration_seconds.",
            "enum": [
              "full",
              "range"
            ],
            "title": "Mode",
            "type": "string",
            "x-description-zh": "full 使用完整来源；range 必须提供 duration_seconds。"
          },
          "start_seconds": {
            "default": 0.0,
            "description": "Range start in seconds from the source beginning.",
            "minimum": 0,
            "title": "Start Seconds",
            "type": "number",
            "x-description-zh": "相对源视频起点的选段开始秒数。"
          }
        },
        "title": "Selection",
        "type": "object"
      },
      "TaskError": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "description": "Machine-readable task error code.",
            "title": "Code",
            "type": "string",
            "x-description-zh": "供程序识别的任务错误码。"
          },
          "message": {
            "description": "Human-readable summary, not a stable branching key.",
            "title": "Message",
            "type": "string",
            "x-description-zh": "人类可读说明，不应作为稳定分支条件。"
          },
          "retryable": {
            "default": false,
            "description": "Whether retry may help; inspect partial outputs before creating a new paid task.",
            "title": "Retryable",
            "type": "boolean",
            "x-description-zh": "重试是否可能有帮助；新建付费任务前先检查部分产物。"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "title": "TaskError",
        "type": "object"
      },
      "TaskListResponse": {
        "additionalProperties": false,
        "properties": {
          "data": {
            "description": "Owned tasks in this page.",
            "items": {
              "$ref": "#/components/schemas/TaskResponse"
            },
            "title": "Data",
            "type": "array",
            "x-description-zh": "当前页中归属自己的任务。"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Opaque next-page cursor; null means no next page. Pass it unchanged.",
            "title": "Next Cursor",
            "x-description-zh": "不透明的下一页游标，null 表示无下一页，使用时原样传回。"
          },
          "object": {
            "const": "list",
            "default": "list",
            "title": "Object",
            "type": "string"
          }
        },
        "required": [
          "data"
        ],
        "title": "TaskListResponse",
        "type": "object"
      },
      "TaskResponse": {
        "additionalProperties": false,
        "properties": {
          "created_at": {
            "description": "UTC acceptance timestamp.",
            "format": "date-time",
            "title": "Created At",
            "type": "string",
            "x-description-zh": "任务被接受的 UTC 时间。"
          },
          "credits": {
            "$ref": "#/components/schemas/CreditUsage",
            "description": "Quoted, reserved, and charged credit states.",
            "x-description-zh": "报价、预占及已扣积分状态。"
          },
          "error": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TaskError"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Task failure details, independently of any usable outputs.",
            "x-description-zh": "任务失败信息，与是否存在可用产物分别判断。"
          },
          "finished_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "UTC terminal timestamp when known.",
            "title": "Finished At",
            "x-description-zh": "已知时返回 UTC 终态时间。"
          },
          "id": {
            "description": "Persist this task ID immediately after create; poll it instead of creating again.",
            "format": "uuid",
            "title": "Id",
            "type": "string",
            "x-description-zh": "创建后立即保存任务 ID，通过它轮询，不要再次创建。"
          },
          "metadata": {
            "additionalProperties": true,
            "default": {},
            "description": "Caller-provided metadata.",
            "title": "Metadata",
            "type": "object",
            "x-description-zh": "调用方提供的元数据。"
          },
          "normalized_input": {
            "additionalProperties": true,
            "default": {},
            "description": "Normalized public input; may contain private prompts or image references. Do not log wholesale.",
            "title": "Normalized Input",
            "type": "object",
            "x-description-zh": "规范化公共输入，可能含私有提示词或图片引用，不要整体写入日志。"
          },
          "object": {
            "description": "Public task resource type.",
            "enum": [
              "video_generation",
              "animation_export",
              "animation"
            ],
            "title": "Object",
            "type": "string",
            "x-description-zh": "公共任务资源类型。"
          },
          "outputs": {
            "default": [],
            "description": "Available assets, including partial outputs on failed/cancelled tasks. Always inspect them at a terminal state.",
            "items": {
              "$ref": "#/components/schemas/AssetResponse"
            },
            "title": "Outputs",
            "type": "array",
            "x-description-zh": "可用资产，失败或取消也可能有部分产物；所有终态都应检查。"
          },
          "progress": {
            "description": "Fraction from 0 to 1, not a completion-time estimate.",
            "maximum": 1,
            "minimum": 0,
            "title": "Progress",
            "type": "number",
            "x-description-zh": "0 至 1 的进度值，不代表精确完成时间。"
          },
          "stage": {
            "anyOf": [
              {
                "enum": [
                  "queued",
                  "video_generation",
                  "animation_export",
                  "completed"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Current pipeline stage when available.",
            "title": "Stage",
            "x-description-zh": "可用时显示当前流水线阶段。"
          },
          "started_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "UTC production start when known.",
            "title": "Started At",
            "x-description-zh": "已知时返回 UTC 生产开始时间。"
          },
          "status": {
            "description": "succeeded, failed, and cancelled are terminal; cancelling is not terminal.",
            "enum": [
              "queued",
              "running",
              "cancelling",
              "succeeded",
              "failed",
              "cancelled"
            ],
            "title": "Status",
            "type": "string",
            "x-description-zh": "succeeded、failed、cancelled 为终态；cancelling 不是终态。"
          }
        },
        "required": [
          "id",
          "object",
          "status",
          "progress",
          "credits",
          "created_at"
        ],
        "title": "TaskResponse",
        "type": "object"
      },
      "UnityOptions": {
        "additionalProperties": false,
        "properties": {
          "pivot": {
            "const": "bottom_center",
            "default": "bottom_center",
            "description": "Supported Unity sprite pivot.",
            "title": "Pivot",
            "type": "string",
            "x-description-zh": "支持的 Unity 精灵锚点。"
          },
          "pixels_per_unit": {
            "default": 100,
            "description": "Unity texture pixels per world unit.",
            "maximum": 1000,
            "minimum": 1,
            "title": "Pixels Per Unit",
            "type": "integer",
            "x-description-zh": "Unity 每世界单位对应的纹理像素数。"
          }
        },
        "title": "UnityOptions",
        "type": "object"
      },
      "UrlImageInput": {
        "additionalProperties": false,
        "properties": {
          "type": {
            "const": "url",
            "title": "Type",
            "type": "string"
          },
          "url": {
            "description": "Public HTTPS image on port 443, without credentials or fragments. Private networks and unsafe redirects are rejected. Keep bytes stable across retries.",
            "maxLength": 2048,
            "minLength": 9,
            "title": "Url",
            "type": "string",
            "x-description-zh": "公开 HTTPS 图片，443 端口，不带凭据或 fragment；禁止私网和不安全跳转，重试期间保持图片字节稳定。"
          }
        },
        "required": [
          "type",
          "url"
        ],
        "title": "UrlImageInput",
        "type": "object"
      },
      "VideoGenerationCreateRequest": {
        "additionalProperties": false,
        "properties": {
          "input": {
            "$ref": "#/components/schemas/GenerationInput",
            "description": "Images owned by the caller or supplied for this generation.",
            "x-description-zh": "调用方所属或本次提供的生成图片。"
          },
          "metadata": {
            "additionalProperties": true,
            "default": {},
            "description": "Caller metadata: simple string/number/boolean/null values, at most 4 KiB JSON. Do not store secrets.",
            "title": "Metadata",
            "type": "object",
            "x-description-zh": "调用方元数据，仅字符串、数字、布尔或 null；JSON 不超过 4 KiB，不存凭据。"
          },
          "negative_prompt": {
            "default": "",
            "description": "Optional exclusions, only when the model supports negative prompts.",
            "maxLength": 4000,
            "title": "Negative Prompt",
            "type": "string",
            "x-description-zh": "可选负向提示词，仅适用于支持的模型。"
          },
          "prompt": {
            "default": "",
            "description": "Motion instruction; nonempty when the model requires a prompt. Keep private prompts out of logs.",
            "maxLength": 8000,
            "title": "Prompt",
            "type": "string",
            "x-description-zh": "动作提示词；模型要求时不能为空，私有提示词不得写入日志。"
          },
          "video": {
            "$ref": "#/components/schemas/VideoOptions",
            "default": {
              "duration_seconds": null,
              "input_canvas": null,
              "model": null,
              "ratio": null,
              "resolution": null,
              "seed": null,
              "style_preset": null,
              "transparency": {
                "key_color": null,
                "key_selection": "auto",
                "mode": "standard"
              },
              "watermark": null
            },
            "description": "Model-compatible generation settings.",
            "x-description-zh": "符合模型能力的生成设置。"
          }
        },
        "required": [
          "input"
        ],
        "title": "VideoGenerationCreateRequest",
        "type": "object"
      },
      "VideoGenerationQuoteRequest": {
        "additionalProperties": false,
        "properties": {
          "has_last_frame": {
            "default": false,
            "description": "Whether the planned request includes a last frame.",
            "title": "Has Last Frame",
            "type": "boolean",
            "x-description-zh": "计划请求是否包含尾帧。"
          },
          "reference_image_count": {
            "default": 0,
            "description": "Number of additional references, excluding the first frame.",
            "maximum": 8,
            "minimum": 0,
            "title": "Reference Image Count",
            "type": "integer",
            "x-description-zh": "额外参考图数量，不含首帧。"
          },
          "video": {
            "$ref": "#/components/schemas/VideoOptions",
            "default": {
              "duration_seconds": null,
              "input_canvas": null,
              "model": null,
              "ratio": null,
              "resolution": null,
              "seed": null,
              "style_preset": null,
              "transparency": {
                "key_color": null,
                "key_selection": "auto",
                "mode": "standard"
              },
              "watermark": null
            },
            "description": "Generation options to estimate; must match the later create.",
            "x-description-zh": "拟报价的生成选项，应与后续创建一致。"
          }
        },
        "title": "VideoGenerationQuoteRequest",
        "type": "object"
      },
      "VideoOptions": {
        "additionalProperties": false,
        "properties": {
          "duration_seconds": {
            "anyOf": [
              {
                "exclusiveMinimum": 0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Seconds; choose a supported duration for the model and resolution. Omission uses its default.",
            "title": "Duration Seconds",
            "x-description-zh": "秒数，需符合模型与分辨率支持范围；省略时使用模型默认值。"
          },
          "input_canvas": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/InputCanvasOptions"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Optional input framing; omit to keep the source framing.",
            "x-description-zh": "可选输入画布设置；省略时保持来源构图。"
          },
          "model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "provider:model ID from GET /models; omission uses the configured default model.",
            "title": "Model",
            "x-description-zh": "GET /models 返回的 provider:model ID；省略时使用配置的默认模型。"
          },
          "ratio": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Aspect ratio supported by the current model and input mode.",
            "title": "Ratio",
            "x-description-zh": "当前模型与输入模式支持的画幅比例。"
          },
          "resolution": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Resolution value from the live model catalog.",
            "title": "Resolution",
            "x-description-zh": "实时模型目录中的分辨率值。"
          },
          "seed": {
            "anyOf": [
              {
                "maximum": 2147483647,
                "minimum": 0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Optional seed only for models advertising seed support; not a universal determinism guarantee.",
            "title": "Seed",
            "x-description-zh": "仅适用于声明支持 seed 的模型，不保证所有输出确定性。"
          },
          "style_preset": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Optional style preset supported by the selected provider/model.",
            "title": "Style Preset",
            "x-description-zh": "所选供应商或模型支持的可选风格预设。"
          },
          "transparency": {
            "$ref": "#/components/schemas/GenerationTransparency",
            "default": {
              "key_color": null,
              "key_selection": "auto",
              "mode": "standard"
            },
            "description": "Source transparency workflow; transparent exports require alpha_key.",
            "x-description-zh": "来源透明流程；透明导出要求 alpha_key。"
          },
          "watermark": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Optional watermark setting; check the model capability.",
            "title": "Watermark",
            "x-description-zh": "可选水印设置，需检查模型能力。"
          }
        },
        "title": "VideoOptions",
        "type": "object"
      }
    },
    "securitySchemes": {
      "AnimGenAPIKey": {
        "bearerFormat": "ag_live_…",
        "description": "Server-side API key created in the AnimGen developer center.",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "externalDocs": {
    "description": "Guides and safe workflow examples",
    "url": "https://animgen.com/docs/en/api/quickstart"
  },
  "info": {
    "description": "Create AI animation videos and game-ready animation assets. A verified AnimGen account and server-side API key are required; generation also requires sufficient account credits. Quotes do not lock prices. Poll asynchronous jobs, inspect partial outputs, and keep credentials and signed URLs private. Examples are illustrative, never live model or price guarantees.",
    "title": "AnimGen Public API",
    "version": "1.3.0",
    "x-animgen-path-version": "v1",
    "x-animgen-release-status": "beta",
    "x-description-zh": "公开测试 API，需要已验证的 AnimGen 账户及可信环境中的 API Key；产生费用的生成还需积分充足。报价不锁价；异步轮询并检查部分产物；凭据与签名链接须保密。示例不代表实时模型、价格或限额。"
  },
  "openapi": "3.1.0",
  "paths": {
    "/account": {
      "get": {
        "description": "Read the authenticated account, developer access tier, optional subscription period, key identity/scopes, and account-wide limits. Key secrets are never returned. Subscriptions raise limits but are not required for access. Keep the same key identity when recovering an uncertain idempotent create.",
        "operationId": "account_v1_account_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "api_key": {
                    "id": "00000000-0000-4000-8000-000000000005",
                    "scopes": [
                      "animations:read",
                      "animations:write"
                    ]
                  },
                  "id": "00000000-0000-4000-8000-000000000004",
                  "limits": {
                    "concurrency": 1,
                    "create_per_minute": 3,
                    "other_per_minute": 60,
                    "queue": 3
                  },
                  "object": "account",
                  "plan": {
                    "cancel_at_period_end": false,
                    "code": "registered",
                    "current_period_end": null
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/AccountResponse"
                }
              }
            },
            "description": "Successful public response. Example values are illustrative.",
            "x-description-zh": "成功的公开响应，示例数值仅用于说明。"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_REQUEST",
                    "details": {},
                    "message": "Invalid input; correct the request before retrying.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Invalid input; correct the request before retrying.",
            "x-description-zh": "输入错误，修正请求后再尝试。"
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_API_KEY",
                    "details": {},
                    "message": "Missing, expired, or revoked API key.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Missing, expired, or revoked API key.",
            "x-description-zh": "API Key 缺失、到期或被撤销。"
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_SCOPE",
                    "details": {},
                    "message": "Account eligibility, account status, or key scope does not allow this operation.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account eligibility, account status, or key scope does not allow this operation.",
            "x-description-zh": "账户资格、账户状态或 Key 权限不允许此操作。"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "NOT_FOUND",
                    "details": {},
                    "message": "Resource is unavailable, not owned, or its signature is invalid/expired.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Resource is unavailable, not owned, or its signature is invalid/expired.",
            "x-description-zh": "资源不可用、不属于当前用户，或签名无效/过期。"
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "RATE_LIMITED",
                    "details": {},
                    "message": "Account-wide rate or queue limit; wait for Retry-After.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account-wide rate or queue limit; wait for Retry-After.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "触发账户级速率或队列限制，遵循 Retry-After 等待。"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INTERNAL_ERROR",
                    "details": {},
                    "message": "Internal failure; preserve the task/key and retry only when marked retryable.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Internal failure; preserve the task/key and retry only when marked retryable.",
            "x-description-zh": "内部错误，保留任务 ID 和幂等键，仅标记可重试时重试。"
          },
          "503": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "API_UNAVAILABLE",
                    "details": {},
                    "message": "Service/provider unavailable; retry only when error.retryable is true.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Service/provider unavailable; retry only when error.retryable is true.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "服务或供应商不可用，仅 error.retryable 为 true 时重试。"
          }
        },
        "security": [
          {
            "AnimGenAPIKey": []
          }
        ],
        "summary": "Get account and limits",
        "tags": [
          "account"
        ],
        "x-animgen-doc-slug": "get-account",
        "x-animgen-kind": "account",
        "x-animgen-scopes": [
          "animations:read"
        ],
        "x-animgen-spends-credits": false,
        "x-description-zh": "读取当前账户、开发者访问档位、可选订阅周期、Key 标识及权限和账户级限额，不返回密钥。订阅会提高限额，但不是访问前提。恢复结果不明的幂等创建时，应保持相同 Key 身份。",
        "x-summary-zh": "查询账户与限额"
      }
    },
    "/animation-exports": {
      "get": {
        "description": "List tasks owned by the authenticated account. Pass next_cursor unchanged to retrieve the next page; null ends pagination. Limits and rate budgets are account-wide, not per key.",
        "operationId": "list_animation_exports_v1_animation_exports_get",
        "parameters": [
          {
            "description": "Maximum records in this page, not an account concurrency limit.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 20,
              "maximum": 100,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "x-description-zh": "本页最多记录数，不是账户并发上限。"
          },
          {
            "description": "Opaque next_cursor from the prior page; pass unchanged.",
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            },
            "x-description-zh": "上一页返回的不透明 next_cursor，原样传回。"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "data": [
                    {
                      "created_at": "2026-08-30T00:00:00Z",
                      "credits": {
                        "charged": 0,
                        "held": 1,
                        "quoted": 1
                      },
                      "error": null,
                      "finished_at": null,
                      "id": "00000000-0000-4000-8000-000000000002",
                      "metadata": {},
                      "normalized_input": {},
                      "object": "animation_export",
                      "outputs": [],
                      "progress": 0.0,
                      "stage": "queued",
                      "started_at": null,
                      "status": "queued"
                    }
                  ],
                  "next_cursor": null,
                  "object": "list"
                },
                "schema": {
                  "$ref": "#/components/schemas/TaskListResponse"
                }
              }
            },
            "description": "Successful public response. Example values are illustrative.",
            "x-description-zh": "成功的公开响应，示例数值仅用于说明。"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_REQUEST",
                    "details": {},
                    "message": "Invalid input; correct the request before retrying.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Invalid input; correct the request before retrying.",
            "x-description-zh": "输入错误，修正请求后再尝试。"
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_API_KEY",
                    "details": {},
                    "message": "Missing, expired, or revoked API key.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Missing, expired, or revoked API key.",
            "x-description-zh": "API Key 缺失、到期或被撤销。"
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_SCOPE",
                    "details": {},
                    "message": "Account eligibility, account status, or key scope does not allow this operation.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account eligibility, account status, or key scope does not allow this operation.",
            "x-description-zh": "账户资格、账户状态或 Key 权限不允许此操作。"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "NOT_FOUND",
                    "details": {},
                    "message": "Resource is unavailable, not owned, or its signature is invalid/expired.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Resource is unavailable, not owned, or its signature is invalid/expired.",
            "x-description-zh": "资源不可用、不属于当前用户，或签名无效/过期。"
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "RATE_LIMITED",
                    "details": {},
                    "message": "Account-wide rate or queue limit; wait for Retry-After.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account-wide rate or queue limit; wait for Retry-After.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "触发账户级速率或队列限制，遵循 Retry-After 等待。"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INTERNAL_ERROR",
                    "details": {},
                    "message": "Internal failure; preserve the task/key and retry only when marked retryable.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Internal failure; preserve the task/key and retry only when marked retryable.",
            "x-description-zh": "内部错误，保留任务 ID 和幂等键，仅标记可重试时重试。"
          },
          "503": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "API_UNAVAILABLE",
                    "details": {},
                    "message": "Service/provider unavailable; retry only when error.retryable is true.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Service/provider unavailable; retry only when error.retryable is true.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "服务或供应商不可用，仅 error.retryable 为 true 时重试。"
          }
        },
        "security": [
          {
            "AnimGenAPIKey": []
          }
        ],
        "summary": "List animation export tasks",
        "tags": [
          "animation-exports"
        ],
        "x-animgen-doc-slug": "list-animation-exports",
        "x-animgen-kind": "list",
        "x-animgen-scopes": [
          "animations:read"
        ],
        "x-animgen-spends-credits": false,
        "x-description-zh": "列出当前账户所属任务。将 next_cursor 原样传回获取下一页，null 表示结束。并发及限流预算按账户共享，不按 Key 独立计算。",
        "x-summary-zh": "列出动画导出任务"
      },
      "post": {
        "description": "Start a paid asynchronous task. Quote first and obtain user approval. Persist the returned ID; 202 means accepted, not complete. Reuse the same Idempotency-Key, credential identity, and unchanged request after an uncertain response. Creation recalculates price; Public API quotes do not lock it and max_credits/quote_id are not API request fields. Poll using Retry-After and inspect outputs at every terminal state, including failure.",
        "operationId": "create_animation_export_v1_animation_exports_post",
        "parameters": [
          {
            "description": "Persist once per logical operation; reuse with the same credential and unchanged body. Changing credentials changes the deduplication scope.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "maxLength": 200,
              "minLength": 8,
              "type": "string"
            },
            "x-description-zh": "每次逻辑操作生成并保存一次；同一凭据和未修改请求重试时复用，更换凭据会改变去重范围。"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "examples": {
                "illustrative": {
                  "summary": "Replace IDs with owned resources; discover live model settings and quote before spending.",
                  "value": {
                    "export": {
                      "frame_count": 24,
                      "output_formats": [
                        "frames_zip"
                      ],
                      "output_height": 512,
                      "output_width": 512
                    },
                    "selection": {
                      "mode": "full"
                    },
                    "source_video_asset_id": "00000000-0000-4000-8000-000000000003"
                  }
                }
              },
              "schema": {
                "$ref": "#/components/schemas/AnimationExportCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "example": {
                  "created_at": "2026-08-30T00:00:00Z",
                  "credits": {
                    "charged": 0,
                    "held": 1,
                    "quoted": 1
                  },
                  "error": null,
                  "finished_at": null,
                  "id": "00000000-0000-4000-8000-000000000002",
                  "metadata": {},
                  "normalized_input": {},
                  "object": "animation_export",
                  "outputs": [],
                  "progress": 0.0,
                  "stage": "queued",
                  "started_at": null,
                  "status": "queued"
                },
                "schema": {
                  "$ref": "#/components/schemas/TaskResponse"
                }
              }
            },
            "description": "Accepted asynchronously; poll the task ID.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "已接受异步任务，请保存任务 ID 并轮询。"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_REQUEST",
                    "details": {},
                    "message": "Invalid input; correct the request before retrying.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Invalid input; correct the request before retrying.",
            "x-description-zh": "输入错误，修正请求后再尝试。"
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_API_KEY",
                    "details": {},
                    "message": "Missing, expired, or revoked API key.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Missing, expired, or revoked API key.",
            "x-description-zh": "API Key 缺失、到期或被撤销。"
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_CREDITS",
                    "details": {},
                    "message": "Insufficient credits; do not automatically purchase.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Insufficient credits; do not automatically purchase.",
            "x-description-zh": "积分不足，不自动购买。"
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_SCOPE",
                    "details": {},
                    "message": "Account eligibility, account status, or key scope does not allow this operation.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account eligibility, account status, or key scope does not allow this operation.",
            "x-description-zh": "账户资格、账户状态或 Key 权限不允许此操作。"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "NOT_FOUND",
                    "details": {},
                    "message": "Resource is unavailable, not owned, or its signature is invalid/expired.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Resource is unavailable, not owned, or its signature is invalid/expired.",
            "x-description-zh": "资源不可用、不属于当前用户，或签名无效/过期。"
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "IDEMPOTENCY_CONFLICT",
                    "details": {},
                    "message": "Idempotency conflict; only IDEMPOTENCY_IN_PROGRESS is retryable with the original request.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Idempotency conflict; only IDEMPOTENCY_IN_PROGRESS is retryable with the original request.",
            "x-description-zh": "幂等冲突；仅 IDEMPOTENCY_IN_PROGRESS 可复用原请求重试。"
          },
          "413": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "PAYLOAD_TOO_LARGE",
                    "details": {},
                    "message": "Request or decoded image exceeds the configured limit.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Request or decoded image exceeds the configured limit.",
            "x-description-zh": "请求或解码后的图片超过配置限制。"
          },
          "415": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "UNSUPPORTED_MEDIA_TYPE",
                    "details": {},
                    "message": "Use supported image media types.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Use supported image media types.",
            "x-description-zh": "使用支持的图片媒体类型。"
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "IMAGE_DIMENSIONS_TOO_LARGE",
                    "details": {},
                    "message": "Decoded image dimensions exceed the allowed size.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Decoded image dimensions exceed the allowed size.",
            "x-description-zh": "图片解码后尺寸超过限制。"
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "RATE_LIMITED",
                    "details": {},
                    "message": "Account-wide rate or queue limit; wait for Retry-After.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account-wide rate or queue limit; wait for Retry-After.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "触发账户级速率或队列限制，遵循 Retry-After 等待。"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INTERNAL_ERROR",
                    "details": {},
                    "message": "Internal failure; preserve the task/key and retry only when marked retryable.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Internal failure; preserve the task/key and retry only when marked retryable.",
            "x-description-zh": "内部错误，保留任务 ID 和幂等键，仅标记可重试时重试。"
          },
          "503": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "API_UNAVAILABLE",
                    "details": {},
                    "message": "Service/provider unavailable; retry only when error.retryable is true.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Service/provider unavailable; retry only when error.retryable is true.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "服务或供应商不可用，仅 error.retryable 为 true 时重试。"
          }
        },
        "security": [
          {
            "AnimGenAPIKey": []
          }
        ],
        "summary": "Create animation export",
        "tags": [
          "animation-exports"
        ],
        "x-animgen-doc-slug": "create-animation-exports",
        "x-animgen-idempotency": {
          "required": true,
          "retentionSeconds": 86400,
          "scope": [
            "account",
            "operation",
            "credential_identity"
          ]
        },
        "x-animgen-kind": "create",
        "x-animgen-scopes": [
          "animations:write"
        ],
        "x-animgen-spends-credits": true,
        "x-description-zh": "启动付费异步任务。先报价并取得用户批准，立即保存任务 ID；202 仅代表已接受。响应不明时复用同一幂等键、凭据身份与未修改的请求。创建时重新计价；API 报价不锁价，max_credits/quote_id 不是 API 请求字段。遵循 Retry-After 轮询，所有终态（包括失败）都需检查 outputs。",
        "x-summary-zh": "创建动画导出"
      }
    },
    "/animation-exports/quote": {
      "post": {
        "description": "Estimate credits for the intended operation without starting production or charging credits. This is not a price lock or spend authorization. Creation recalculates the current quote; review it before creating. Match the pricing-relevant options to the later request.",
        "operationId": "quote_animation_export_v1_animation_exports_quote_post",
        "requestBody": {
          "content": {
            "application/json": {
              "examples": {
                "illustrative": {
                  "summary": "Replace IDs with owned resources; discover live model settings and quote before spending.",
                  "value": {
                    "export": {
                      "frame_count": 24,
                      "output_formats": [
                        "frames_zip"
                      ],
                      "output_height": 512,
                      "output_width": 512
                    },
                    "selection": {
                      "mode": "full"
                    },
                    "source_video_asset_id": "00000000-0000-4000-8000-000000000003"
                  }
                }
              },
              "schema": {
                "$ref": "#/components/schemas/AnimationExportCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "breakdown": {},
                  "credits": 1,
                  "object": "quote"
                },
                "schema": {
                  "$ref": "#/components/schemas/QuoteResponse"
                }
              }
            },
            "description": "Successful public response. Example values are illustrative.",
            "x-description-zh": "成功的公开响应，示例数值仅用于说明。"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_REQUEST",
                    "details": {},
                    "message": "Invalid input; correct the request before retrying.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Invalid input; correct the request before retrying.",
            "x-description-zh": "输入错误，修正请求后再尝试。"
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_API_KEY",
                    "details": {},
                    "message": "Missing, expired, or revoked API key.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Missing, expired, or revoked API key.",
            "x-description-zh": "API Key 缺失、到期或被撤销。"
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_CREDITS",
                    "details": {},
                    "message": "Insufficient credits; do not automatically purchase.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Insufficient credits; do not automatically purchase.",
            "x-description-zh": "积分不足，不自动购买。"
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_SCOPE",
                    "details": {},
                    "message": "Account eligibility, account status, or key scope does not allow this operation.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account eligibility, account status, or key scope does not allow this operation.",
            "x-description-zh": "账户资格、账户状态或 Key 权限不允许此操作。"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "NOT_FOUND",
                    "details": {},
                    "message": "Resource is unavailable, not owned, or its signature is invalid/expired.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Resource is unavailable, not owned, or its signature is invalid/expired.",
            "x-description-zh": "资源不可用、不属于当前用户，或签名无效/过期。"
          },
          "413": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "PAYLOAD_TOO_LARGE",
                    "details": {},
                    "message": "Request or decoded image exceeds the configured limit.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Request or decoded image exceeds the configured limit.",
            "x-description-zh": "请求或解码后的图片超过配置限制。"
          },
          "415": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "UNSUPPORTED_MEDIA_TYPE",
                    "details": {},
                    "message": "Use supported image media types.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Use supported image media types.",
            "x-description-zh": "使用支持的图片媒体类型。"
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "IMAGE_DIMENSIONS_TOO_LARGE",
                    "details": {},
                    "message": "Decoded image dimensions exceed the allowed size.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Decoded image dimensions exceed the allowed size.",
            "x-description-zh": "图片解码后尺寸超过限制。"
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "RATE_LIMITED",
                    "details": {},
                    "message": "Account-wide rate or queue limit; wait for Retry-After.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account-wide rate or queue limit; wait for Retry-After.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "触发账户级速率或队列限制，遵循 Retry-After 等待。"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INTERNAL_ERROR",
                    "details": {},
                    "message": "Internal failure; preserve the task/key and retry only when marked retryable.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Internal failure; preserve the task/key and retry only when marked retryable.",
            "x-description-zh": "内部错误，保留任务 ID 和幂等键，仅标记可重试时重试。"
          },
          "503": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "API_UNAVAILABLE",
                    "details": {},
                    "message": "Service/provider unavailable; retry only when error.retryable is true.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Service/provider unavailable; retry only when error.retryable is true.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "服务或供应商不可用，仅 error.retryable 为 true 时重试。"
          }
        },
        "security": [
          {
            "AnimGenAPIKey": []
          }
        ],
        "summary": "Quote animation export",
        "tags": [
          "animation-exports"
        ],
        "x-animgen-doc-slug": "quote-animation-exports",
        "x-animgen-kind": "quote",
        "x-animgen-scopes": [
          "animations:write"
        ],
        "x-animgen-spends-credits": false,
        "x-description-zh": "为计划操作估算积分，不启动生产也不扣费。此报价不锁价、不构成支出批准；创建时重新计算，应先确认报价，并保持影响价格的选项与后续请求一致。",
        "x-summary-zh": "动画导出报价"
      }
    },
    "/animation-exports/{job_id}": {
      "get": {
        "description": "Read an owned task. Respect Retry-After and use a bounded polling deadline. queued, running, and cancelling are nonterminal; succeeded, failed, and cancelled are terminal. A later-stage failure can leave usable outputs. Progress is not a time estimate.",
        "operationId": "get_animation_export_v1_animation_exports__job_id__get",
        "parameters": [
          {
            "description": "Owned public resource UUID; task, asset, and file IDs are not interchangeable.",
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Job Id",
              "type": "string"
            },
            "x-description-zh": "所属公共资源 UUID；任务、资产、文件 ID 不能互换。"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "created_at": "2026-08-30T00:00:00Z",
                  "credits": {
                    "charged": 0,
                    "held": 1,
                    "quoted": 1
                  },
                  "error": null,
                  "finished_at": null,
                  "id": "00000000-0000-4000-8000-000000000002",
                  "metadata": {},
                  "normalized_input": {},
                  "object": "animation_export",
                  "outputs": [
                    {
                      "byte_size": 1024,
                      "created_at": "2026-08-30T00:00:00Z",
                      "download_expires_at": "2026-08-30T01:00:00Z",
                      "download_url": "https://downloads.example.invalid/illustrative-asset",
                      "format": "clip_video",
                      "id": "00000000-0000-4000-8000-000000000003",
                      "mime_type": "video/mp4",
                      "object": "asset"
                    }
                  ],
                  "progress": 1.0,
                  "stage": "completed",
                  "started_at": null,
                  "status": "succeeded"
                },
                "schema": {
                  "$ref": "#/components/schemas/TaskResponse"
                }
              }
            },
            "description": "Successful public response. Example values are illustrative.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "成功的公开响应，示例数值仅用于说明。"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_REQUEST",
                    "details": {},
                    "message": "Invalid input; correct the request before retrying.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Invalid input; correct the request before retrying.",
            "x-description-zh": "输入错误，修正请求后再尝试。"
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_API_KEY",
                    "details": {},
                    "message": "Missing, expired, or revoked API key.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Missing, expired, or revoked API key.",
            "x-description-zh": "API Key 缺失、到期或被撤销。"
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_SCOPE",
                    "details": {},
                    "message": "Account eligibility, account status, or key scope does not allow this operation.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account eligibility, account status, or key scope does not allow this operation.",
            "x-description-zh": "账户资格、账户状态或 Key 权限不允许此操作。"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "NOT_FOUND",
                    "details": {},
                    "message": "Resource is unavailable, not owned, or its signature is invalid/expired.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Resource is unavailable, not owned, or its signature is invalid/expired.",
            "x-description-zh": "资源不可用、不属于当前用户，或签名无效/过期。"
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "RATE_LIMITED",
                    "details": {},
                    "message": "Account-wide rate or queue limit; wait for Retry-After.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account-wide rate or queue limit; wait for Retry-After.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "触发账户级速率或队列限制，遵循 Retry-After 等待。"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INTERNAL_ERROR",
                    "details": {},
                    "message": "Internal failure; preserve the task/key and retry only when marked retryable.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Internal failure; preserve the task/key and retry only when marked retryable.",
            "x-description-zh": "内部错误，保留任务 ID 和幂等键，仅标记可重试时重试。"
          },
          "503": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "API_UNAVAILABLE",
                    "details": {},
                    "message": "Service/provider unavailable; retry only when error.retryable is true.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Service/provider unavailable; retry only when error.retryable is true.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "服务或供应商不可用，仅 error.retryable 为 true 时重试。"
          }
        },
        "security": [
          {
            "AnimGenAPIKey": []
          }
        ],
        "summary": "Get animation export",
        "tags": [
          "animation-exports"
        ],
        "x-animgen-doc-slug": "get-animation-exports",
        "x-animgen-kind": "read",
        "x-animgen-scopes": [
          "animations:read"
        ],
        "x-animgen-spends-credits": false,
        "x-description-zh": "读取所属任务。遵循 Retry-After 并设置轮询截止时间。queued、running、cancelling 非终态；succeeded、failed、cancelled 为终态。后续阶段失败仍可能有可用产物，进度不代表精确时间。",
        "x-summary-zh": "查询动画导出"
      }
    },
    "/animation-exports/{job_id}/cancel": {
      "post": {
        "description": "Request best-effort cancellation of an owned task. The result may still be nonterminal; continue polling. Completed work can remain charged, unspent holds may be released, and earlier outputs may survive. Do not promise a full refund.",
        "operationId": "cancel_animation_export_v1_animation_exports__job_id__cancel_post",
        "parameters": [
          {
            "description": "Owned public resource UUID; task, asset, and file IDs are not interchangeable.",
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Job Id",
              "type": "string"
            },
            "x-description-zh": "所属公共资源 UUID；任务、资产、文件 ID 不能互换。"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "created_at": "2026-08-30T00:00:00Z",
                  "credits": {
                    "charged": 0,
                    "held": 1,
                    "quoted": 1
                  },
                  "error": null,
                  "finished_at": null,
                  "id": "00000000-0000-4000-8000-000000000002",
                  "metadata": {},
                  "normalized_input": {},
                  "object": "animation_export",
                  "outputs": [],
                  "progress": 0.0,
                  "stage": "queued",
                  "started_at": null,
                  "status": "cancelling"
                },
                "schema": {
                  "$ref": "#/components/schemas/TaskResponse"
                }
              }
            },
            "description": "Successful public response. Example values are illustrative.",
            "x-description-zh": "成功的公开响应，示例数值仅用于说明。"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_REQUEST",
                    "details": {},
                    "message": "Invalid input; correct the request before retrying.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Invalid input; correct the request before retrying.",
            "x-description-zh": "输入错误，修正请求后再尝试。"
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_API_KEY",
                    "details": {},
                    "message": "Missing, expired, or revoked API key.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Missing, expired, or revoked API key.",
            "x-description-zh": "API Key 缺失、到期或被撤销。"
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_SCOPE",
                    "details": {},
                    "message": "Account eligibility, account status, or key scope does not allow this operation.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account eligibility, account status, or key scope does not allow this operation.",
            "x-description-zh": "账户资格、账户状态或 Key 权限不允许此操作。"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "NOT_FOUND",
                    "details": {},
                    "message": "Resource is unavailable, not owned, or its signature is invalid/expired.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Resource is unavailable, not owned, or its signature is invalid/expired.",
            "x-description-zh": "资源不可用、不属于当前用户，或签名无效/过期。"
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "RATE_LIMITED",
                    "details": {},
                    "message": "Account-wide rate or queue limit; wait for Retry-After.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account-wide rate or queue limit; wait for Retry-After.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "触发账户级速率或队列限制，遵循 Retry-After 等待。"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INTERNAL_ERROR",
                    "details": {},
                    "message": "Internal failure; preserve the task/key and retry only when marked retryable.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Internal failure; preserve the task/key and retry only when marked retryable.",
            "x-description-zh": "内部错误，保留任务 ID 和幂等键，仅标记可重试时重试。"
          },
          "503": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "API_UNAVAILABLE",
                    "details": {},
                    "message": "Service/provider unavailable; retry only when error.retryable is true.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Service/provider unavailable; retry only when error.retryable is true.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "服务或供应商不可用，仅 error.retryable 为 true 时重试。"
          }
        },
        "security": [
          {
            "AnimGenAPIKey": []
          }
        ],
        "summary": "Cancel animation export",
        "tags": [
          "animation-exports"
        ],
        "x-animgen-doc-slug": "cancel-animation-exports",
        "x-animgen-kind": "cancel",
        "x-animgen-scopes": [
          "animations:write"
        ],
        "x-animgen-spends-credits": false,
        "x-description-zh": "尽力取消所属任务，返回仍可能是非终态，应继续轮询。已完成工作可能保留扣费，未消耗预占可释放，先前产物可能保留；不保证全额退款。",
        "x-summary-zh": "取消动画导出"
      }
    },
    "/animations": {
      "get": {
        "description": "List tasks owned by the authenticated account. Pass next_cursor unchanged to retrieve the next page; null ends pagination. Limits and rate budgets are account-wide, not per key.",
        "operationId": "list_one_click_animations_v1_animations_get",
        "parameters": [
          {
            "description": "Maximum records in this page, not an account concurrency limit.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 20,
              "maximum": 100,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "x-description-zh": "本页最多记录数，不是账户并发上限。"
          },
          {
            "description": "Opaque next_cursor from the prior page; pass unchanged.",
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            },
            "x-description-zh": "上一页返回的不透明 next_cursor，原样传回。"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "data": [
                    {
                      "created_at": "2026-08-30T00:00:00Z",
                      "credits": {
                        "charged": 0,
                        "held": 1,
                        "quoted": 1
                      },
                      "error": null,
                      "finished_at": null,
                      "id": "00000000-0000-4000-8000-000000000002",
                      "metadata": {},
                      "normalized_input": {},
                      "object": "animation",
                      "outputs": [],
                      "progress": 0.0,
                      "stage": "queued",
                      "started_at": null,
                      "status": "queued"
                    }
                  ],
                  "next_cursor": null,
                  "object": "list"
                },
                "schema": {
                  "$ref": "#/components/schemas/TaskListResponse"
                }
              }
            },
            "description": "Successful public response. Example values are illustrative.",
            "x-description-zh": "成功的公开响应，示例数值仅用于说明。"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_REQUEST",
                    "details": {},
                    "message": "Invalid input; correct the request before retrying.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Invalid input; correct the request before retrying.",
            "x-description-zh": "输入错误，修正请求后再尝试。"
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_API_KEY",
                    "details": {},
                    "message": "Missing, expired, or revoked API key.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Missing, expired, or revoked API key.",
            "x-description-zh": "API Key 缺失、到期或被撤销。"
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_SCOPE",
                    "details": {},
                    "message": "Account eligibility, account status, or key scope does not allow this operation.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account eligibility, account status, or key scope does not allow this operation.",
            "x-description-zh": "账户资格、账户状态或 Key 权限不允许此操作。"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "NOT_FOUND",
                    "details": {},
                    "message": "Resource is unavailable, not owned, or its signature is invalid/expired.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Resource is unavailable, not owned, or its signature is invalid/expired.",
            "x-description-zh": "资源不可用、不属于当前用户，或签名无效/过期。"
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "RATE_LIMITED",
                    "details": {},
                    "message": "Account-wide rate or queue limit; wait for Retry-After.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account-wide rate or queue limit; wait for Retry-After.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "触发账户级速率或队列限制，遵循 Retry-After 等待。"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INTERNAL_ERROR",
                    "details": {},
                    "message": "Internal failure; preserve the task/key and retry only when marked retryable.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Internal failure; preserve the task/key and retry only when marked retryable.",
            "x-description-zh": "内部错误，保留任务 ID 和幂等键，仅标记可重试时重试。"
          },
          "503": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "API_UNAVAILABLE",
                    "details": {},
                    "message": "Service/provider unavailable; retry only when error.retryable is true.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Service/provider unavailable; retry only when error.retryable is true.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "服务或供应商不可用，仅 error.retryable 为 true 时重试。"
          }
        },
        "security": [
          {
            "AnimGenAPIKey": []
          }
        ],
        "summary": "List animation tasks",
        "tags": [
          "animations"
        ],
        "x-animgen-doc-slug": "list-animations",
        "x-animgen-kind": "list",
        "x-animgen-scopes": [
          "animations:read"
        ],
        "x-animgen-spends-credits": false,
        "x-description-zh": "列出当前账户所属任务。将 next_cursor 原样传回获取下一页，null 表示结束。并发及限流预算按账户共享，不按 Key 独立计算。",
        "x-summary-zh": "列出一键动画任务"
      },
      "post": {
        "description": "Start a paid asynchronous task. Quote first and obtain user approval. Persist the returned ID; 202 means accepted, not complete. Reuse the same Idempotency-Key, credential identity, and unchanged request after an uncertain response. Creation recalculates price; Public API quotes do not lock it and max_credits/quote_id are not API request fields. Poll using Retry-After and inspect outputs at every terminal state, including failure.",
        "operationId": "create_one_click_animation_v1_animations_post",
        "parameters": [
          {
            "description": "Persist once per logical operation; reuse with the same credential and unchanged body. Changing credentials changes the deduplication scope.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "maxLength": 200,
              "minLength": 8,
              "type": "string"
            },
            "x-description-zh": "每次逻辑操作生成并保存一次；同一凭据和未修改请求重试时复用，更换凭据会改变去重范围。"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "examples": {
                "illustrative": {
                  "summary": "Replace IDs with owned resources; discover live model settings and quote before spending.",
                  "value": {
                    "export": {
                      "frame_count": 24,
                      "output_formats": [
                        "frames_zip"
                      ],
                      "output_height": 512,
                      "output_width": 512
                    },
                    "input": {
                      "first_frame": {
                        "file_id": "00000000-0000-4000-8000-000000000001",
                        "type": "file"
                      }
                    },
                    "prompt": "A character runs in place, side view, fixed camera.",
                    "selection": {
                      "mode": "full"
                    }
                  }
                }
              },
              "schema": {
                "$ref": "#/components/schemas/AnimationCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "example": {
                  "created_at": "2026-08-30T00:00:00Z",
                  "credits": {
                    "charged": 0,
                    "held": 1,
                    "quoted": 1
                  },
                  "error": null,
                  "finished_at": null,
                  "id": "00000000-0000-4000-8000-000000000002",
                  "metadata": {},
                  "normalized_input": {},
                  "object": "animation",
                  "outputs": [],
                  "progress": 0.0,
                  "stage": "queued",
                  "started_at": null,
                  "status": "queued"
                },
                "schema": {
                  "$ref": "#/components/schemas/TaskResponse"
                }
              }
            },
            "description": "Accepted asynchronously; poll the task ID.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "已接受异步任务，请保存任务 ID 并轮询。"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_REQUEST",
                    "details": {},
                    "message": "Invalid input; correct the request before retrying.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Invalid input; correct the request before retrying.",
            "x-description-zh": "输入错误，修正请求后再尝试。"
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_API_KEY",
                    "details": {},
                    "message": "Missing, expired, or revoked API key.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Missing, expired, or revoked API key.",
            "x-description-zh": "API Key 缺失、到期或被撤销。"
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_CREDITS",
                    "details": {},
                    "message": "Insufficient credits; do not automatically purchase.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Insufficient credits; do not automatically purchase.",
            "x-description-zh": "积分不足，不自动购买。"
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_SCOPE",
                    "details": {},
                    "message": "Account eligibility, account status, or key scope does not allow this operation.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account eligibility, account status, or key scope does not allow this operation.",
            "x-description-zh": "账户资格、账户状态或 Key 权限不允许此操作。"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "NOT_FOUND",
                    "details": {},
                    "message": "Resource is unavailable, not owned, or its signature is invalid/expired.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Resource is unavailable, not owned, or its signature is invalid/expired.",
            "x-description-zh": "资源不可用、不属于当前用户，或签名无效/过期。"
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "IDEMPOTENCY_CONFLICT",
                    "details": {},
                    "message": "Idempotency conflict; only IDEMPOTENCY_IN_PROGRESS is retryable with the original request.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Idempotency conflict; only IDEMPOTENCY_IN_PROGRESS is retryable with the original request.",
            "x-description-zh": "幂等冲突；仅 IDEMPOTENCY_IN_PROGRESS 可复用原请求重试。"
          },
          "413": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "PAYLOAD_TOO_LARGE",
                    "details": {},
                    "message": "Request or decoded image exceeds the configured limit.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Request or decoded image exceeds the configured limit.",
            "x-description-zh": "请求或解码后的图片超过配置限制。"
          },
          "415": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "UNSUPPORTED_MEDIA_TYPE",
                    "details": {},
                    "message": "Use supported image media types.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Use supported image media types.",
            "x-description-zh": "使用支持的图片媒体类型。"
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "IMAGE_DIMENSIONS_TOO_LARGE",
                    "details": {},
                    "message": "Decoded image dimensions exceed the allowed size.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Decoded image dimensions exceed the allowed size.",
            "x-description-zh": "图片解码后尺寸超过限制。"
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "RATE_LIMITED",
                    "details": {},
                    "message": "Account-wide rate or queue limit; wait for Retry-After.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account-wide rate or queue limit; wait for Retry-After.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "触发账户级速率或队列限制，遵循 Retry-After 等待。"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INTERNAL_ERROR",
                    "details": {},
                    "message": "Internal failure; preserve the task/key and retry only when marked retryable.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Internal failure; preserve the task/key and retry only when marked retryable.",
            "x-description-zh": "内部错误，保留任务 ID 和幂等键，仅标记可重试时重试。"
          },
          "503": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "API_UNAVAILABLE",
                    "details": {},
                    "message": "Service/provider unavailable; retry only when error.retryable is true.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Service/provider unavailable; retry only when error.retryable is true.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "服务或供应商不可用，仅 error.retryable 为 true 时重试。"
          }
        },
        "security": [
          {
            "AnimGenAPIKey": []
          }
        ],
        "summary": "Create animation",
        "tags": [
          "animations"
        ],
        "x-animgen-doc-slug": "create-animations",
        "x-animgen-idempotency": {
          "required": true,
          "retentionSeconds": 86400,
          "scope": [
            "account",
            "operation",
            "credential_identity"
          ]
        },
        "x-animgen-kind": "create",
        "x-animgen-scopes": [
          "animations:write"
        ],
        "x-animgen-spends-credits": true,
        "x-description-zh": "启动付费异步任务。先报价并取得用户批准，立即保存任务 ID；202 仅代表已接受。响应不明时复用同一幂等键、凭据身份与未修改的请求。创建时重新计价；API 报价不锁价，max_credits/quote_id 不是 API 请求字段。遵循 Retry-After 轮询，所有终态（包括失败）都需检查 outputs。",
        "x-summary-zh": "创建一键动画"
      }
    },
    "/animations/quote": {
      "post": {
        "description": "Estimate credits for the intended operation without starting production or charging credits. This is not a price lock or spend authorization. Creation recalculates the current quote; review it before creating. Match the pricing-relevant options to the later request.",
        "operationId": "quote_one_click_animation_v1_animations_quote_post",
        "requestBody": {
          "content": {
            "application/json": {
              "examples": {
                "illustrative": {
                  "summary": "Replace IDs with owned resources; discover live model settings and quote before spending.",
                  "value": {
                    "export": {
                      "frame_count": 24,
                      "output_formats": [
                        "frames_zip"
                      ],
                      "output_height": 512,
                      "output_width": 512
                    },
                    "input": {
                      "first_frame": {
                        "file_id": "00000000-0000-4000-8000-000000000001",
                        "type": "file"
                      }
                    },
                    "prompt": "A character runs in place, side view, fixed camera.",
                    "selection": {
                      "mode": "full"
                    }
                  }
                }
              },
              "schema": {
                "$ref": "#/components/schemas/AnimationCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "breakdown": {},
                  "credits": 1,
                  "object": "quote"
                },
                "schema": {
                  "$ref": "#/components/schemas/QuoteResponse"
                }
              }
            },
            "description": "Successful public response. Example values are illustrative.",
            "x-description-zh": "成功的公开响应，示例数值仅用于说明。"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_REQUEST",
                    "details": {},
                    "message": "Invalid input; correct the request before retrying.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Invalid input; correct the request before retrying.",
            "x-description-zh": "输入错误，修正请求后再尝试。"
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_API_KEY",
                    "details": {},
                    "message": "Missing, expired, or revoked API key.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Missing, expired, or revoked API key.",
            "x-description-zh": "API Key 缺失、到期或被撤销。"
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_CREDITS",
                    "details": {},
                    "message": "Insufficient credits; do not automatically purchase.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Insufficient credits; do not automatically purchase.",
            "x-description-zh": "积分不足，不自动购买。"
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_SCOPE",
                    "details": {},
                    "message": "Account eligibility, account status, or key scope does not allow this operation.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account eligibility, account status, or key scope does not allow this operation.",
            "x-description-zh": "账户资格、账户状态或 Key 权限不允许此操作。"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "NOT_FOUND",
                    "details": {},
                    "message": "Resource is unavailable, not owned, or its signature is invalid/expired.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Resource is unavailable, not owned, or its signature is invalid/expired.",
            "x-description-zh": "资源不可用、不属于当前用户，或签名无效/过期。"
          },
          "413": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "PAYLOAD_TOO_LARGE",
                    "details": {},
                    "message": "Request or decoded image exceeds the configured limit.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Request or decoded image exceeds the configured limit.",
            "x-description-zh": "请求或解码后的图片超过配置限制。"
          },
          "415": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "UNSUPPORTED_MEDIA_TYPE",
                    "details": {},
                    "message": "Use supported image media types.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Use supported image media types.",
            "x-description-zh": "使用支持的图片媒体类型。"
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "IMAGE_DIMENSIONS_TOO_LARGE",
                    "details": {},
                    "message": "Decoded image dimensions exceed the allowed size.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Decoded image dimensions exceed the allowed size.",
            "x-description-zh": "图片解码后尺寸超过限制。"
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "RATE_LIMITED",
                    "details": {},
                    "message": "Account-wide rate or queue limit; wait for Retry-After.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account-wide rate or queue limit; wait for Retry-After.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "触发账户级速率或队列限制，遵循 Retry-After 等待。"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INTERNAL_ERROR",
                    "details": {},
                    "message": "Internal failure; preserve the task/key and retry only when marked retryable.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Internal failure; preserve the task/key and retry only when marked retryable.",
            "x-description-zh": "内部错误，保留任务 ID 和幂等键，仅标记可重试时重试。"
          },
          "503": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "API_UNAVAILABLE",
                    "details": {},
                    "message": "Service/provider unavailable; retry only when error.retryable is true.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Service/provider unavailable; retry only when error.retryable is true.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "服务或供应商不可用，仅 error.retryable 为 true 时重试。"
          }
        },
        "security": [
          {
            "AnimGenAPIKey": []
          }
        ],
        "summary": "Quote animation",
        "tags": [
          "animations"
        ],
        "x-animgen-doc-slug": "quote-animations",
        "x-animgen-kind": "quote",
        "x-animgen-scopes": [
          "animations:write"
        ],
        "x-animgen-spends-credits": false,
        "x-description-zh": "为计划操作估算积分，不启动生产也不扣费。此报价不锁价、不构成支出批准；创建时重新计算，应先确认报价，并保持影响价格的选项与后续请求一致。",
        "x-summary-zh": "一键动画报价"
      }
    },
    "/animations/{animation_id}": {
      "get": {
        "description": "Read an owned task. Respect Retry-After and use a bounded polling deadline. queued, running, and cancelling are nonterminal; succeeded, failed, and cancelled are terminal. A later-stage failure can leave usable outputs. Progress is not a time estimate.",
        "operationId": "get_one_click_animation_v1_animations__animation_id__get",
        "parameters": [
          {
            "description": "Owned public resource UUID; task, asset, and file IDs are not interchangeable.",
            "in": "path",
            "name": "animation_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Animation Id",
              "type": "string"
            },
            "x-description-zh": "所属公共资源 UUID；任务、资产、文件 ID 不能互换。"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "created_at": "2026-08-30T00:00:00Z",
                  "credits": {
                    "charged": 0,
                    "held": 1,
                    "quoted": 1
                  },
                  "error": {
                    "code": "EXPORT_FAILED",
                    "message": "Illustrative partial result",
                    "retryable": true
                  },
                  "finished_at": null,
                  "id": "00000000-0000-4000-8000-000000000002",
                  "metadata": {},
                  "normalized_input": {},
                  "object": "animation",
                  "outputs": [
                    {
                      "byte_size": 1024,
                      "created_at": "2026-08-30T00:00:00Z",
                      "download_expires_at": "2026-08-30T01:00:00Z",
                      "download_url": "https://downloads.example.invalid/illustrative-asset",
                      "format": "clip_video",
                      "id": "00000000-0000-4000-8000-000000000003",
                      "mime_type": "video/mp4",
                      "object": "asset"
                    }
                  ],
                  "progress": 1.0,
                  "stage": "animation_export",
                  "started_at": null,
                  "status": "failed"
                },
                "schema": {
                  "$ref": "#/components/schemas/TaskResponse"
                }
              }
            },
            "description": "Successful public response. Example values are illustrative.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "成功的公开响应，示例数值仅用于说明。"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_REQUEST",
                    "details": {},
                    "message": "Invalid input; correct the request before retrying.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Invalid input; correct the request before retrying.",
            "x-description-zh": "输入错误，修正请求后再尝试。"
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_API_KEY",
                    "details": {},
                    "message": "Missing, expired, or revoked API key.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Missing, expired, or revoked API key.",
            "x-description-zh": "API Key 缺失、到期或被撤销。"
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_SCOPE",
                    "details": {},
                    "message": "Account eligibility, account status, or key scope does not allow this operation.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account eligibility, account status, or key scope does not allow this operation.",
            "x-description-zh": "账户资格、账户状态或 Key 权限不允许此操作。"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "NOT_FOUND",
                    "details": {},
                    "message": "Resource is unavailable, not owned, or its signature is invalid/expired.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Resource is unavailable, not owned, or its signature is invalid/expired.",
            "x-description-zh": "资源不可用、不属于当前用户，或签名无效/过期。"
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "RATE_LIMITED",
                    "details": {},
                    "message": "Account-wide rate or queue limit; wait for Retry-After.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account-wide rate or queue limit; wait for Retry-After.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "触发账户级速率或队列限制，遵循 Retry-After 等待。"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INTERNAL_ERROR",
                    "details": {},
                    "message": "Internal failure; preserve the task/key and retry only when marked retryable.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Internal failure; preserve the task/key and retry only when marked retryable.",
            "x-description-zh": "内部错误，保留任务 ID 和幂等键，仅标记可重试时重试。"
          },
          "503": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "API_UNAVAILABLE",
                    "details": {},
                    "message": "Service/provider unavailable; retry only when error.retryable is true.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Service/provider unavailable; retry only when error.retryable is true.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "服务或供应商不可用，仅 error.retryable 为 true 时重试。"
          }
        },
        "security": [
          {
            "AnimGenAPIKey": []
          }
        ],
        "summary": "Get animation",
        "tags": [
          "animations"
        ],
        "x-animgen-doc-slug": "get-animations",
        "x-animgen-kind": "read",
        "x-animgen-scopes": [
          "animations:read"
        ],
        "x-animgen-spends-credits": false,
        "x-description-zh": "读取所属任务。遵循 Retry-After 并设置轮询截止时间。queued、running、cancelling 非终态；succeeded、failed、cancelled 为终态。后续阶段失败仍可能有可用产物，进度不代表精确时间。",
        "x-summary-zh": "查询一键动画"
      }
    },
    "/animations/{animation_id}/cancel": {
      "post": {
        "description": "Request best-effort cancellation of an owned task. The result may still be nonterminal; continue polling. Completed work can remain charged, unspent holds may be released, and earlier outputs may survive. Do not promise a full refund.",
        "operationId": "cancel_one_click_animation_v1_animations__animation_id__cancel_post",
        "parameters": [
          {
            "description": "Owned public resource UUID; task, asset, and file IDs are not interchangeable.",
            "in": "path",
            "name": "animation_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Animation Id",
              "type": "string"
            },
            "x-description-zh": "所属公共资源 UUID；任务、资产、文件 ID 不能互换。"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "created_at": "2026-08-30T00:00:00Z",
                  "credits": {
                    "charged": 0,
                    "held": 1,
                    "quoted": 1
                  },
                  "error": null,
                  "finished_at": null,
                  "id": "00000000-0000-4000-8000-000000000002",
                  "metadata": {},
                  "normalized_input": {},
                  "object": "animation",
                  "outputs": [],
                  "progress": 0.0,
                  "stage": "queued",
                  "started_at": null,
                  "status": "cancelling"
                },
                "schema": {
                  "$ref": "#/components/schemas/TaskResponse"
                }
              }
            },
            "description": "Successful public response. Example values are illustrative.",
            "x-description-zh": "成功的公开响应，示例数值仅用于说明。"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_REQUEST",
                    "details": {},
                    "message": "Invalid input; correct the request before retrying.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Invalid input; correct the request before retrying.",
            "x-description-zh": "输入错误，修正请求后再尝试。"
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_API_KEY",
                    "details": {},
                    "message": "Missing, expired, or revoked API key.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Missing, expired, or revoked API key.",
            "x-description-zh": "API Key 缺失、到期或被撤销。"
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_SCOPE",
                    "details": {},
                    "message": "Account eligibility, account status, or key scope does not allow this operation.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account eligibility, account status, or key scope does not allow this operation.",
            "x-description-zh": "账户资格、账户状态或 Key 权限不允许此操作。"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "NOT_FOUND",
                    "details": {},
                    "message": "Resource is unavailable, not owned, or its signature is invalid/expired.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Resource is unavailable, not owned, or its signature is invalid/expired.",
            "x-description-zh": "资源不可用、不属于当前用户，或签名无效/过期。"
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "RATE_LIMITED",
                    "details": {},
                    "message": "Account-wide rate or queue limit; wait for Retry-After.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account-wide rate or queue limit; wait for Retry-After.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "触发账户级速率或队列限制，遵循 Retry-After 等待。"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INTERNAL_ERROR",
                    "details": {},
                    "message": "Internal failure; preserve the task/key and retry only when marked retryable.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Internal failure; preserve the task/key and retry only when marked retryable.",
            "x-description-zh": "内部错误，保留任务 ID 和幂等键，仅标记可重试时重试。"
          },
          "503": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "API_UNAVAILABLE",
                    "details": {},
                    "message": "Service/provider unavailable; retry only when error.retryable is true.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Service/provider unavailable; retry only when error.retryable is true.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "服务或供应商不可用，仅 error.retryable 为 true 时重试。"
          }
        },
        "security": [
          {
            "AnimGenAPIKey": []
          }
        ],
        "summary": "Cancel animation",
        "tags": [
          "animations"
        ],
        "x-animgen-doc-slug": "cancel-animations",
        "x-animgen-kind": "cancel",
        "x-animgen-scopes": [
          "animations:write"
        ],
        "x-animgen-spends-credits": false,
        "x-description-zh": "尽力取消所属任务，返回仍可能是非终态，应继续轮询。已完成工作可能保留扣费，未消耗预占可释放，先前产物可能保留；不保证全额退款。",
        "x-summary-zh": "取消一键动画"
      }
    },
    "/assets/{asset_id}": {
      "get": {
        "description": "Read an owned asset and issue a fresh short-lived signed download URL. Save the asset ID, not its expiring URL. The download itself must not include API credentials, including after storage redirects. Ownership and retention still apply.",
        "operationId": "get_asset_v1_assets__asset_id__get",
        "parameters": [
          {
            "description": "Owned public resource UUID; task, asset, and file IDs are not interchangeable.",
            "in": "path",
            "name": "asset_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Asset Id",
              "type": "string"
            },
            "x-description-zh": "所属公共资源 UUID；任务、资产、文件 ID 不能互换。"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "byte_size": 1024,
                  "created_at": "2026-08-30T00:00:00Z",
                  "download_expires_at": "2026-08-30T01:00:00Z",
                  "download_url": "https://downloads.example.invalid/illustrative-asset",
                  "format": "clip_video",
                  "id": "00000000-0000-4000-8000-000000000003",
                  "mime_type": "video/mp4",
                  "object": "asset"
                },
                "schema": {
                  "$ref": "#/components/schemas/AssetResponse"
                }
              }
            },
            "description": "Successful public response. Example values are illustrative.",
            "x-description-zh": "成功的公开响应，示例数值仅用于说明。"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_REQUEST",
                    "details": {},
                    "message": "Invalid input; correct the request before retrying.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Invalid input; correct the request before retrying.",
            "x-description-zh": "输入错误，修正请求后再尝试。"
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_API_KEY",
                    "details": {},
                    "message": "Missing, expired, or revoked API key.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Missing, expired, or revoked API key.",
            "x-description-zh": "API Key 缺失、到期或被撤销。"
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_SCOPE",
                    "details": {},
                    "message": "Account eligibility, account status, or key scope does not allow this operation.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account eligibility, account status, or key scope does not allow this operation.",
            "x-description-zh": "账户资格、账户状态或 Key 权限不允许此操作。"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "NOT_FOUND",
                    "details": {},
                    "message": "Resource is unavailable, not owned, or its signature is invalid/expired.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Resource is unavailable, not owned, or its signature is invalid/expired.",
            "x-description-zh": "资源不可用、不属于当前用户，或签名无效/过期。"
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "RATE_LIMITED",
                    "details": {},
                    "message": "Account-wide rate or queue limit; wait for Retry-After.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account-wide rate or queue limit; wait for Retry-After.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "触发账户级速率或队列限制，遵循 Retry-After 等待。"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INTERNAL_ERROR",
                    "details": {},
                    "message": "Internal failure; preserve the task/key and retry only when marked retryable.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Internal failure; preserve the task/key and retry only when marked retryable.",
            "x-description-zh": "内部错误，保留任务 ID 和幂等键，仅标记可重试时重试。"
          },
          "503": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "API_UNAVAILABLE",
                    "details": {},
                    "message": "Service/provider unavailable; retry only when error.retryable is true.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Service/provider unavailable; retry only when error.retryable is true.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "服务或供应商不可用，仅 error.retryable 为 true 时重试。"
          }
        },
        "security": [
          {
            "AnimGenAPIKey": []
          }
        ],
        "summary": "Get asset download metadata",
        "tags": [
          "assets"
        ],
        "x-animgen-doc-slug": "get-asset",
        "x-animgen-kind": "asset",
        "x-animgen-scopes": [
          "animations:read"
        ],
        "x-animgen-spends-credits": false,
        "x-description-zh": "读取所属资产并返回新的短期签名下载 URL。持久保存资产 ID，而不是过期链接。实际下载及存储跳转均不应携带 API 凭据，仍受归属和保留策略限制。",
        "x-summary-zh": "查询资产下载信息"
      }
    },
    "/assets/{asset_id}/content": {
      "get": {
        "description": "Download bytes using the complete signed URL returned in an Asset response. No Bearer header is required or recommended. Do not construct signatures or forward credentials to storage. Depending on delivery mode this returns bytes or a 302 redirect. Expired or invalid signatures appear as NOT_FOUND; refresh metadata through GET /assets/{asset_id}.",
        "operationId": "download_asset_v1_assets__asset_id__content_get",
        "parameters": [
          {
            "description": "Owned public resource UUID; task, asset, and file IDs are not interchangeable.",
            "in": "path",
            "name": "asset_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Asset Id",
              "type": "string"
            },
            "x-description-zh": "所属公共资源 UUID；任务、资产、文件 ID 不能互换。"
          },
          {
            "description": "Use the value in the returned signed URL; never invent or log it.",
            "in": "query",
            "name": "expires",
            "required": true,
            "schema": {
              "exclusiveMinimum": 0,
              "title": "Expires",
              "type": "integer"
            },
            "x-description-zh": "使用返回的签名 URL 中的值，不自行构造或记录。"
          },
          {
            "description": "Use the value in the returned signed URL; never invent or log it.",
            "in": "query",
            "name": "signature",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 64,
              "title": "Signature",
              "type": "string"
            },
            "x-description-zh": "使用返回的签名 URL 中的值，不自行构造或记录。"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Asset bytes; Content-Type depends on the asset.",
            "x-description-zh": "资产字节，Content-Type 由具体资产决定。"
          },
          "302": {
            "description": "Redirect to short-lived storage URL; do not forward credentials.",
            "headers": {
              "Location": {
                "description": "Short-lived storage download URL.",
                "schema": {
                  "format": "uri",
                  "type": "string"
                },
                "x-description-zh": "短期有效的存储下载地址。"
              }
            },
            "x-description-zh": "重定向到短期存储地址，不转发凭据。"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_REQUEST",
                    "details": {},
                    "message": "Invalid input; correct the request before retrying.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Invalid input; correct the request before retrying.",
            "x-description-zh": "输入错误，修正请求后再尝试。"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "NOT_FOUND",
                    "details": {},
                    "message": "Resource is unavailable, not owned, or its signature is invalid/expired.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Resource is unavailable, not owned, or its signature is invalid/expired.",
            "x-description-zh": "资源不可用、不属于当前用户，或签名无效/过期。"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INTERNAL_ERROR",
                    "details": {},
                    "message": "Internal failure; preserve the task/key and retry only when marked retryable.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Internal failure; preserve the task/key and retry only when marked retryable.",
            "x-description-zh": "内部错误，保留任务 ID 和幂等键，仅标记可重试时重试。"
          },
          "503": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "API_UNAVAILABLE",
                    "details": {},
                    "message": "Service/provider unavailable; retry only when error.retryable is true.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Service/provider unavailable; retry only when error.retryable is true.",
            "x-description-zh": "服务或供应商不可用，仅 error.retryable 为 true 时重试。"
          }
        },
        "security": [],
        "summary": "Download signed asset",
        "tags": [
          "assets"
        ],
        "x-animgen-doc-slug": "download-asset",
        "x-animgen-kind": "signed",
        "x-animgen-scopes": [],
        "x-animgen-spends-credits": false,
        "x-description-zh": "使用 Asset 响应给出的完整签名 URL 下载字节，无需也不建议携带 Bearer 头。不要自行构造签名，不转发凭据给存储。按交付模式返回文件或 302 跳转。过期或无效签名表现为 NOT_FOUND，应通过 GET /assets/{asset_id} 刷新信息。",
        "x-summary-zh": "通过签名下载资产"
      }
    },
    "/credits/balance": {
      "get": {
        "description": "Read currently available credits shared by web and API use. Verified accounts may access the API, while cost-bearing generation still requires enough credits. Quote the intended operation before spending.",
        "operationId": "credits_balance_v1_credits_balance_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "available": 1,
                  "object": "credit_balance"
                },
                "schema": {
                  "$ref": "#/components/schemas/CreditsBalanceResponse"
                }
              }
            },
            "description": "Successful public response. Example values are illustrative.",
            "x-description-zh": "成功的公开响应，示例数值仅用于说明。"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_REQUEST",
                    "details": {},
                    "message": "Invalid input; correct the request before retrying.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Invalid input; correct the request before retrying.",
            "x-description-zh": "输入错误，修正请求后再尝试。"
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_API_KEY",
                    "details": {},
                    "message": "Missing, expired, or revoked API key.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Missing, expired, or revoked API key.",
            "x-description-zh": "API Key 缺失、到期或被撤销。"
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_SCOPE",
                    "details": {},
                    "message": "Account eligibility, account status, or key scope does not allow this operation.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account eligibility, account status, or key scope does not allow this operation.",
            "x-description-zh": "账户资格、账户状态或 Key 权限不允许此操作。"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "NOT_FOUND",
                    "details": {},
                    "message": "Resource is unavailable, not owned, or its signature is invalid/expired.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Resource is unavailable, not owned, or its signature is invalid/expired.",
            "x-description-zh": "资源不可用、不属于当前用户，或签名无效/过期。"
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "RATE_LIMITED",
                    "details": {},
                    "message": "Account-wide rate or queue limit; wait for Retry-After.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account-wide rate or queue limit; wait for Retry-After.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "触发账户级速率或队列限制，遵循 Retry-After 等待。"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INTERNAL_ERROR",
                    "details": {},
                    "message": "Internal failure; preserve the task/key and retry only when marked retryable.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Internal failure; preserve the task/key and retry only when marked retryable.",
            "x-description-zh": "内部错误，保留任务 ID 和幂等键，仅标记可重试时重试。"
          },
          "503": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "API_UNAVAILABLE",
                    "details": {},
                    "message": "Service/provider unavailable; retry only when error.retryable is true.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Service/provider unavailable; retry only when error.retryable is true.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "服务或供应商不可用，仅 error.retryable 为 true 时重试。"
          }
        },
        "security": [
          {
            "AnimGenAPIKey": []
          }
        ],
        "summary": "Get credit balance",
        "tags": [
          "credits"
        ],
        "x-animgen-doc-slug": "get-credit-balance",
        "x-animgen-kind": "balance",
        "x-animgen-scopes": [
          "animations:read"
        ],
        "x-animgen-spends-credits": false,
        "x-description-zh": "读取 Web 与 API 共用的可用积分。已验证账户可使用 API，但产生费用的生成仍要求积分充足；消费前先为目标操作报价。",
        "x-summary-zh": "查询积分余额"
      }
    },
    "/files": {
      "post": {
        "description": "Upload PNG, JPEG, or WebP as multipart field file and receive a reusable public file ID. The service validates actual image bytes and dimensions. No generation starts. An upload is not an idempotent paid create; avoid blindly replaying it after a transport error.",
        "operationId": "create_file_v1_files_post",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_create_file_v1_files_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "example": {
                  "byte_size": 1024,
                  "created_at": "2026-08-30T00:00:00Z",
                  "height": 512,
                  "id": "00000000-0000-4000-8000-000000000001",
                  "mime_type": "image/png",
                  "object": "file",
                  "sha256": "0000000000000000000000000000000000000000000000000000000000000000",
                  "width": 512
                },
                "schema": {
                  "$ref": "#/components/schemas/FileResponse"
                }
              }
            },
            "description": "Successful public response. Example values are illustrative.",
            "x-description-zh": "成功的公开响应，示例数值仅用于说明。"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_REQUEST",
                    "details": {},
                    "message": "Invalid input; correct the request before retrying.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Invalid input; correct the request before retrying.",
            "x-description-zh": "输入错误，修正请求后再尝试。"
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_API_KEY",
                    "details": {},
                    "message": "Missing, expired, or revoked API key.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Missing, expired, or revoked API key.",
            "x-description-zh": "API Key 缺失、到期或被撤销。"
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_SCOPE",
                    "details": {},
                    "message": "Account eligibility, account status, or key scope does not allow this operation.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account eligibility, account status, or key scope does not allow this operation.",
            "x-description-zh": "账户资格、账户状态或 Key 权限不允许此操作。"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "NOT_FOUND",
                    "details": {},
                    "message": "Resource is unavailable, not owned, or its signature is invalid/expired.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Resource is unavailable, not owned, or its signature is invalid/expired.",
            "x-description-zh": "资源不可用、不属于当前用户，或签名无效/过期。"
          },
          "413": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "PAYLOAD_TOO_LARGE",
                    "details": {},
                    "message": "Request or decoded image exceeds the configured limit.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Request or decoded image exceeds the configured limit.",
            "x-description-zh": "请求或解码后的图片超过配置限制。"
          },
          "415": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "UNSUPPORTED_MEDIA_TYPE",
                    "details": {},
                    "message": "Use supported image media types.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Use supported image media types.",
            "x-description-zh": "使用支持的图片媒体类型。"
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "IMAGE_DIMENSIONS_TOO_LARGE",
                    "details": {},
                    "message": "Decoded image dimensions exceed the allowed size.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Decoded image dimensions exceed the allowed size.",
            "x-description-zh": "图片解码后尺寸超过限制。"
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "RATE_LIMITED",
                    "details": {},
                    "message": "Account-wide rate or queue limit; wait for Retry-After.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account-wide rate or queue limit; wait for Retry-After.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "触发账户级速率或队列限制，遵循 Retry-After 等待。"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INTERNAL_ERROR",
                    "details": {},
                    "message": "Internal failure; preserve the task/key and retry only when marked retryable.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Internal failure; preserve the task/key and retry only when marked retryable.",
            "x-description-zh": "内部错误，保留任务 ID 和幂等键，仅标记可重试时重试。"
          },
          "503": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "API_UNAVAILABLE",
                    "details": {},
                    "message": "Service/provider unavailable; retry only when error.retryable is true.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Service/provider unavailable; retry only when error.retryable is true.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "服务或供应商不可用，仅 error.retryable 为 true 时重试。"
          }
        },
        "security": [
          {
            "AnimGenAPIKey": []
          }
        ],
        "summary": "Upload image",
        "tags": [
          "files"
        ],
        "x-animgen-doc-slug": "upload-file",
        "x-animgen-kind": "upload",
        "x-animgen-scopes": [
          "animations:write"
        ],
        "x-animgen-spends-credits": false,
        "x-description-zh": "用 multipart 的 file 字段上传 PNG、JPEG 或 WebP，返回可复用公共文件 ID。服务校验实际图片字节与尺寸，不启动生成。上传不是幂等付费创建，传输异常后不要盲目重放。",
        "x-summary-zh": "上传图片"
      }
    },
    "/models": {
      "get": {
        "description": "Discover currently enabled model IDs, defaults, and input capabilities. Check modes, per-mode ratios, per-resolution durations, and feature flags before quoting. Do not hard-code model IDs, supported combinations, or prices from documentation examples.",
        "operationId": "list_models_v1_models_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "data": [],
                  "object": "list"
                },
                "schema": {
                  "$ref": "#/components/schemas/ModelsResponse"
                }
              }
            },
            "description": "Successful public response. Example values are illustrative.",
            "x-description-zh": "成功的公开响应，示例数值仅用于说明。"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_REQUEST",
                    "details": {},
                    "message": "Invalid input; correct the request before retrying.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Invalid input; correct the request before retrying.",
            "x-description-zh": "输入错误，修正请求后再尝试。"
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_API_KEY",
                    "details": {},
                    "message": "Missing, expired, or revoked API key.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Missing, expired, or revoked API key.",
            "x-description-zh": "API Key 缺失、到期或被撤销。"
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_SCOPE",
                    "details": {},
                    "message": "Account eligibility, account status, or key scope does not allow this operation.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account eligibility, account status, or key scope does not allow this operation.",
            "x-description-zh": "账户资格、账户状态或 Key 权限不允许此操作。"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "NOT_FOUND",
                    "details": {},
                    "message": "Resource is unavailable, not owned, or its signature is invalid/expired.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Resource is unavailable, not owned, or its signature is invalid/expired.",
            "x-description-zh": "资源不可用、不属于当前用户，或签名无效/过期。"
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "RATE_LIMITED",
                    "details": {},
                    "message": "Account-wide rate or queue limit; wait for Retry-After.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account-wide rate or queue limit; wait for Retry-After.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "触发账户级速率或队列限制，遵循 Retry-After 等待。"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INTERNAL_ERROR",
                    "details": {},
                    "message": "Internal failure; preserve the task/key and retry only when marked retryable.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Internal failure; preserve the task/key and retry only when marked retryable.",
            "x-description-zh": "内部错误，保留任务 ID 和幂等键，仅标记可重试时重试。"
          },
          "503": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "API_UNAVAILABLE",
                    "details": {},
                    "message": "Service/provider unavailable; retry only when error.retryable is true.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Service/provider unavailable; retry only when error.retryable is true.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "服务或供应商不可用，仅 error.retryable 为 true 时重试。"
          }
        },
        "security": [
          {
            "AnimGenAPIKey": []
          }
        ],
        "summary": "List model capabilities",
        "tags": [
          "models"
        ],
        "x-animgen-doc-slug": "list-models",
        "x-animgen-kind": "models",
        "x-animgen-scopes": [
          "animations:read"
        ],
        "x-animgen-spends-credits": false,
        "x-description-zh": "发现当前启用的模型、默认值和输入能力。报价前检查模式、各模式比例、各分辨率时长和能力标志。不要根据文档示例写死模型 ID、参数组合或价格。",
        "x-summary-zh": "查询模型能力"
      }
    },
    "/video-generations": {
      "get": {
        "description": "List tasks owned by the authenticated account. Pass next_cursor unchanged to retrieve the next page; null ends pagination. Limits and rate budgets are account-wide, not per key.",
        "operationId": "list_video_generations_v1_video_generations_get",
        "parameters": [
          {
            "description": "Maximum records in this page, not an account concurrency limit.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 20,
              "maximum": 100,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "x-description-zh": "本页最多记录数，不是账户并发上限。"
          },
          {
            "description": "Opaque next_cursor from the prior page; pass unchanged.",
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            },
            "x-description-zh": "上一页返回的不透明 next_cursor，原样传回。"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "data": [
                    {
                      "created_at": "2026-08-30T00:00:00Z",
                      "credits": {
                        "charged": 0,
                        "held": 1,
                        "quoted": 1
                      },
                      "error": null,
                      "finished_at": null,
                      "id": "00000000-0000-4000-8000-000000000002",
                      "metadata": {},
                      "normalized_input": {},
                      "object": "video_generation",
                      "outputs": [],
                      "progress": 0.0,
                      "stage": "queued",
                      "started_at": null,
                      "status": "queued"
                    }
                  ],
                  "next_cursor": null,
                  "object": "list"
                },
                "schema": {
                  "$ref": "#/components/schemas/TaskListResponse"
                }
              }
            },
            "description": "Successful public response. Example values are illustrative.",
            "x-description-zh": "成功的公开响应，示例数值仅用于说明。"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_REQUEST",
                    "details": {},
                    "message": "Invalid input; correct the request before retrying.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Invalid input; correct the request before retrying.",
            "x-description-zh": "输入错误，修正请求后再尝试。"
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_API_KEY",
                    "details": {},
                    "message": "Missing, expired, or revoked API key.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Missing, expired, or revoked API key.",
            "x-description-zh": "API Key 缺失、到期或被撤销。"
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_SCOPE",
                    "details": {},
                    "message": "Account eligibility, account status, or key scope does not allow this operation.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account eligibility, account status, or key scope does not allow this operation.",
            "x-description-zh": "账户资格、账户状态或 Key 权限不允许此操作。"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "NOT_FOUND",
                    "details": {},
                    "message": "Resource is unavailable, not owned, or its signature is invalid/expired.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Resource is unavailable, not owned, or its signature is invalid/expired.",
            "x-description-zh": "资源不可用、不属于当前用户，或签名无效/过期。"
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "RATE_LIMITED",
                    "details": {},
                    "message": "Account-wide rate or queue limit; wait for Retry-After.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account-wide rate or queue limit; wait for Retry-After.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "触发账户级速率或队列限制，遵循 Retry-After 等待。"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INTERNAL_ERROR",
                    "details": {},
                    "message": "Internal failure; preserve the task/key and retry only when marked retryable.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Internal failure; preserve the task/key and retry only when marked retryable.",
            "x-description-zh": "内部错误，保留任务 ID 和幂等键，仅标记可重试时重试。"
          },
          "503": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "API_UNAVAILABLE",
                    "details": {},
                    "message": "Service/provider unavailable; retry only when error.retryable is true.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Service/provider unavailable; retry only when error.retryable is true.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "服务或供应商不可用，仅 error.retryable 为 true 时重试。"
          }
        },
        "security": [
          {
            "AnimGenAPIKey": []
          }
        ],
        "summary": "List video generation tasks",
        "tags": [
          "video-generations"
        ],
        "x-animgen-doc-slug": "list-video-generations",
        "x-animgen-kind": "list",
        "x-animgen-scopes": [
          "animations:read"
        ],
        "x-animgen-spends-credits": false,
        "x-description-zh": "列出当前账户所属任务。将 next_cursor 原样传回获取下一页，null 表示结束。并发及限流预算按账户共享，不按 Key 独立计算。",
        "x-summary-zh": "列出视频生成任务"
      },
      "post": {
        "description": "Start a paid asynchronous task. Quote first and obtain user approval. Persist the returned ID; 202 means accepted, not complete. Reuse the same Idempotency-Key, credential identity, and unchanged request after an uncertain response. Creation recalculates price; Public API quotes do not lock it and max_credits/quote_id are not API request fields. Poll using Retry-After and inspect outputs at every terminal state, including failure.",
        "operationId": "create_video_generation_v1_video_generations_post",
        "parameters": [
          {
            "description": "Persist once per logical operation; reuse with the same credential and unchanged body. Changing credentials changes the deduplication scope.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "maxLength": 200,
              "minLength": 8,
              "type": "string"
            },
            "x-description-zh": "每次逻辑操作生成并保存一次；同一凭据和未修改请求重试时复用，更换凭据会改变去重范围。"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "examples": {
                "illustrative": {
                  "summary": "Replace IDs with owned resources; discover live model settings and quote before spending.",
                  "value": {
                    "input": {
                      "first_frame": {
                        "file_id": "00000000-0000-4000-8000-000000000001",
                        "type": "file"
                      }
                    },
                    "prompt": "A character runs in place, side view, fixed camera."
                  }
                }
              },
              "schema": {
                "$ref": "#/components/schemas/VideoGenerationCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "example": {
                  "created_at": "2026-08-30T00:00:00Z",
                  "credits": {
                    "charged": 0,
                    "held": 1,
                    "quoted": 1
                  },
                  "error": null,
                  "finished_at": null,
                  "id": "00000000-0000-4000-8000-000000000002",
                  "metadata": {},
                  "normalized_input": {},
                  "object": "video_generation",
                  "outputs": [],
                  "progress": 0.0,
                  "stage": "queued",
                  "started_at": null,
                  "status": "queued"
                },
                "schema": {
                  "$ref": "#/components/schemas/TaskResponse"
                }
              }
            },
            "description": "Accepted asynchronously; poll the task ID.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "已接受异步任务，请保存任务 ID 并轮询。"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_REQUEST",
                    "details": {},
                    "message": "Invalid input; correct the request before retrying.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Invalid input; correct the request before retrying.",
            "x-description-zh": "输入错误，修正请求后再尝试。"
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_API_KEY",
                    "details": {},
                    "message": "Missing, expired, or revoked API key.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Missing, expired, or revoked API key.",
            "x-description-zh": "API Key 缺失、到期或被撤销。"
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_CREDITS",
                    "details": {},
                    "message": "Insufficient credits; do not automatically purchase.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Insufficient credits; do not automatically purchase.",
            "x-description-zh": "积分不足，不自动购买。"
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_SCOPE",
                    "details": {},
                    "message": "Account eligibility, account status, or key scope does not allow this operation.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account eligibility, account status, or key scope does not allow this operation.",
            "x-description-zh": "账户资格、账户状态或 Key 权限不允许此操作。"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "NOT_FOUND",
                    "details": {},
                    "message": "Resource is unavailable, not owned, or its signature is invalid/expired.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Resource is unavailable, not owned, or its signature is invalid/expired.",
            "x-description-zh": "资源不可用、不属于当前用户，或签名无效/过期。"
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "IDEMPOTENCY_CONFLICT",
                    "details": {},
                    "message": "Idempotency conflict; only IDEMPOTENCY_IN_PROGRESS is retryable with the original request.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Idempotency conflict; only IDEMPOTENCY_IN_PROGRESS is retryable with the original request.",
            "x-description-zh": "幂等冲突；仅 IDEMPOTENCY_IN_PROGRESS 可复用原请求重试。"
          },
          "413": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "PAYLOAD_TOO_LARGE",
                    "details": {},
                    "message": "Request or decoded image exceeds the configured limit.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Request or decoded image exceeds the configured limit.",
            "x-description-zh": "请求或解码后的图片超过配置限制。"
          },
          "415": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "UNSUPPORTED_MEDIA_TYPE",
                    "details": {},
                    "message": "Use supported image media types.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Use supported image media types.",
            "x-description-zh": "使用支持的图片媒体类型。"
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "IMAGE_DIMENSIONS_TOO_LARGE",
                    "details": {},
                    "message": "Decoded image dimensions exceed the allowed size.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Decoded image dimensions exceed the allowed size.",
            "x-description-zh": "图片解码后尺寸超过限制。"
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "RATE_LIMITED",
                    "details": {},
                    "message": "Account-wide rate or queue limit; wait for Retry-After.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account-wide rate or queue limit; wait for Retry-After.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "触发账户级速率或队列限制，遵循 Retry-After 等待。"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INTERNAL_ERROR",
                    "details": {},
                    "message": "Internal failure; preserve the task/key and retry only when marked retryable.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Internal failure; preserve the task/key and retry only when marked retryable.",
            "x-description-zh": "内部错误，保留任务 ID 和幂等键，仅标记可重试时重试。"
          },
          "503": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "API_UNAVAILABLE",
                    "details": {},
                    "message": "Service/provider unavailable; retry only when error.retryable is true.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Service/provider unavailable; retry only when error.retryable is true.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "服务或供应商不可用，仅 error.retryable 为 true 时重试。"
          }
        },
        "security": [
          {
            "AnimGenAPIKey": []
          }
        ],
        "summary": "Create video generation",
        "tags": [
          "video-generations"
        ],
        "x-animgen-doc-slug": "create-video-generations",
        "x-animgen-idempotency": {
          "required": true,
          "retentionSeconds": 86400,
          "scope": [
            "account",
            "operation",
            "credential_identity"
          ]
        },
        "x-animgen-kind": "create",
        "x-animgen-scopes": [
          "animations:write"
        ],
        "x-animgen-spends-credits": true,
        "x-description-zh": "启动付费异步任务。先报价并取得用户批准，立即保存任务 ID；202 仅代表已接受。响应不明时复用同一幂等键、凭据身份与未修改的请求。创建时重新计价；API 报价不锁价，max_credits/quote_id 不是 API 请求字段。遵循 Retry-After 轮询，所有终态（包括失败）都需检查 outputs。",
        "x-summary-zh": "创建视频生成"
      }
    },
    "/video-generations/quote": {
      "post": {
        "description": "Estimate credits for the intended operation without starting production or charging credits. This is not a price lock or spend authorization. Creation recalculates the current quote; review it before creating. Match the pricing-relevant options to the later request.",
        "operationId": "quote_video_generation_v1_video_generations_quote_post",
        "requestBody": {
          "content": {
            "application/json": {
              "examples": {
                "illustrative": {
                  "summary": "Replace IDs with owned resources; discover live model settings and quote before spending.",
                  "value": {
                    "has_last_frame": false,
                    "reference_image_count": 0,
                    "video": {}
                  }
                }
              },
              "schema": {
                "$ref": "#/components/schemas/VideoGenerationQuoteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "breakdown": {},
                  "credits": 1,
                  "object": "quote"
                },
                "schema": {
                  "$ref": "#/components/schemas/QuoteResponse"
                }
              }
            },
            "description": "Successful public response. Example values are illustrative.",
            "x-description-zh": "成功的公开响应，示例数值仅用于说明。"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_REQUEST",
                    "details": {},
                    "message": "Invalid input; correct the request before retrying.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Invalid input; correct the request before retrying.",
            "x-description-zh": "输入错误，修正请求后再尝试。"
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_API_KEY",
                    "details": {},
                    "message": "Missing, expired, or revoked API key.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Missing, expired, or revoked API key.",
            "x-description-zh": "API Key 缺失、到期或被撤销。"
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_CREDITS",
                    "details": {},
                    "message": "Insufficient credits; do not automatically purchase.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Insufficient credits; do not automatically purchase.",
            "x-description-zh": "积分不足，不自动购买。"
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_SCOPE",
                    "details": {},
                    "message": "Account eligibility, account status, or key scope does not allow this operation.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account eligibility, account status, or key scope does not allow this operation.",
            "x-description-zh": "账户资格、账户状态或 Key 权限不允许此操作。"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "NOT_FOUND",
                    "details": {},
                    "message": "Resource is unavailable, not owned, or its signature is invalid/expired.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Resource is unavailable, not owned, or its signature is invalid/expired.",
            "x-description-zh": "资源不可用、不属于当前用户，或签名无效/过期。"
          },
          "413": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "PAYLOAD_TOO_LARGE",
                    "details": {},
                    "message": "Request or decoded image exceeds the configured limit.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Request or decoded image exceeds the configured limit.",
            "x-description-zh": "请求或解码后的图片超过配置限制。"
          },
          "415": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "UNSUPPORTED_MEDIA_TYPE",
                    "details": {},
                    "message": "Use supported image media types.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Use supported image media types.",
            "x-description-zh": "使用支持的图片媒体类型。"
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "IMAGE_DIMENSIONS_TOO_LARGE",
                    "details": {},
                    "message": "Decoded image dimensions exceed the allowed size.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Decoded image dimensions exceed the allowed size.",
            "x-description-zh": "图片解码后尺寸超过限制。"
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "RATE_LIMITED",
                    "details": {},
                    "message": "Account-wide rate or queue limit; wait for Retry-After.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account-wide rate or queue limit; wait for Retry-After.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "触发账户级速率或队列限制，遵循 Retry-After 等待。"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INTERNAL_ERROR",
                    "details": {},
                    "message": "Internal failure; preserve the task/key and retry only when marked retryable.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Internal failure; preserve the task/key and retry only when marked retryable.",
            "x-description-zh": "内部错误，保留任务 ID 和幂等键，仅标记可重试时重试。"
          },
          "503": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "API_UNAVAILABLE",
                    "details": {},
                    "message": "Service/provider unavailable; retry only when error.retryable is true.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Service/provider unavailable; retry only when error.retryable is true.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "服务或供应商不可用，仅 error.retryable 为 true 时重试。"
          }
        },
        "security": [
          {
            "AnimGenAPIKey": []
          }
        ],
        "summary": "Quote video generation",
        "tags": [
          "video-generations"
        ],
        "x-animgen-doc-slug": "quote-video-generations",
        "x-animgen-kind": "quote",
        "x-animgen-scopes": [
          "animations:write"
        ],
        "x-animgen-spends-credits": false,
        "x-description-zh": "为计划操作估算积分，不启动生产也不扣费。此报价不锁价、不构成支出批准；创建时重新计算，应先确认报价，并保持影响价格的选项与后续请求一致。",
        "x-summary-zh": "视频生成报价"
      }
    },
    "/video-generations/{job_id}": {
      "get": {
        "description": "Read an owned task. Respect Retry-After and use a bounded polling deadline. queued, running, and cancelling are nonterminal; succeeded, failed, and cancelled are terminal. A later-stage failure can leave usable outputs. Progress is not a time estimate.",
        "operationId": "get_video_generation_v1_video_generations__job_id__get",
        "parameters": [
          {
            "description": "Owned public resource UUID; task, asset, and file IDs are not interchangeable.",
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Job Id",
              "type": "string"
            },
            "x-description-zh": "所属公共资源 UUID；任务、资产、文件 ID 不能互换。"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "created_at": "2026-08-30T00:00:00Z",
                  "credits": {
                    "charged": 0,
                    "held": 1,
                    "quoted": 1
                  },
                  "error": null,
                  "finished_at": null,
                  "id": "00000000-0000-4000-8000-000000000002",
                  "metadata": {},
                  "normalized_input": {},
                  "object": "video_generation",
                  "outputs": [
                    {
                      "byte_size": 1024,
                      "created_at": "2026-08-30T00:00:00Z",
                      "download_expires_at": "2026-08-30T01:00:00Z",
                      "download_url": "https://downloads.example.invalid/illustrative-asset",
                      "format": "clip_video",
                      "id": "00000000-0000-4000-8000-000000000003",
                      "mime_type": "video/mp4",
                      "object": "asset"
                    }
                  ],
                  "progress": 1.0,
                  "stage": "completed",
                  "started_at": null,
                  "status": "succeeded"
                },
                "schema": {
                  "$ref": "#/components/schemas/TaskResponse"
                }
              }
            },
            "description": "Successful public response. Example values are illustrative.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "成功的公开响应，示例数值仅用于说明。"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_REQUEST",
                    "details": {},
                    "message": "Invalid input; correct the request before retrying.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Invalid input; correct the request before retrying.",
            "x-description-zh": "输入错误，修正请求后再尝试。"
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_API_KEY",
                    "details": {},
                    "message": "Missing, expired, or revoked API key.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Missing, expired, or revoked API key.",
            "x-description-zh": "API Key 缺失、到期或被撤销。"
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_SCOPE",
                    "details": {},
                    "message": "Account eligibility, account status, or key scope does not allow this operation.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account eligibility, account status, or key scope does not allow this operation.",
            "x-description-zh": "账户资格、账户状态或 Key 权限不允许此操作。"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "NOT_FOUND",
                    "details": {},
                    "message": "Resource is unavailable, not owned, or its signature is invalid/expired.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Resource is unavailable, not owned, or its signature is invalid/expired.",
            "x-description-zh": "资源不可用、不属于当前用户，或签名无效/过期。"
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "RATE_LIMITED",
                    "details": {},
                    "message": "Account-wide rate or queue limit; wait for Retry-After.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account-wide rate or queue limit; wait for Retry-After.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "触发账户级速率或队列限制，遵循 Retry-After 等待。"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INTERNAL_ERROR",
                    "details": {},
                    "message": "Internal failure; preserve the task/key and retry only when marked retryable.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Internal failure; preserve the task/key and retry only when marked retryable.",
            "x-description-zh": "内部错误，保留任务 ID 和幂等键，仅标记可重试时重试。"
          },
          "503": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "API_UNAVAILABLE",
                    "details": {},
                    "message": "Service/provider unavailable; retry only when error.retryable is true.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Service/provider unavailable; retry only when error.retryable is true.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "服务或供应商不可用，仅 error.retryable 为 true 时重试。"
          }
        },
        "security": [
          {
            "AnimGenAPIKey": []
          }
        ],
        "summary": "Get video generation",
        "tags": [
          "video-generations"
        ],
        "x-animgen-doc-slug": "get-video-generations",
        "x-animgen-kind": "read",
        "x-animgen-scopes": [
          "animations:read"
        ],
        "x-animgen-spends-credits": false,
        "x-description-zh": "读取所属任务。遵循 Retry-After 并设置轮询截止时间。queued、running、cancelling 非终态；succeeded、failed、cancelled 为终态。后续阶段失败仍可能有可用产物，进度不代表精确时间。",
        "x-summary-zh": "查询视频生成"
      }
    },
    "/video-generations/{job_id}/cancel": {
      "post": {
        "description": "Request best-effort cancellation of an owned task. The result may still be nonterminal; continue polling. Completed work can remain charged, unspent holds may be released, and earlier outputs may survive. Do not promise a full refund.",
        "operationId": "cancel_video_generation_v1_video_generations__job_id__cancel_post",
        "parameters": [
          {
            "description": "Owned public resource UUID; task, asset, and file IDs are not interchangeable.",
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Job Id",
              "type": "string"
            },
            "x-description-zh": "所属公共资源 UUID；任务、资产、文件 ID 不能互换。"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "created_at": "2026-08-30T00:00:00Z",
                  "credits": {
                    "charged": 0,
                    "held": 1,
                    "quoted": 1
                  },
                  "error": null,
                  "finished_at": null,
                  "id": "00000000-0000-4000-8000-000000000002",
                  "metadata": {},
                  "normalized_input": {},
                  "object": "video_generation",
                  "outputs": [],
                  "progress": 0.0,
                  "stage": "queued",
                  "started_at": null,
                  "status": "cancelling"
                },
                "schema": {
                  "$ref": "#/components/schemas/TaskResponse"
                }
              }
            },
            "description": "Successful public response. Example values are illustrative.",
            "x-description-zh": "成功的公开响应，示例数值仅用于说明。"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_REQUEST",
                    "details": {},
                    "message": "Invalid input; correct the request before retrying.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Invalid input; correct the request before retrying.",
            "x-description-zh": "输入错误，修正请求后再尝试。"
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INVALID_API_KEY",
                    "details": {},
                    "message": "Missing, expired, or revoked API key.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Missing, expired, or revoked API key.",
            "x-description-zh": "API Key 缺失、到期或被撤销。"
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INSUFFICIENT_SCOPE",
                    "details": {},
                    "message": "Account eligibility, account status, or key scope does not allow this operation.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account eligibility, account status, or key scope does not allow this operation.",
            "x-description-zh": "账户资格、账户状态或 Key 权限不允许此操作。"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "NOT_FOUND",
                    "details": {},
                    "message": "Resource is unavailable, not owned, or its signature is invalid/expired.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Resource is unavailable, not owned, or its signature is invalid/expired.",
            "x-description-zh": "资源不可用、不属于当前用户，或签名无效/过期。"
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "RATE_LIMITED",
                    "details": {},
                    "message": "Account-wide rate or queue limit; wait for Retry-After.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Account-wide rate or queue limit; wait for Retry-After.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "触发账户级速率或队列限制，遵循 Retry-After 等待。"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "INTERNAL_ERROR",
                    "details": {},
                    "message": "Internal failure; preserve the task/key and retry only when marked retryable.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": false
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Internal failure; preserve the task/key and retry only when marked retryable.",
            "x-description-zh": "内部错误，保留任务 ID 和幂等键，仅标记可重试时重试。"
          },
          "503": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "API_UNAVAILABLE",
                    "details": {},
                    "message": "Service/provider unavailable; retry only when error.retryable is true.",
                    "param": null,
                    "request_id": "example-request-id",
                    "retryable": true
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/APIErrorEnvelope"
                }
              }
            },
            "description": "Service/provider unavailable; retry only when error.retryable is true.",
            "headers": {
              "Retry-After": {
                "description": "Suggested wait in seconds; respect the server value and an overall deadline.",
                "example": 5,
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                },
                "x-description-zh": "建议等待秒数，遵循服务值并设置总体截止时间。"
              }
            },
            "x-description-zh": "服务或供应商不可用，仅 error.retryable 为 true 时重试。"
          }
        },
        "security": [
          {
            "AnimGenAPIKey": []
          }
        ],
        "summary": "Cancel video generation",
        "tags": [
          "video-generations"
        ],
        "x-animgen-doc-slug": "cancel-video-generations",
        "x-animgen-kind": "cancel",
        "x-animgen-scopes": [
          "animations:write"
        ],
        "x-animgen-spends-credits": false,
        "x-description-zh": "尽力取消所属任务，返回仍可能是非终态，应继续轮询。已完成工作可能保留扣费，未消耗预占可释放，先前产物可能保留；不保证全额退款。",
        "x-summary-zh": "取消视频生成"
      }
    }
  },
  "servers": [
    {
      "url": "https://api.animgen.com/v1"
    }
  ]
}
