{
  "openapi": "3.1.0",
  "info": {
    "title": "DomoAI Enterprise API",
    "version": "0.15.0",
    "description": "When an organization is in the BANNED state, Open APIs authenticated with a valid API key whose organization is banned return HTTP 403 with error code 4002 and message \"Organization is banned\"."
  },
  "paths": {
    "/v1/video/image2video": {
      "post": {
        "tags": [
          "AI Video"
        ],
        "summary": "Image To Video",
        "operationId": "image_to_video_v1_video_image2video_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateImage2VideoTaskIn"
              },
              "examples": {
                "image_base64_string": {
                  "summary": "image base64 string to video",
                  "value": {
                    "prompt": "1girl, smile",
                    "model": "animate-2.4-faster",
                    "image": {
                      "bytes_base64_encoded": "/9j/4AAQSkZJRgABAQAAAQABAAD/2w..."
                    },
                    "callback_url": "https://example.com/callback",
                    "seconds": 5
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomoOut_TaskOut_"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "callbacks": {
          "task_status_callback": {
            "{$request.body.callback_url}": {
              "post": {
                "summary": "Task Status Callback",
                "operationId": "task_status_callback__request_body_callback_url__post",
                "requestBody": {
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/VideoTaskOut"
                      }
                    }
                  },
                  "required": true
                },
                "responses": {
                  "200": {
                    "description": "Successful Response",
                    "content": {
                      "application/json": {
                        "schema": {}
                      }
                    }
                  },
                  "422": {
                    "description": "Validation Error",
                    "content": {
                      "application/json": {
                        "schema": {
                          "$ref": "#/components/schemas/HTTPValidationError"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/v1/video/text2video": {
      "post": {
        "tags": [
          "AI Video"
        ],
        "summary": "Text To Video",
        "operationId": "text_to_video_v1_video_text2video_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateText2VideoTaskIn"
              },
              "examples": {
                "basic": {
                  "summary": "no reference image url to video",
                  "value": {
                    "prompt": "Close-up of a smiling woman in soft sunlight, gentle breeze in her hair, 4K",
                    "model": "t2v-2.4-faster",
                    "callback_url": "https://example.com/callback",
                    "seconds": 5
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomoOut_TaskOut_"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "callbacks": {
          "task_status_callback": {
            "{$request.body.callback_url}": {
              "post": {
                "summary": "Task Status Callback",
                "operationId": "task_status_callback__request_body_callback_url__post",
                "requestBody": {
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/VideoTaskOut"
                      }
                    }
                  },
                  "required": true
                },
                "responses": {
                  "200": {
                    "description": "Successful Response",
                    "content": {
                      "application/json": {
                        "schema": {}
                      }
                    }
                  },
                  "422": {
                    "description": "Validation Error",
                    "content": {
                      "application/json": {
                        "schema": {
                          "$ref": "#/components/schemas/HTTPValidationError"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/v1/video/video2video": {
      "post": {
        "tags": [
          "AI Video"
        ],
        "summary": "Video To Video",
        "operationId": "video_to_video_v1_video_video2video_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateVideo2VideoTaskIn"
              },
              "examples": {
                "video_base64_string": {
                  "summary": "video base64 string to video",
                  "value": {
                    "prompt": "anime style, vibrant colors",
                    "model": "anime-v5.5",
                    "video": {
                      "bytes_base64_encoded": "AAAAHGZ0eXBtcDQyAAAAAWlzb21tcD..."
                    },
                    "callback_url": "https://example.com/callback",
                    "seconds": 5
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomoOut_TaskOut_"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "callbacks": {
          "task_status_callback": {
            "{$request.body.callback_url}": {
              "post": {
                "summary": "Task Status Callback",
                "operationId": "task_status_callback__request_body_callback_url__post",
                "requestBody": {
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/VideoTaskOut"
                      }
                    }
                  },
                  "required": true
                },
                "responses": {
                  "200": {
                    "description": "Successful Response",
                    "content": {
                      "application/json": {
                        "schema": {}
                      }
                    }
                  },
                  "422": {
                    "description": "Validation Error",
                    "content": {
                      "application/json": {
                        "schema": {
                          "$ref": "#/components/schemas/HTTPValidationError"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/v1/video/template2video": {
      "post": {
        "tags": [
          "AI Video"
        ],
        "summary": "Template To Video",
        "operationId": "template_to_video_v1_video_template2video_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTemplate2VideoTaskIn"
              },
              "examples": {
                "image_base64_string": {
                  "summary": "image base64 string to video",
                  "value": {
                    "template": "kissing_screen",
                    "prompt": "The girl kiss the screen.",
                    "image": {
                      "bytes_base64_encoded": "/9j/4AAQSkZJRgABAQAAAQABAAD/2w..."
                    },
                    "callback_url": "https://example.com/callback",
                    "seconds": 5
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomoOut_TaskOut_"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "callbacks": {
          "task_status_callback": {
            "{$request.body.callback_url}": {
              "post": {
                "summary": "Task Status Callback",
                "operationId": "task_status_callback__request_body_callback_url__post",
                "requestBody": {
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/VideoTaskOut"
                      }
                    }
                  },
                  "required": true
                },
                "responses": {
                  "200": {
                    "description": "Successful Response",
                    "content": {
                      "application/json": {
                        "schema": {}
                      }
                    }
                  },
                  "422": {
                    "description": "Validation Error",
                    "content": {
                      "application/json": {
                        "schema": {
                          "$ref": "#/components/schemas/HTTPValidationError"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/v1/video/talking-avatar": {
      "post": {
        "tags": [
          "AI Video"
        ],
        "summary": "Talking Avatar",
        "operationId": "talking_avatar_v1_video_talking_avatar_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTalkingAvatarTaskIn"
              },
              "examples": {
                "avatar_base64": {
                  "summary": "Create talking avatar with base64 inputs",
                  "value": {
                    "prompt": "natural talking expression",
                    "image": {
                      "bytes_base64_encoded": "/9j/4AAQSkZJRgABAQAAAQABAAD/2w..."
                    },
                    "audio": {
                      "bytes_base64_encoded": "SUQzAgAAAAAPdlRDTQAACABzdW1tZX..."
                    },
                    "callback_url": "https://example.com/callback",
                    "seconds": 5
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomoOut_TaskOut_"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "callbacks": {
          "task_status_callback": {
            "{$request.body.callback_url}": {
              "post": {
                "summary": "Task Status Callback",
                "operationId": "task_status_callback__request_body_callback_url__post",
                "requestBody": {
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/VideoTaskOut"
                      }
                    }
                  },
                  "required": true
                },
                "responses": {
                  "200": {
                    "description": "Successful Response",
                    "content": {
                      "application/json": {
                        "schema": {}
                      }
                    }
                  },
                  "422": {
                    "description": "Validation Error",
                    "content": {
                      "application/json": {
                        "schema": {
                          "$ref": "#/components/schemas/HTTPValidationError"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/v1/tasks/{task_id}": {
      "get": {
        "tags": [
          "Video Task"
        ],
        "summary": "Get Task",
        "operationId": "get_task_v1_tasks__task_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Task Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomoOut_VideoTaskOut_"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/upload/file": {
      "post": {
        "tags": [
          "Upload"
        ],
        "summary": "Upload File",
        "operationId": "upload_file_v1_upload_file_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DomoUriInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomoOut_DomoUriResponse_"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "AspectRatio": {
        "type": "string",
        "enum": [
          "16:9",
          "9:16",
          "1:1",
          "4:3",
          "3:4"
        ],
        "title": "AspectRatio"
      },
      "AudioInput": {
        "properties": {
          "domoai_uri": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Domoai Uri"
          },
          "bytes_base64_encoded": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bytes Base64 Encoded"
          }
        },
        "type": "object",
        "title": "AudioInput"
      },
      "CreateImage2VideoTaskIn": {
        "properties": {
          "callback_url": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2083,
                "minLength": 1,
                "format": "uri"
              },
              {
                "type": "null"
              }
            ],
            "title": "Callback Url",
            "description": "Callback notification URL for task results. If configured, the server will actively send notifications when the task status changes. \nThe message schema of the notification can be found in the [Callback Protocol](/api-reference/callback/callback-protocol) section.",
            "examples": [
              "https://example.com/callback",
              null
            ]
          },
          "prompt": {
            "type": "string",
            "maxLength": 2000,
            "title": "Prompt",
            "default": ""
          },
          "model": {
            "$ref": "#/components/schemas/Image2VideoModel",
            "examples": [
              "animate-2.4-faster"
            ]
          },
          "image": {
            "$ref": "#/components/schemas/ImageInput",
            "description": "Supports domoai_uri or base64 encoded image. An image must be provided.",
            "examples": [
              {
                "domoai_uri": "domoai://eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25faWQiOiIwNjhmZWViMy1hYmVkLTcyYTItODAwMC1hZDM1ZTg0ZGIxNDAiLCJ1cGxvYWRfYnVja2V0IjoiZW50LWFwaS10ZXN0LTEzMzYyODM0MDgiLCJ1cGxvYWRfa2V5IjoiZXBoZW1lcmFsLXVwbG9hZHMvMDY4ZmVlYjMtYWJlZC03MmEyLTgwMDAtYWQzNWU4NGRiMTQwLzI1YjhmOTgwLWM2MzEtNGQ1NC05Y2VhLTU0ZGFiYjhiMjYwNy9maWxlLm1wMyIsInR5cGUiOiJlcGhlbWVyYWwiLCJjb250ZW50X3R5cGUiOiJhdWRpby9tcGVnIiwiZmlsZV9zaXplIjoxMjU2MzIsImlhdCI6MTc2ODM4NzA3MCwiZXhwIjoxNzY4NDczNDcwLCJpc3MiOiJodHRwOi8vemhtLWFwaS5mcnAtZGV2LmRvbW8uY29vbC8ifQ.E60fIHPeDtEE0NmKaPGRYtyQJtaEQI9I0aNEwgtsLrg"
              },
              {
                "bytes_base64_encoded": "/9j/4AAQSkZJRgABAQAAAQABAAD/2w..."
              }
            ]
          },
          "seconds": {
            "type": "integer",
            "maximum": 10.0,
            "minimum": 1.0,
            "title": "Seconds",
            "description": "Output video duration in seconds."
          },
          "aspect_ratio": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AspectRatio"
              },
              {
                "type": "null"
              }
            ],
            "description": "Output video aspect ratio. If `null` or not provided, the system will automatically detect and use the closest matching ratio based on the input image.",
            "examples": [
              "16:9",
              "9:16",
              "1:1",
              "4:3",
              "3:4"
            ]
          }
        },
        "type": "object",
        "required": [
          "model",
          "image",
          "seconds"
        ],
        "title": "CreateImage2VideoTaskIn"
      },
      "CreateTalkingAvatarTaskIn": {
        "properties": {
          "callback_url": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2083,
                "minLength": 1,
                "format": "uri"
              },
              {
                "type": "null"
              }
            ],
            "title": "Callback Url",
            "description": "Callback notification URL for task results. If configured, the server will actively send notifications when the task status changes. \nThe message schema of the notification can be found in the [Callback Protocol](/api-reference/callback/callback-protocol) section.",
            "examples": [
              "https://example.com/callback",
              null
            ]
          },
          "prompt": {
            "type": "string",
            "maxLength": 2000,
            "title": "Prompt",
            "description": "Optional prompt for generation guidance.",
            "default": ""
          },
          "image": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ImageInput"
              },
              {
                "type": "null"
              }
            ],
            "description": "Input image of the avatar. Supports domoai_uri or base64 encoded image. Either image or video must be provided.",
            "examples": [
              {
                "domoai_uri": "domoai://eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25faWQiOiIwNjhmZWViMy1hYmVkLTcyYTItODAwMC1hZDM1ZTg0ZGIxNDAiLCJ1cGxvYWRfYnVja2V0IjoiZW50LWFwaS10ZXN0LTEzMzYyODM0MDgiLCJ1cGxvYWRfa2V5IjoiZXBoZW1lcmFsLXVwbG9hZHMvMDY4ZmVlYjMtYWJlZC03MmEyLTgwMDAtYWQzNWU4NGRiMTQwLzI1YjhmOTgwLWM2MzEtNGQ1NC05Y2VhLTU0ZGFiYjhiMjYwNy9maWxlLm1wMyIsInR5cGUiOiJlcGhlbWVyYWwiLCJjb250ZW50X3R5cGUiOiJhdWRpby9tcGVnIiwiZmlsZV9zaXplIjoxMjU2MzIsImlhdCI6MTc2ODM4NzA3MCwiZXhwIjoxNzY4NDczNDcwLCJpc3MiOiJodHRwOi8vemhtLWFwaS5mcnAtZGV2LmRvbW8uY29vbC8ifQ.E60fIHPeDtEE0NmKaPGRYtyQJtaEQI9I0aNEwgtsLrg"
              },
              {
                "bytes_base64_encoded": "/9j/4AAQSkZJRgABAQAAAQABAAD/2w..."
              }
            ]
          },
          "video": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VideoInput"
              },
              {
                "type": "null"
              }
            ],
            "description": "Input video of the avatar. Supports domoai_uri or base64 encoded video from file upload API. Either image or video must be provided.",
            "examples": [
              {
                "domoai_uri": "domoai://eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25faWQiOiIwNjhmZWViMy1hYmVkLTcyYTItODAwMC1hZDM1ZTg0ZGIxNDAiLCJ1cGxvYWRfYnVja2V0IjoiZW50LWFwaS10ZXN0LTEzMzYyODM0MDgiLCJ1cGxvYWRfa2V5IjoiZXBoZW1lcmFsLXVwbG9hZHMvMDY4ZmVlYjMtYWJlZC03MmEyLTgwMDAtYWQzNWU4NGRiMTQwLzI1YjhmOTgwLWM2MzEtNGQ1NC05Y2VhLTU0ZGFiYjhiMjYwNy9maWxlLm1wMyIsInR5cGUiOiJlcGhlbWVyYWwiLCJjb250ZW50X3R5cGUiOiJhdWRpby9tcGVnIiwiZmlsZV9zaXplIjoxMjU2MzIsImlhdCI6MTc2ODM4NzA3MCwiZXhwIjoxNzY4NDczNDcwLCJpc3MiOiJodHRwOi8vemhtLWFwaS5mcnAtZGV2LmRvbW8uY29vbC8ifQ.E60fIHPeDtEE0NmKaPGRYtyQJtaEQI9I0aNEwgtsLrg"
              },
              {
                "bytes_base64_encoded": "AAAAHGZ0eXBtcDQyAAAAAWlzb21tcD..."
              }
            ]
          },
          "audio": {
            "$ref": "#/components/schemas/AudioInput",
            "description": "Input audio to drive the avatar animation. Supports domoai_uri or base64 encoded audio from file upload API.",
            "examples": [
              {
                "domoai_uri": "domoai://eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25faWQiOiIwNjhmZWViMy1hYmVkLTcyYTItODAwMC1hZDM1ZTg0ZGIxNDAiLCJ1cGxvYWRfYnVja2V0IjoiZW50LWFwaS10ZXN0LTEzMzYyODM0MDgiLCJ1cGxvYWRfa2V5IjoiZXBoZW1lcmFsLXVwbG9hZHMvMDY4ZmVlYjMtYWJlZC03MmEyLTgwMDAtYWQzNWU4NGRiMTQwLzI1YjhmOTgwLWM2MzEtNGQ1NC05Y2VhLTU0ZGFiYjhiMjYwNy9maWxlLm1wMyIsInR5cGUiOiJlcGhlbWVyYWwiLCJjb250ZW50X3R5cGUiOiJhdWRpby9tcGVnIiwiZmlsZV9zaXplIjoxMjU2MzIsImlhdCI6MTc2ODM4NzA3MCwiZXhwIjoxNzY4NDczNDcwLCJpc3MiOiJodHRwOi8vemhtLWFwaS5mcnAtZGV2LmRvbW8uY29vbC8ifQ.E60fIHPeDtEE0NmKaPGRYtyQJtaEQI9I0aNEwgtsLrg"
              },
              {
                "bytes_base64_encoded": "SUQzAgAAAAAPdlRDTQAACABzdW1tZX..."
              }
            ]
          },
          "seconds": {
            "type": "integer",
            "maximum": 60.0,
            "minimum": 1.0,
            "title": "Seconds",
            "description": "Output video duration in seconds."
          },
          "aspect_ratio": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AspectRatio"
              },
              {
                "type": "null"
              }
            ],
            "description": "Output video aspect ratio. If `null` or not provided, the system will automatically detect and use the closest matching ratio based on the input image/video.",
            "examples": [
              "16:9",
              "9:16",
              "1:1",
              "4:3",
              "3:4"
            ]
          },
          "model": {
            "$ref": "#/components/schemas/TalkingAvatarModel",
            "description": "Model version to use for generation.",
            "default": "talking-avatar-v1",
            "examples": [
              "talking-avatar-v1"
            ]
          }
        },
        "type": "object",
        "required": [
          "audio",
          "seconds"
        ],
        "title": "CreateTalkingAvatarTaskIn",
        "description": "Input schema for creating a talking avatar task"
      },
      "CreateTemplate2VideoTaskIn": {
        "properties": {
          "callback_url": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2083,
                "minLength": 1,
                "format": "uri"
              },
              {
                "type": "null"
              }
            ],
            "title": "Callback Url",
            "description": "Callback notification URL for task results. If configured, the server will actively send notifications when the task status changes. \nThe message schema of the notification can be found in the [Callback Protocol](/api-reference/callback/callback-protocol) section.",
            "examples": [
              "https://example.com/callback",
              null
            ]
          },
          "prompt": {
            "type": "string",
            "maxLength": 2000,
            "title": "Prompt",
            "default": ""
          },
          "template": {
            "$ref": "#/components/schemas/Template2VideoTemplate"
          },
          "images": {
            "items": {
              "$ref": "#/components/schemas/ImageInput"
            },
            "type": "array",
            "minItems": 1,
            "title": "Images",
            "description": "Array of input images. Currently supports only one image. Multiple images may be supported in the future.",
            "examples": [
              [
                {
                  "domoai_uri": "domoai://eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25faWQiOiIwNjhmZWViMy1hYmVkLTcyYTItODAwMC1hZDM1ZTg0ZGIxNDAiLCJ1cGxvYWRfYnVja2V0IjoiZW50LWFwaS10ZXN0LTEzMzYyODM0MDgiLCJ1cGxvYWRfa2V5IjoiZXBoZW1lcmFsLXVwbG9hZHMvMDY4ZmVlYjMtYWJlZC03MmEyLTgwMDAtYWQzNWU4NGRiMTQwLzI1YjhmOTgwLWM2MzEtNGQ1NC05Y2VhLTU0ZGFiYjhiMjYwNy9maWxlLm1wMyIsInR5cGUiOiJlcGhlbWVyYWwiLCJjb250ZW50X3R5cGUiOiJhdWRpby9tcGVnIiwiZmlsZV9zaXplIjoxMjU2MzIsImlhdCI6MTc2ODM4NzA3MCwiZXhwIjoxNzY4NDczNDcwLCJpc3MiOiJodHRwOi8vemhtLWFwaS5mcnAtZGV2LmRvbW8uY29vbC8ifQ.E60fIHPeDtEE0NmKaPGRYtyQJtaEQI9I0aNEwgtsLrg"
                }
              ],
              [
                {
                  "bytes_base64_encoded": "/9j/4AAQSkZJRgABAQAAAQABAAD/2w..."
                }
              ]
            ]
          },
          "seconds": {
            "type": "integer",
            "maximum": 10.0,
            "minimum": 1.0,
            "title": "Seconds",
            "description": "Output video duration in seconds."
          },
          "aspect_ratio": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AspectRatio"
              },
              {
                "type": "null"
              }
            ],
            "description": "Output video aspect ratio. If `null` or not provided, the system will automatically detect and use the closest matching ratio based on the input image.",
            "examples": [
              "16:9",
              "9:16",
              "1:1",
              "4:3",
              "3:4"
            ]
          }
        },
        "type": "object",
        "required": [
          "template",
          "images",
          "seconds"
        ],
        "title": "CreateTemplate2VideoTaskIn"
      },
      "CreateText2VideoTaskIn": {
        "properties": {
          "callback_url": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2083,
                "minLength": 1,
                "format": "uri"
              },
              {
                "type": "null"
              }
            ],
            "title": "Callback Url",
            "description": "Callback notification URL for task results. If configured, the server will actively send notifications when the task status changes. \nThe message schema of the notification can be found in the [Callback Protocol](/api-reference/callback/callback-protocol) section.",
            "examples": [
              "https://example.com/callback",
              null
            ]
          },
          "prompt": {
            "type": "string",
            "maxLength": 2000,
            "minLength": 1,
            "title": "Prompt"
          },
          "model": {
            "$ref": "#/components/schemas/Text2VideoModel",
            "default": "t2v-2.4-faster",
            "examples": [
              "t2v-2.4-faster"
            ]
          },
          "style": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Text2VideoStyle"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "japanese_anime"
            ]
          },
          "seconds": {
            "type": "integer",
            "maximum": 10.0,
            "minimum": 1.0,
            "title": "Seconds",
            "description": "Output video duration in seconds."
          },
          "aspect_ratio": {
            "$ref": "#/components/schemas/AspectRatio",
            "description": "Output video aspect ratio.",
            "default": "1:1",
            "examples": [
              "16:9",
              "9:16",
              "1:1",
              "4:3",
              "3:4"
            ]
          }
        },
        "type": "object",
        "required": [
          "prompt",
          "seconds"
        ],
        "title": "CreateText2VideoTaskIn"
      },
      "CreateVideo2VideoTaskIn": {
        "properties": {
          "callback_url": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2083,
                "minLength": 1,
                "format": "uri"
              },
              {
                "type": "null"
              }
            ],
            "title": "Callback Url",
            "description": "Callback notification URL for task results. If configured, the server will actively send notifications when the task status changes. \nThe message schema of the notification can be found in the [Callback Protocol](/api-reference/callback/callback-protocol) section.",
            "examples": [
              "https://example.com/callback",
              null
            ]
          },
          "prompt": {
            "type": "string",
            "maxLength": 2000,
            "title": "Prompt",
            "description": "Text prompt describing the desired style transformation.",
            "default": ""
          },
          "model": {
            "$ref": "#/components/schemas/Video2VideoModel",
            "description": "The model to use for video transformation.",
            "examples": [
              "anime-v5.5"
            ]
          },
          "video": {
            "$ref": "#/components/schemas/VideoInput",
            "description": "Input video to transform. Supports domoai_uri or base64 encoded bytes from upload API.",
            "examples": [
              {
                "domoai_uri": "domoai://eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25faWQiOiIwNjhmZWViMy1hYmVkLTcyYTItODAwMC1hZDM1ZTg0ZGIxNDAiLCJ1cGxvYWRfYnVja2V0IjoiZW50LWFwaS10ZXN0LTEzMzYyODM0MDgiLCJ1cGxvYWRfa2V5IjoiZXBoZW1lcmFsLXVwbG9hZHMvMDY4ZmVlYjMtYWJlZC03MmEyLTgwMDAtYWQzNWU4NGRiMTQwLzI1YjhmOTgwLWM2MzEtNGQ1NC05Y2VhLTU0ZGFiYjhiMjYwNy9maWxlLm1wMyIsInR5cGUiOiJlcGhlbWVyYWwiLCJjb250ZW50X3R5cGUiOiJhdWRpby9tcGVnIiwiZmlsZV9zaXplIjoxMjU2MzIsImlhdCI6MTc2ODM4NzA3MCwiZXhwIjoxNzY4NDczNDcwLCJpc3MiOiJodHRwOi8vemhtLWFwaS5mcnAtZGV2LmRvbW8uY29vbC8ifQ.E60fIHPeDtEE0NmKaPGRYtyQJtaEQI9I0aNEwgtsLrg"
              },
              {
                "bytes_base64_encoded": "AAAAHGZ0eXBtcDQyAAAAAWlzb21tcD..."
              }
            ]
          },
          "seconds": {
            "type": "integer",
            "maximum": 10.0,
            "minimum": 1.0,
            "title": "Seconds",
            "description": "Output video duration in seconds."
          },
          "aspect_ratio": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AspectRatio"
              },
              {
                "type": "null"
              }
            ],
            "description": "Output video aspect ratio. If not provided, the system will automatically detect from the input video.",
            "examples": [
              "16:9",
              "9:16",
              "1:1",
              "4:3",
              "3:4"
            ]
          }
        },
        "type": "object",
        "required": [
          "model",
          "video",
          "seconds"
        ],
        "title": "CreateVideo2VideoTaskIn"
      },
      "DomoOut_DomoUriResponse_": {
        "properties": {
          "code": {
            "type": "integer",
            "title": "Code",
            "default": 0
          },
          "data": {
            "$ref": "#/components/schemas/DomoUriResponse"
          }
        },
        "type": "object",
        "required": [
          "data"
        ],
        "title": "DomoOut[DomoUriResponse]"
      },
      "DomoOut_TaskOut_": {
        "properties": {
          "code": {
            "type": "integer",
            "title": "Code",
            "default": 0
          },
          "data": {
            "$ref": "#/components/schemas/TaskOut"
          }
        },
        "type": "object",
        "required": [
          "data"
        ],
        "title": "DomoOut[TaskOut]"
      },
      "DomoOut_VideoTaskOut_": {
        "properties": {
          "code": {
            "type": "integer",
            "title": "Code",
            "default": 0
          },
          "data": {
            "$ref": "#/components/schemas/VideoTaskOut"
          }
        },
        "type": "object",
        "required": [
          "data"
        ],
        "title": "DomoOut[VideoTaskOut]"
      },
      "DomoUriInput": {
        "properties": {
          "filename": {
            "type": "string",
            "title": "Filename",
            "description": "Upload file name"
          }
        },
        "type": "object",
        "required": [
          "filename"
        ],
        "title": "DomoUriInput",
        "description": "Input schema for file upload"
      },
      "DomoUriResponse": {
        "properties": {
          "presigned_url": {
            "type": "string",
            "title": "Presigned Url",
            "description": "Presigned URL for file upload"
          },
          "headers": {
            "additionalProperties": true,
            "type": "object",
            "title": "Headers",
            "description": "Headers required for the upload."
          },
          "domoai_uri": {
            "type": "string",
            "title": "Domoai Uri",
            "description": "JWT token containing upload information"
          }
        },
        "type": "object",
        "required": [
          "presigned_url",
          "headers",
          "domoai_uri"
        ],
        "title": "DomoUriResponse",
        "description": "Response schema for file upload"
      },
      "DomoVideoOut": {
        "properties": {
          "url": {
            "type": "string",
            "maxLength": 2083,
            "minLength": 1,
            "format": "uri",
            "title": "Url"
          },
          "width": {
            "type": "integer",
            "title": "Width"
          },
          "height": {
            "type": "integer",
            "title": "Height"
          }
        },
        "type": "object",
        "required": [
          "url",
          "width",
          "height"
        ],
        "title": "DomoVideoOut"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "Image2VideoModel": {
        "type": "string",
        "enum": [
          "animate-2.4-faster",
          "animate-2.4-advanced"
        ],
        "title": "Image2VideoModel"
      },
      "ImageInput": {
        "properties": {
          "domoai_uri": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Domoai Uri"
          },
          "bytes_base64_encoded": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bytes Base64 Encoded"
          }
        },
        "type": "object",
        "title": "ImageInput"
      },
      "TalkingAvatarModel": {
        "type": "string",
        "enum": [
          "talking-avatar-v1"
        ],
        "title": "TalkingAvatarModel"
      },
      "TaskCategory": {
        "type": "string",
        "enum": [
          "TEXT_TO_VIDEO",
          "IMAGE_TO_VIDEO",
          "VIDEO_TO_VIDEO",
          "TEMPLATE_TO_VIDEO",
          "TALKING_AVATAR"
        ],
        "title": "TaskCategory"
      },
      "TaskOut": {
        "properties": {
          "task_id": {
            "type": "string",
            "format": "uuid",
            "title": "Task Id"
          }
        },
        "type": "object",
        "required": [
          "task_id"
        ],
        "title": "TaskOut"
      },
      "TaskStatus": {
        "type": "string",
        "enum": [
          "PENDING",
          "QUEUING",
          "PROCESSING",
          "SUCCESS",
          "FAILED",
          "CANCELED"
        ],
        "title": "TaskStatus"
      },
      "Template2VideoTemplate": {
        "type": "string",
        "enum": [
          "kissing_screen",
          "looping_animation",
          "hug",
          "groove_dance",
          "kiss",
          "french_kiss",
          "360_view",
          "zoom_in",
          "zoom_out",
          "crane_up"
        ],
        "title": "Template2VideoTemplate"
      },
      "Text2VideoModel": {
        "type": "string",
        "enum": [
          "t2v-2.4-faster",
          "t2v-2.4-advanced"
        ],
        "title": "Text2VideoModel"
      },
      "Text2VideoStyle": {
        "type": "string",
        "enum": [
          "japanese_anime",
          "realistic",
          "pixel",
          "cartoon_game",
          "flat_color_anime",
          "90s_style"
        ],
        "title": "Text2VideoStyle"
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "Video2VideoModel": {
        "type": "string",
        "enum": [
          "anime-v5.5",
          "anime-v1.2",
          "anime-v10",
          "anime-v9.1",
          "illustration-v9.1",
          "illustration-v20",
          "illustration-v8.1",
          "illustration-v19"
        ],
        "title": "Video2VideoModel"
      },
      "Video2VideoReferMode": {
        "type": "string",
        "enum": [
          "VIDEO_MORE",
          "PROMPT_MORE"
        ],
        "title": "Video2VideoReferMode"
      },
      "VideoInput": {
        "properties": {
          "domoai_uri": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Domoai Uri"
          },
          "bytes_base64_encoded": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bytes Base64 Encoded"
          }
        },
        "type": "object",
        "title": "VideoInput"
      },
      "VideoTaskOut": {
        "properties": {
          "task_id": {
            "type": "string",
            "format": "uuid",
            "title": "Task Id"
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "status": {
            "$ref": "#/components/schemas/TaskStatus"
          },
          "category": {
            "$ref": "#/components/schemas/TaskCategory"
          },
          "callback_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Callback Url"
          },
          "seconds": {
            "type": "integer",
            "title": "Seconds"
          },
          "output_videos": {
            "items": {
              "$ref": "#/components/schemas/DomoVideoOut"
            },
            "type": "array",
            "title": "Output Videos"
          },
          "credits": {
            "type": "integer",
            "title": "Credits"
          },
          "inputs": {
            "additionalProperties": true,
            "type": "object",
            "title": "Inputs"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "task_id",
          "id",
          "status",
          "category",
          "callback_url",
          "seconds",
          "output_videos",
          "credits",
          "inputs",
          "created_at"
        ],
        "title": "VideoTaskOut"
      }
    },
    "securitySchemes": {
      "HTTPBearer": {
        "type": "http",
        "description": "API Key Bearer Token",
        "scheme": "bearer"
      }
    }
  },
  "servers": [
    {
      "url": "https://api.domoai.com"
    }
  ]
}
