Метод и путь
POST
/v1/generationsBearer key · generations:writeОтправляйте JSON с Content-Type: application/json. Idempotency-Key необязателен по схеме, но настоятельно рекомендуется для каждой логической генерации.
Форма запроса
json
{
"model": "wan-3.0",
"mode": "text_to_video",
"variant": "standard",
"parameters": {
"resolution": "720p",
"duration_seconds": 5,
"ratio": "16:9",
"audio": true,
"prompt_extend": false,
"watermark": false
},
"input": {
"prompt": "A paper boat crosses a rain puddle, macro lens"
}
}| Поле | Контракт |
|---|---|
| model | Обязательное; ID из GET /v1/models |
| mode | Обязательное; значение из operations выбранной модели |
| variant | Обязательное; значение из variants выбранной модели |
| parameters | Параметры генерации |
| input | Строгий объект выбранного режима |
Ответ на создание
json
{
"id": "1b90f2e6-8898-45c3-9c4a-6f4ba6af25cb",
"status": "queued",
"model": "wan-3.0",
"mode": "text_to_video",
"variant": "standard",
"price": { "amount": "<calculated_amount>", "currency": "USD" },
"billing": {
"currency": "USD",
"status": "reserved",
"reserved_amount": "<calculated_amount>",
"charged_amount": null
},
"created_at": "2026-09-01T12:00:00.000Z"
}HTTP 202 означает, что генерация принята. Объект billing явно показывает состояние денег: при создании status равен reserved, reserved_amount содержит максимальный резерв, а charged_amount равен null. Старый объект price сохраняется для совместимости.
Валидация
Неизвестные поля и несовместимые параметры дают 400 invalid_request до резервирования средств. После удаления пробелов по краям prompt должен содержать 1–20 000 символов. Для video_edit и video_extend требуется ratio: adaptive.