{"openapi":"3.1.0","info":{"title":"Outsee API","version":"1.0.0","description":"Генерация на моделях Outsee через один ключ. Запросы асинхронные: создайте запрос, затем получите результат опросом или вебхуком."},"servers":[{"url":"https://api.outsee.io/v1"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Ключ osk_live_… из консоли outsee.io/platform"}}},"paths":{"/bytedance/seedance-2.5/text-to-video":{"post":{"tags":["Seedance 2.5"],"summary":"Seedance 2.5 — Текст → видео","description":"Ролик по описанию: до 30 секунд, со звуком, в 480p–1080p.","operationId":"bytedance_seedance_2_5_text_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 15 000 символов.","type":"string","maxLength":15000},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 30.","type":"integer","minimum":4,"maximum":30,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p, 1080p, draft. draft — черновик в 480p по цене 480p: в течение 24 часов его можно довести до 1080p тем же содержанием через режим draft-to-1080p.","type":"string","enum":["480p","720p","1080p","draft"],"default":"720p"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1, 21:9.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1","21:9"],"default":"16:9"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"720p","aspect_ratio":"16:9"}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/bytedance/seedance-2.5/text-to-video":{"post":{"tags":["Seedance 2.5"],"summary":"Цена: Seedance 2.5 — Текст → видео","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_bytedance_seedance_2_5_text_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 15 000 символов.","type":"string","maxLength":15000},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 30.","type":"integer","minimum":4,"maximum":30,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p, 1080p, draft. draft — черновик в 480p по цене 480p: в течение 24 часов его можно довести до 1080p тем же содержанием через режим draft-to-1080p.","type":"string","enum":["480p","720p","1080p","draft"],"default":"720p"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1, 21:9.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1","21:9"],"default":"16:9"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"720p","aspect_ratio":"16:9"}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/bytedance/seedance-2.5/image-to-video":{"post":{"tags":["Seedance 2.5"],"summary":"Seedance 2.5 — Фото → видео","description":"Оживляет изображение: ролик начинается с вашего кадра, по желанию заканчивается вторым. Формат берётся из кадра.","operationId":"bytedance_seedance_2_5_image_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt","image_url"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 15 000 символов.","type":"string","maxLength":15000},"image_url":{"description":"Ссылка на изображение, с которого начнётся ролик. JPEG, PNG или WebP до 20 МБ.","type":"string","format":"uri"},"end_image_url":{"description":"Необязательно. Ссылка на изображение, которым закончится ролик.","type":"string","format":"uri"},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 30.","type":"integer","minimum":4,"maximum":30,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p, 1080p, draft. draft — черновик в 480p по цене 480p: в течение 24 часов его можно довести до 1080p тем же содержанием через режим draft-to-1080p.","type":"string","enum":["480p","720p","1080p","draft"],"default":"720p"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","image_url":"https://example.com/frame.jpg","duration":5,"resolution":"720p"}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/bytedance/seedance-2.5/image-to-video":{"post":{"tags":["Seedance 2.5"],"summary":"Цена: Seedance 2.5 — Фото → видео","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_bytedance_seedance_2_5_image_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt","image_url"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 15 000 символов.","type":"string","maxLength":15000},"image_url":{"description":"Ссылка на изображение, с которого начнётся ролик. JPEG, PNG или WebP до 20 МБ.","type":"string","format":"uri"},"end_image_url":{"description":"Необязательно. Ссылка на изображение, которым закончится ролик.","type":"string","format":"uri"},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 30.","type":"integer","minimum":4,"maximum":30,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p, 1080p, draft. draft — черновик в 480p по цене 480p: в течение 24 часов его можно довести до 1080p тем же содержанием через режим draft-to-1080p.","type":"string","enum":["480p","720p","1080p","draft"],"default":"720p"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","image_url":"https://example.com/frame.jpg","duration":5,"resolution":"720p"}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/bytedance/seedance-2.5/reference-to-video":{"post":{"tags":["Seedance 2.5"],"summary":"Seedance 2.5 — Видео по референсам","description":"Ролик по референсам: до 30 изображений, 10 видео и 10 аудио. С видео на входе действует ставка режима с видео: оплачиваются секунды ролика и секунды входа, вход считается не короче ролика. Итог — примерно на 22% дороже того же ролика без видео, если вход не длиннее ролика, и больше, если длиннее.","operationId":"bytedance_seedance_2_5_reference_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика. На референсы ссылайтесь по порядку: «женщина с изображения 1», «движение камеры как в видео 1». До 15 000 символов.","type":"string","maxLength":15000},"image_urls":{"description":"До 30 изображений: герой, товар, одежда, локация. В промпте на них можно ссылаться как «изображение 1», «изображение 2».","type":"array","items":{"type":"string","format":"uri"},"maxItems":30},"video_urls":{"description":"До 10 роликов MP4 или MOV: движение, камера, монтаж. Каждый не короче 2 сек, вместе не длиннее 30 сек. С видео на входе действует ставка режима с видео: оплачиваются секунды ролика и секунды входа, вход считается не короче ролика. Итог — примерно на 22% дороже того же ролика без видео, если вход не длиннее ролика, и больше, если длиннее.","type":"array","items":{"type":"string","format":"uri"},"maxItems":10},"audio_urls":{"description":"До 10 аудио (MP3, WAV, M4A; AAC, OGG и FLAC перекодируются в MP3) длиной от 2 до 30 сек: голос, музыка, ритм. Передаются вместе хотя бы с одним изображением или видео.","type":"array","items":{"type":"string","format":"uri"},"maxItems":10},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 30.","type":"integer","minimum":4,"maximum":30,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p, 1080p, draft. draft — черновик в 480p по цене 480p: в течение 24 часов его можно довести до 1080p тем же содержанием через режим draft-to-1080p.","type":"string","enum":["480p","720p","1080p","draft"],"default":"720p"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1, 21:9, auto. auto — формат подбирается по референсам.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1","21:9","auto"],"default":"auto"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"720p","aspect_ratio":"auto","image_urls":["https://example.com/hero.jpg"]}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/bytedance/seedance-2.5/reference-to-video":{"post":{"tags":["Seedance 2.5"],"summary":"Цена: Seedance 2.5 — Видео по референсам","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_bytedance_seedance_2_5_reference_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика. На референсы ссылайтесь по порядку: «женщина с изображения 1», «движение камеры как в видео 1». До 15 000 символов.","type":"string","maxLength":15000},"image_urls":{"description":"До 30 изображений: герой, товар, одежда, локация. В промпте на них можно ссылаться как «изображение 1», «изображение 2».","type":"array","items":{"type":"string","format":"uri"},"maxItems":30},"video_urls":{"description":"До 10 роликов MP4 или MOV: движение, камера, монтаж. Каждый не короче 2 сек, вместе не длиннее 30 сек. С видео на входе действует ставка режима с видео: оплачиваются секунды ролика и секунды входа, вход считается не короче ролика. Итог — примерно на 22% дороже того же ролика без видео, если вход не длиннее ролика, и больше, если длиннее.","type":"array","items":{"type":"string","format":"uri"},"maxItems":10},"audio_urls":{"description":"До 10 аудио (MP3, WAV, M4A; AAC, OGG и FLAC перекодируются в MP3) длиной от 2 до 30 сек: голос, музыка, ритм. Передаются вместе хотя бы с одним изображением или видео.","type":"array","items":{"type":"string","format":"uri"},"maxItems":10},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 30.","type":"integer","minimum":4,"maximum":30,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p, 1080p, draft. draft — черновик в 480p по цене 480p: в течение 24 часов его можно довести до 1080p тем же содержанием через режим draft-to-1080p.","type":"string","enum":["480p","720p","1080p","draft"],"default":"720p"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1, 21:9, auto. auto — формат подбирается по референсам.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1","21:9","auto"],"default":"auto"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"720p","aspect_ratio":"auto","image_urls":["https://example.com/hero.jpg"]}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/bytedance/seedance-2.5/video-edit":{"post":{"tags":["Seedance 2.5"],"summary":"Seedance 2.5 — Правка видео","description":"Правит готовый ролик по описанию: заменить героя, одежду, фон, время суток. Длина, формат и звук берутся из исходника.","operationId":"bytedance_seedance_2_5_video_edit","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt","video_url"],"properties":{"prompt":{"description":"Что изменить в ролике: «замени куртку на красную», «перенеси действие на ночную улицу». До 15 000 символов.","type":"string","maxLength":15000},"video_url":{"description":"Ролик, который нужно изменить: MP4 или MOV длиной от 4 до 30 сек.","type":"string","format":"uri"},"image_urls":{"description":"Необязательно. До 30 изображений того, что должно появиться в ролике: новая одежда, товар, герой.","type":"array","items":{"type":"string","format":"uri"},"maxItems":30},"resolution":{"description":"Разрешение ролика: 480p, 720p, 1080p, draft. draft — черновик в 480p по цене 480p: в течение 24 часов его можно довести до 1080p тем же содержанием через режим draft-to-1080p.","type":"string","enum":["480p","720p","1080p","draft"],"default":"720p"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","video_url":"https://example.com/source.mp4","resolution":"720p"}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/bytedance/seedance-2.5/video-edit":{"post":{"tags":["Seedance 2.5"],"summary":"Цена: Seedance 2.5 — Правка видео","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_bytedance_seedance_2_5_video_edit","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt","video_url"],"properties":{"prompt":{"description":"Что изменить в ролике: «замени куртку на красную», «перенеси действие на ночную улицу». До 15 000 символов.","type":"string","maxLength":15000},"video_url":{"description":"Ролик, который нужно изменить: MP4 или MOV длиной от 4 до 30 сек.","type":"string","format":"uri"},"image_urls":{"description":"Необязательно. До 30 изображений того, что должно появиться в ролике: новая одежда, товар, герой.","type":"array","items":{"type":"string","format":"uri"},"maxItems":30},"resolution":{"description":"Разрешение ролика: 480p, 720p, 1080p, draft. draft — черновик в 480p по цене 480p: в течение 24 часов его можно довести до 1080p тем же содержанием через режим draft-to-1080p.","type":"string","enum":["480p","720p","1080p","draft"],"default":"720p"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","video_url":"https://example.com/source.mp4","resolution":"720p"}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/bytedance/seedance-2.5/draft-to-1080p":{"post":{"tags":["Seedance 2.5"],"summary":"Seedance 2.5 — Черновик → 1080p","description":"Доводит черновик до 1080p с тем же содержанием: та же сцена, движение и звук. Доступно 24 часа после готовности черновика.","operationId":"bytedance_seedance_2_5_draft_to_1080p","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["request_id"],"properties":{"request_id":{"description":"id готового запроса Seedance 2.5, созданного с resolution: \"draft\". Цена — как у той же работы сразу в 1080p.","type":"string","format":"uuid"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"request_id":"d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff"}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/bytedance/seedance-2.5/draft-to-1080p":{"post":{"tags":["Seedance 2.5"],"summary":"Цена: Seedance 2.5 — Черновик → 1080p","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_bytedance_seedance_2_5_draft_to_1080p","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["request_id"],"properties":{"request_id":{"description":"id готового запроса Seedance 2.5, созданного с resolution: \"draft\". Цена — как у той же работы сразу в 1080p.","type":"string","format":"uuid"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"request_id":"d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff"}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/kuaishou/kling-3.0/text-to-video":{"post":{"tags":["Kling 3.0"],"summary":"Kling 3.0 — Текст → видео","description":"Ролик по описанию: от 3 до 15 секунд, до 4K.","operationId":"kuaishou_kling_3_0_text_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 2 500 символов.","type":"string","maxLength":2500},"duration":{"description":"Длительность ролика в секундах, целое число от 3 до 15.","type":"integer","minimum":3,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 720p, 1080p, 4k.","type":"string","enum":["720p","1080p","4k"],"default":"1080p"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 1:1.","type":"string","enum":["16:9","9:16","1:1"],"default":"16:9"},"generate_audio":{"description":"Нативный звук: речь, шумы, музыка. Цена со звуком выше.","type":"boolean","default":false},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"1080p","aspect_ratio":"16:9","generate_audio":false}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/kuaishou/kling-3.0/text-to-video":{"post":{"tags":["Kling 3.0"],"summary":"Цена: Kling 3.0 — Текст → видео","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_kuaishou_kling_3_0_text_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 2 500 символов.","type":"string","maxLength":2500},"duration":{"description":"Длительность ролика в секундах, целое число от 3 до 15.","type":"integer","minimum":3,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 720p, 1080p, 4k.","type":"string","enum":["720p","1080p","4k"],"default":"1080p"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 1:1.","type":"string","enum":["16:9","9:16","1:1"],"default":"16:9"},"generate_audio":{"description":"Нативный звук: речь, шумы, музыка. Цена со звуком выше.","type":"boolean","default":false},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"1080p","aspect_ratio":"16:9","generate_audio":false}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/kuaishou/kling-3.0/image-to-video":{"post":{"tags":["Kling 3.0"],"summary":"Kling 3.0 — Фото → видео","description":"Оживляет изображение: по желанию с последним кадром. Формат берётся из кадра.","operationId":"kuaishou_kling_3_0_image_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt","image_url"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 2 500 символов.","type":"string","maxLength":2500},"image_url":{"description":"Ссылка на изображение, с которого начнётся ролик. JPEG, PNG или WebP до 20 МБ.","type":"string","format":"uri"},"end_image_url":{"description":"Необязательно. Ссылка на изображение, которым закончится ролик.","type":"string","format":"uri"},"duration":{"description":"Длительность ролика в секундах, целое число от 3 до 15.","type":"integer","minimum":3,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 720p, 1080p, 4k.","type":"string","enum":["720p","1080p","4k"],"default":"1080p"},"generate_audio":{"description":"Нативный звук: речь, шумы, музыка. Цена со звуком выше.","type":"boolean","default":false},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","image_url":"https://example.com/frame.jpg","duration":5,"resolution":"1080p","generate_audio":false}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/kuaishou/kling-3.0/image-to-video":{"post":{"tags":["Kling 3.0"],"summary":"Цена: Kling 3.0 — Фото → видео","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_kuaishou_kling_3_0_image_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt","image_url"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 2 500 символов.","type":"string","maxLength":2500},"image_url":{"description":"Ссылка на изображение, с которого начнётся ролик. JPEG, PNG или WebP до 20 МБ.","type":"string","format":"uri"},"end_image_url":{"description":"Необязательно. Ссылка на изображение, которым закончится ролик.","type":"string","format":"uri"},"duration":{"description":"Длительность ролика в секундах, целое число от 3 до 15.","type":"integer","minimum":3,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 720p, 1080p, 4k.","type":"string","enum":["720p","1080p","4k"],"default":"1080p"},"generate_audio":{"description":"Нативный звук: речь, шумы, музыка. Цена со звуком выше.","type":"boolean","default":false},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","image_url":"https://example.com/frame.jpg","duration":5,"resolution":"1080p","generate_audio":false}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/kuaishou/kling-3.0/multi-shot":{"post":{"tags":["Kling 3.0"],"summary":"Kling 3.0 — Мультишот","description":"Несколько сцен в одном ролике: у каждой своё описание и длительность, вместе до 15 секунд.","operationId":"kuaishou_kling_3_0_multi_shot","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["shots"],"properties":{"shots":{"description":"От 2 до 6 сцен: { \"prompt\": описание до 400 символов, \"duration\": целые секунды, не меньше 3 }. Сумма длительностей — не больше 15 сек.","type":"array","minItems":2,"maxItems":6,"items":{"type":"object","required":["prompt","duration"],"additionalProperties":false,"properties":{"prompt":{"type":"string","maxLength":400},"duration":{"type":"integer","minimum":3}}}},"image_url":{"description":"Необязательно. Изображение, с которого начнётся первая сцена.","type":"string","format":"uri"},"resolution":{"description":"Разрешение ролика: 720p, 1080p, 4k.","type":"string","enum":["720p","1080p","4k"],"default":"1080p"},"generate_audio":{"description":"Нативный звук: речь, шумы, музыка. Цена со звуком выше.","type":"boolean","default":false},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"shots":[{"prompt":"Общий план: утренний город, камера медленно опускается к кофейне","duration":5},{"prompt":"Крупный план: бариста наливает латте-арт","duration":5}],"resolution":"1080p","generate_audio":false}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/kuaishou/kling-3.0/multi-shot":{"post":{"tags":["Kling 3.0"],"summary":"Цена: Kling 3.0 — Мультишот","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_kuaishou_kling_3_0_multi_shot","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["shots"],"properties":{"shots":{"description":"От 2 до 6 сцен: { \"prompt\": описание до 400 символов, \"duration\": целые секунды, не меньше 3 }. Сумма длительностей — не больше 15 сек.","type":"array","minItems":2,"maxItems":6,"items":{"type":"object","required":["prompt","duration"],"additionalProperties":false,"properties":{"prompt":{"type":"string","maxLength":400},"duration":{"type":"integer","minimum":3}}}},"image_url":{"description":"Необязательно. Изображение, с которого начнётся первая сцена.","type":"string","format":"uri"},"resolution":{"description":"Разрешение ролика: 720p, 1080p, 4k.","type":"string","enum":["720p","1080p","4k"],"default":"1080p"},"generate_audio":{"description":"Нативный звук: речь, шумы, музыка. Цена со звуком выше.","type":"boolean","default":false},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"shots":[{"prompt":"Общий план: утренний город, камера медленно опускается к кофейне","duration":5},{"prompt":"Крупный план: бариста наливает латте-арт","duration":5}],"resolution":"1080p","generate_audio":false}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/alibaba/wan-3.0/text-to-video":{"post":{"tags":["Wan 3.0"],"summary":"Wan 3.0 — Текст → видео","description":"Ролик по описанию: от 2 до 30 секунд со звуком.","operationId":"alibaba_wan_3_0_text_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 20 000 символов.","type":"string","maxLength":20000},"duration":{"description":"Длительность ролика в секундах, целое число от 2 до 30.","type":"integer","minimum":2,"maximum":30,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p, 1080p.","type":"string","enum":["480p","720p","1080p"],"default":"720p"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1"],"default":"16:9"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"720p","aspect_ratio":"16:9"}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/alibaba/wan-3.0/text-to-video":{"post":{"tags":["Wan 3.0"],"summary":"Цена: Wan 3.0 — Текст → видео","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_alibaba_wan_3_0_text_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 20 000 символов.","type":"string","maxLength":20000},"duration":{"description":"Длительность ролика в секундах, целое число от 2 до 30.","type":"integer","minimum":2,"maximum":30,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p, 1080p.","type":"string","enum":["480p","720p","1080p"],"default":"720p"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1"],"default":"16:9"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"720p","aspect_ratio":"16:9"}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/alibaba/wan-3.0/first-last-frame":{"post":{"tags":["Wan 3.0"],"summary":"Wan 3.0 — Первый и последний кадр","description":"Ролик между двумя кадрами: модель сама придумывает переход от первого к последнему.","operationId":"alibaba_wan_3_0_first_last_frame","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt","image_url","end_image_url"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 20 000 символов.","type":"string","maxLength":20000},"image_url":{"description":"Ссылка на изображение, с которого начнётся ролик. JPEG, PNG или WebP до 20 МБ.","type":"string","format":"uri"},"end_image_url":{"description":"Ссылка на изображение, которым закончится ролик.","type":"string","format":"uri"},"duration":{"description":"Длительность ролика в секундах, целое число от 2 до 30.","type":"integer","minimum":2,"maximum":30,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p, 1080p.","type":"string","enum":["480p","720p","1080p"],"default":"720p"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","image_url":"https://example.com/frame.jpg","end_image_url":"https://example.com/frame.jpg","duration":5,"resolution":"720p"}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/alibaba/wan-3.0/first-last-frame":{"post":{"tags":["Wan 3.0"],"summary":"Цена: Wan 3.0 — Первый и последний кадр","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_alibaba_wan_3_0_first_last_frame","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt","image_url","end_image_url"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 20 000 символов.","type":"string","maxLength":20000},"image_url":{"description":"Ссылка на изображение, с которого начнётся ролик. JPEG, PNG или WebP до 20 МБ.","type":"string","format":"uri"},"end_image_url":{"description":"Ссылка на изображение, которым закончится ролик.","type":"string","format":"uri"},"duration":{"description":"Длительность ролика в секундах, целое число от 2 до 30.","type":"integer","minimum":2,"maximum":30,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p, 1080p.","type":"string","enum":["480p","720p","1080p"],"default":"720p"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","image_url":"https://example.com/frame.jpg","end_image_url":"https://example.com/frame.jpg","duration":5,"resolution":"720p"}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/alibaba/wan-3.0/reference-to-video":{"post":{"tags":["Wan 3.0"],"summary":"Wan 3.0 — Видео по референсам","description":"Ролик по референсам: до 10 изображений, 5 видео и 5 аудио. Видео на входе и ролик вместе — не длиннее 30 секунд.","operationId":"alibaba_wan_3_0_reference_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика. На референсы ссылайтесь по порядку: «героиня с изображения 1». До 20 000 символов.","type":"string","maxLength":20000},"image_urls":{"description":"До 10 изображений: герой, товар, одежда, локация. В промпте на них можно ссылаться как «изображение 1», «изображение 2».","type":"array","items":{"type":"string","format":"uri"},"maxItems":10},"video_urls":{"description":"До 5 роликов MP4 или MOV: движение, камера, монтаж. Каждый не короче 2 сек, вместе не длиннее 15 сек.","type":"array","items":{"type":"string","format":"uri"},"maxItems":5},"audio_urls":{"description":"До 5 аудио (MP3, WAV, M4A; AAC, OGG и FLAC перекодируются в MP3) длиной от 1 до 15 сек: голос, музыка, ритм. Передаются вместе хотя бы с одним изображением или видео.","type":"array","items":{"type":"string","format":"uri"},"maxItems":5},"duration":{"description":"Длительность ролика в секундах, целое число от 2 до 30.","type":"integer","minimum":2,"maximum":30,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p, 1080p.","type":"string","enum":["480p","720p","1080p"],"default":"720p"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1, auto. auto — формат подбирается по референсам.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1","auto"],"default":"auto"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"720p","aspect_ratio":"auto","image_urls":["https://example.com/hero.jpg"]}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/alibaba/wan-3.0/reference-to-video":{"post":{"tags":["Wan 3.0"],"summary":"Цена: Wan 3.0 — Видео по референсам","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_alibaba_wan_3_0_reference_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика. На референсы ссылайтесь по порядку: «героиня с изображения 1». До 20 000 символов.","type":"string","maxLength":20000},"image_urls":{"description":"До 10 изображений: герой, товар, одежда, локация. В промпте на них можно ссылаться как «изображение 1», «изображение 2».","type":"array","items":{"type":"string","format":"uri"},"maxItems":10},"video_urls":{"description":"До 5 роликов MP4 или MOV: движение, камера, монтаж. Каждый не короче 2 сек, вместе не длиннее 15 сек.","type":"array","items":{"type":"string","format":"uri"},"maxItems":5},"audio_urls":{"description":"До 5 аудио (MP3, WAV, M4A; AAC, OGG и FLAC перекодируются в MP3) длиной от 1 до 15 сек: голос, музыка, ритм. Передаются вместе хотя бы с одним изображением или видео.","type":"array","items":{"type":"string","format":"uri"},"maxItems":5},"duration":{"description":"Длительность ролика в секундах, целое число от 2 до 30.","type":"integer","minimum":2,"maximum":30,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p, 1080p.","type":"string","enum":["480p","720p","1080p"],"default":"720p"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1, auto. auto — формат подбирается по референсам.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1","auto"],"default":"auto"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"720p","aspect_ratio":"auto","image_urls":["https://example.com/hero.jpg"]}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/bytedance/seedance-2.0/text-to-video":{"post":{"tags":["Seedance 2.0"],"summary":"Seedance 2.0 — Текст → видео","description":"Ролик по описанию: до 15 секунд со звуком.","operationId":"bytedance_seedance_2_0_text_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 7 500 символов.","type":"string","maxLength":7500},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 15.","type":"integer","minimum":4,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p, 1080p, 4k.","type":"string","enum":["480p","720p","1080p","4k"],"default":"720p"},"quality":{"description":"fast — быстрее и дешевле, quality — детальнее. 1080p и 4K доступны только в quality.","type":"string","enum":["fast","quality"],"default":"fast"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1, 21:9.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1","21:9"],"default":"16:9"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"720p","quality":"fast","aspect_ratio":"16:9"}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/bytedance/seedance-2.0/text-to-video":{"post":{"tags":["Seedance 2.0"],"summary":"Цена: Seedance 2.0 — Текст → видео","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_bytedance_seedance_2_0_text_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 7 500 символов.","type":"string","maxLength":7500},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 15.","type":"integer","minimum":4,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p, 1080p, 4k.","type":"string","enum":["480p","720p","1080p","4k"],"default":"720p"},"quality":{"description":"fast — быстрее и дешевле, quality — детальнее. 1080p и 4K доступны только в quality.","type":"string","enum":["fast","quality"],"default":"fast"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1, 21:9.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1","21:9"],"default":"16:9"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"720p","quality":"fast","aspect_ratio":"16:9"}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/bytedance/seedance-2.0/image-to-video":{"post":{"tags":["Seedance 2.0"],"summary":"Seedance 2.0 — Фото → видео","description":"Оживляет изображение: ролик начинается с вашего кадра, по желанию заканчивается вторым.","operationId":"bytedance_seedance_2_0_image_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt","image_url"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 7 500 символов.","type":"string","maxLength":7500},"image_url":{"description":"Ссылка на изображение, с которого начнётся ролик. JPEG, PNG или WebP до 20 МБ.","type":"string","format":"uri"},"end_image_url":{"description":"Необязательно. Ссылка на изображение, которым закончится ролик.","type":"string","format":"uri"},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 15.","type":"integer","minimum":4,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p, 1080p, 4k.","type":"string","enum":["480p","720p","1080p","4k"],"default":"720p"},"quality":{"description":"fast — быстрее и дешевле, quality — детальнее. 1080p и 4K доступны только в quality.","type":"string","enum":["fast","quality"],"default":"fast"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","image_url":"https://example.com/frame.jpg","duration":5,"resolution":"720p","quality":"fast"}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/bytedance/seedance-2.0/image-to-video":{"post":{"tags":["Seedance 2.0"],"summary":"Цена: Seedance 2.0 — Фото → видео","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_bytedance_seedance_2_0_image_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt","image_url"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 7 500 символов.","type":"string","maxLength":7500},"image_url":{"description":"Ссылка на изображение, с которого начнётся ролик. JPEG, PNG или WebP до 20 МБ.","type":"string","format":"uri"},"end_image_url":{"description":"Необязательно. Ссылка на изображение, которым закончится ролик.","type":"string","format":"uri"},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 15.","type":"integer","minimum":4,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p, 1080p, 4k.","type":"string","enum":["480p","720p","1080p","4k"],"default":"720p"},"quality":{"description":"fast — быстрее и дешевле, quality — детальнее. 1080p и 4K доступны только в quality.","type":"string","enum":["fast","quality"],"default":"fast"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","image_url":"https://example.com/frame.jpg","duration":5,"resolution":"720p","quality":"fast"}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/bytedance/seedance-2.0/reference-to-video":{"post":{"tags":["Seedance 2.0"],"summary":"Seedance 2.0 — Видео по референсам","description":"Ролик по референсам: до 8 изображений, 3 видео и 3 аудио. С видео на входе действует ставка режима с видео: оплачиваются секунды ролика и секунды входа, вход считается не короче ролика. Итог — примерно на 22% дороже того же ролика без видео, если вход не длиннее ролика, и больше, если длиннее.","operationId":"bytedance_seedance_2_0_reference_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика. На референсы ссылайтесь по порядку: «герой с изображения 1». До 7 500 символов.","type":"string","maxLength":7500},"image_urls":{"description":"До 8 изображений: герой, товар, одежда, локация. В промпте на них можно ссылаться как «изображение 1», «изображение 2».","type":"array","items":{"type":"string","format":"uri"},"maxItems":8},"video_urls":{"description":"До 3 роликов MP4 или MOV: движение, камера, монтаж. Каждый не короче 2 сек, вместе не длиннее 15 сек. С видео на входе действует ставка режима с видео: оплачиваются секунды ролика и секунды входа, вход считается не короче ролика. Итог — примерно на 22% дороже того же ролика без видео, если вход не длиннее ролика, и больше, если длиннее.","type":"array","items":{"type":"string","format":"uri"},"maxItems":3},"audio_urls":{"description":"До 3 аудио (MP3, WAV, M4A; AAC, OGG и FLAC перекодируются в MP3) длиной от 2 до 15 сек: голос, музыка, ритм. Передаются вместе хотя бы с одним изображением или видео.","type":"array","items":{"type":"string","format":"uri"},"maxItems":3},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 15.","type":"integer","minimum":4,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p, 1080p, 4k.","type":"string","enum":["480p","720p","1080p","4k"],"default":"720p"},"quality":{"description":"fast — быстрее и дешевле, quality — детальнее. 1080p и 4K доступны только в quality.","type":"string","enum":["fast","quality"],"default":"fast"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1, 21:9.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1","21:9"],"default":"16:9"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"720p","quality":"fast","aspect_ratio":"16:9","image_urls":["https://example.com/hero.jpg"]}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/bytedance/seedance-2.0/reference-to-video":{"post":{"tags":["Seedance 2.0"],"summary":"Цена: Seedance 2.0 — Видео по референсам","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_bytedance_seedance_2_0_reference_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика. На референсы ссылайтесь по порядку: «герой с изображения 1». До 7 500 символов.","type":"string","maxLength":7500},"image_urls":{"description":"До 8 изображений: герой, товар, одежда, локация. В промпте на них можно ссылаться как «изображение 1», «изображение 2».","type":"array","items":{"type":"string","format":"uri"},"maxItems":8},"video_urls":{"description":"До 3 роликов MP4 или MOV: движение, камера, монтаж. Каждый не короче 2 сек, вместе не длиннее 15 сек. С видео на входе действует ставка режима с видео: оплачиваются секунды ролика и секунды входа, вход считается не короче ролика. Итог — примерно на 22% дороже того же ролика без видео, если вход не длиннее ролика, и больше, если длиннее.","type":"array","items":{"type":"string","format":"uri"},"maxItems":3},"audio_urls":{"description":"До 3 аудио (MP3, WAV, M4A; AAC, OGG и FLAC перекодируются в MP3) длиной от 2 до 15 сек: голос, музыка, ритм. Передаются вместе хотя бы с одним изображением или видео.","type":"array","items":{"type":"string","format":"uri"},"maxItems":3},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 15.","type":"integer","minimum":4,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p, 1080p, 4k.","type":"string","enum":["480p","720p","1080p","4k"],"default":"720p"},"quality":{"description":"fast — быстрее и дешевле, quality — детальнее. 1080p и 4K доступны только в quality.","type":"string","enum":["fast","quality"],"default":"fast"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1, 21:9.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1","21:9"],"default":"16:9"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"720p","quality":"fast","aspect_ratio":"16:9","image_urls":["https://example.com/hero.jpg"]}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/minimax/h3/text-to-video":{"post":{"tags":["MiniMax H3"],"summary":"MiniMax H3 — Текст → видео","description":"Ролик по описанию до 15 секунд, в том числе в 2K.","operationId":"minimax_h3_text_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 7 000 символов.","type":"string","maxLength":7000},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 15.","type":"integer","minimum":4,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 768p, 2k.","type":"string","enum":["768p","2k"],"default":"2k"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1, 21:9.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1","21:9"],"default":"16:9"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"2k","aspect_ratio":"16:9"}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/minimax/h3/text-to-video":{"post":{"tags":["MiniMax H3"],"summary":"Цена: MiniMax H3 — Текст → видео","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_minimax_h3_text_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 7 000 символов.","type":"string","maxLength":7000},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 15.","type":"integer","minimum":4,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 768p, 2k.","type":"string","enum":["768p","2k"],"default":"2k"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1, 21:9.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1","21:9"],"default":"16:9"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"2k","aspect_ratio":"16:9"}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/minimax/h3/image-to-video":{"post":{"tags":["MiniMax H3"],"summary":"MiniMax H3 — Фото → видео","description":"Оживляет изображение: по желанию с последним кадром. Формат берётся из кадра.","operationId":"minimax_h3_image_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt","image_url"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 7 000 символов.","type":"string","maxLength":7000},"image_url":{"description":"Ссылка на изображение, с которого начнётся ролик. JPEG, PNG или WebP до 20 МБ.","type":"string","format":"uri"},"end_image_url":{"description":"Необязательно. Ссылка на изображение, которым закончится ролик.","type":"string","format":"uri"},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 15.","type":"integer","minimum":4,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 768p, 2k.","type":"string","enum":["768p","2k"],"default":"2k"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","image_url":"https://example.com/frame.jpg","duration":5,"resolution":"2k"}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/minimax/h3/image-to-video":{"post":{"tags":["MiniMax H3"],"summary":"Цена: MiniMax H3 — Фото → видео","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_minimax_h3_image_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt","image_url"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 7 000 символов.","type":"string","maxLength":7000},"image_url":{"description":"Ссылка на изображение, с которого начнётся ролик. JPEG, PNG или WebP до 20 МБ.","type":"string","format":"uri"},"end_image_url":{"description":"Необязательно. Ссылка на изображение, которым закончится ролик.","type":"string","format":"uri"},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 15.","type":"integer","minimum":4,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 768p, 2k.","type":"string","enum":["768p","2k"],"default":"2k"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","image_url":"https://example.com/frame.jpg","duration":5,"resolution":"2k"}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/minimax/h3/reference-to-video":{"post":{"tags":["MiniMax H3"],"summary":"MiniMax H3 — Видео по референсам","description":"Ролик по референсам: до 9 изображений, 3 видео и 3 аудио, всего не больше 12.","operationId":"minimax_h3_reference_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика. На референсы ссылайтесь по порядку: «герой с изображения 1». До 7 000 символов.","type":"string","maxLength":7000},"image_urls":{"description":"До 9 изображений: герой, товар, одежда, локация. В промпте на них можно ссылаться как «изображение 1», «изображение 2».","type":"array","items":{"type":"string","format":"uri"},"maxItems":9},"video_urls":{"description":"До 3 роликов MP4 или MOV: движение, камера, монтаж. Каждый не короче 2 сек, вместе не длиннее 15 сек.","type":"array","items":{"type":"string","format":"uri"},"maxItems":3},"audio_urls":{"description":"До 3 аудио (MP3, WAV, M4A; AAC, OGG и FLAC перекодируются в MP3) длиной от 2 до 15 сек: голос, музыка, ритм. Передаются вместе хотя бы с одним изображением или видео.","type":"array","items":{"type":"string","format":"uri"},"maxItems":3},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 15.","type":"integer","minimum":4,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 768p, 2k.","type":"string","enum":["768p","2k"],"default":"2k"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1, 21:9, auto. auto — формат подбирается по референсам.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1","21:9","auto"],"default":"16:9"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"2k","aspect_ratio":"16:9","image_urls":["https://example.com/hero.jpg"]}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/minimax/h3/reference-to-video":{"post":{"tags":["MiniMax H3"],"summary":"Цена: MiniMax H3 — Видео по референсам","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_minimax_h3_reference_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика. На референсы ссылайтесь по порядку: «герой с изображения 1». До 7 000 символов.","type":"string","maxLength":7000},"image_urls":{"description":"До 9 изображений: герой, товар, одежда, локация. В промпте на них можно ссылаться как «изображение 1», «изображение 2».","type":"array","items":{"type":"string","format":"uri"},"maxItems":9},"video_urls":{"description":"До 3 роликов MP4 или MOV: движение, камера, монтаж. Каждый не короче 2 сек, вместе не длиннее 15 сек.","type":"array","items":{"type":"string","format":"uri"},"maxItems":3},"audio_urls":{"description":"До 3 аудио (MP3, WAV, M4A; AAC, OGG и FLAC перекодируются в MP3) длиной от 2 до 15 сек: голос, музыка, ритм. Передаются вместе хотя бы с одним изображением или видео.","type":"array","items":{"type":"string","format":"uri"},"maxItems":3},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 15.","type":"integer","minimum":4,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 768p, 2k.","type":"string","enum":["768p","2k"],"default":"2k"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1, 21:9, auto. auto — формат подбирается по референсам.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1","21:9","auto"],"default":"16:9"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"2k","aspect_ratio":"16:9","image_urls":["https://example.com/hero.jpg"]}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/bytedance/seedance-2.0-mini/text-to-video":{"post":{"tags":["Seedance 2.0 Mini"],"summary":"Seedance 2.0 Mini — Текст → видео","description":"Ролик по описанию: до 15 секунд со звуком.","operationId":"bytedance_seedance_2_0_mini_text_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 7 500 символов.","type":"string","maxLength":7500},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 15.","type":"integer","minimum":4,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p.","type":"string","enum":["480p","720p"],"default":"720p"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1, 21:9.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1","21:9"],"default":"16:9"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"720p","aspect_ratio":"16:9"}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/bytedance/seedance-2.0-mini/text-to-video":{"post":{"tags":["Seedance 2.0 Mini"],"summary":"Цена: Seedance 2.0 Mini — Текст → видео","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_bytedance_seedance_2_0_mini_text_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 7 500 символов.","type":"string","maxLength":7500},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 15.","type":"integer","minimum":4,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p.","type":"string","enum":["480p","720p"],"default":"720p"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1, 21:9.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1","21:9"],"default":"16:9"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"720p","aspect_ratio":"16:9"}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/bytedance/seedance-2.0-mini/image-to-video":{"post":{"tags":["Seedance 2.0 Mini"],"summary":"Seedance 2.0 Mini — Фото → видео","description":"Оживляет изображение: ролик начинается с вашего кадра, по желанию заканчивается вторым.","operationId":"bytedance_seedance_2_0_mini_image_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt","image_url"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 7 500 символов.","type":"string","maxLength":7500},"image_url":{"description":"Ссылка на изображение, с которого начнётся ролик. JPEG, PNG или WebP до 20 МБ.","type":"string","format":"uri"},"end_image_url":{"description":"Необязательно. Ссылка на изображение, которым закончится ролик.","type":"string","format":"uri"},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 15.","type":"integer","minimum":4,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p.","type":"string","enum":["480p","720p"],"default":"720p"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","image_url":"https://example.com/frame.jpg","duration":5,"resolution":"720p"}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/bytedance/seedance-2.0-mini/image-to-video":{"post":{"tags":["Seedance 2.0 Mini"],"summary":"Цена: Seedance 2.0 Mini — Фото → видео","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_bytedance_seedance_2_0_mini_image_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt","image_url"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 7 500 символов.","type":"string","maxLength":7500},"image_url":{"description":"Ссылка на изображение, с которого начнётся ролик. JPEG, PNG или WebP до 20 МБ.","type":"string","format":"uri"},"end_image_url":{"description":"Необязательно. Ссылка на изображение, которым закончится ролик.","type":"string","format":"uri"},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 15.","type":"integer","minimum":4,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p.","type":"string","enum":["480p","720p"],"default":"720p"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","image_url":"https://example.com/frame.jpg","duration":5,"resolution":"720p"}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/bytedance/seedance-2.0-mini/reference-to-video":{"post":{"tags":["Seedance 2.0 Mini"],"summary":"Seedance 2.0 Mini — Видео по референсам","description":"Ролик по референсам: до 8 изображений, 3 видео и 3 аудио. С видео на входе действует ставка режима с видео: оплачиваются секунды ролика и секунды входа, вход считается не короче ролика. Итог — примерно на 22% дороже того же ролика без видео, если вход не длиннее ролика, и больше, если длиннее.","operationId":"bytedance_seedance_2_0_mini_reference_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика. На референсы ссылайтесь по порядку: «герой с изображения 1». До 7 500 символов.","type":"string","maxLength":7500},"image_urls":{"description":"До 8 изображений: герой, товар, одежда, локация. В промпте на них можно ссылаться как «изображение 1», «изображение 2».","type":"array","items":{"type":"string","format":"uri"},"maxItems":8},"video_urls":{"description":"До 3 роликов MP4 или MOV: движение, камера, монтаж. Каждый не короче 2 сек, вместе не длиннее 15 сек. С видео на входе действует ставка режима с видео: оплачиваются секунды ролика и секунды входа, вход считается не короче ролика. Итог — примерно на 22% дороже того же ролика без видео, если вход не длиннее ролика, и больше, если длиннее.","type":"array","items":{"type":"string","format":"uri"},"maxItems":3},"audio_urls":{"description":"До 3 аудио (MP3, WAV, M4A; AAC, OGG и FLAC перекодируются в MP3) длиной от 2 до 15 сек: голос, музыка, ритм. Передаются вместе хотя бы с одним изображением или видео.","type":"array","items":{"type":"string","format":"uri"},"maxItems":3},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 15.","type":"integer","minimum":4,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p.","type":"string","enum":["480p","720p"],"default":"720p"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1, 21:9.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1","21:9"],"default":"16:9"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"720p","aspect_ratio":"16:9","image_urls":["https://example.com/hero.jpg"]}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/bytedance/seedance-2.0-mini/reference-to-video":{"post":{"tags":["Seedance 2.0 Mini"],"summary":"Цена: Seedance 2.0 Mini — Видео по референсам","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_bytedance_seedance_2_0_mini_reference_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика. На референсы ссылайтесь по порядку: «герой с изображения 1». До 7 500 символов.","type":"string","maxLength":7500},"image_urls":{"description":"До 8 изображений: герой, товар, одежда, локация. В промпте на них можно ссылаться как «изображение 1», «изображение 2».","type":"array","items":{"type":"string","format":"uri"},"maxItems":8},"video_urls":{"description":"До 3 роликов MP4 или MOV: движение, камера, монтаж. Каждый не короче 2 сек, вместе не длиннее 15 сек. С видео на входе действует ставка режима с видео: оплачиваются секунды ролика и секунды входа, вход считается не короче ролика. Итог — примерно на 22% дороже того же ролика без видео, если вход не длиннее ролика, и больше, если длиннее.","type":"array","items":{"type":"string","format":"uri"},"maxItems":3},"audio_urls":{"description":"До 3 аудио (MP3, WAV, M4A; AAC, OGG и FLAC перекодируются в MP3) длиной от 2 до 15 сек: голос, музыка, ритм. Передаются вместе хотя бы с одним изображением или видео.","type":"array","items":{"type":"string","format":"uri"},"maxItems":3},"duration":{"description":"Длительность ролика в секундах, целое число от 4 до 15.","type":"integer","minimum":4,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 720p.","type":"string","enum":["480p","720p"],"default":"720p"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1, 21:9.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1","21:9"],"default":"16:9"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"720p","aspect_ratio":"16:9","image_urls":["https://example.com/hero.jpg"]}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/kuaishou/kling-3.0-turbo/text-to-video":{"post":{"tags":["Kling 3.0 Turbo"],"summary":"Kling 3.0 Turbo — Текст → видео","description":"Ролик по описанию.","operationId":"kuaishou_kling_3_0_turbo_text_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 2 500 символов.","type":"string","maxLength":2500},"duration":{"description":"Длительность ролика в секундах, целое число от 3 до 15.","type":"integer","minimum":3,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 720p, 1080p.","type":"string","enum":["720p","1080p"],"default":"720p"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 1:1.","type":"string","enum":["16:9","9:16","1:1"],"default":"16:9"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"720p","aspect_ratio":"16:9"}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/kuaishou/kling-3.0-turbo/text-to-video":{"post":{"tags":["Kling 3.0 Turbo"],"summary":"Цена: Kling 3.0 Turbo — Текст → видео","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_kuaishou_kling_3_0_turbo_text_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 2 500 символов.","type":"string","maxLength":2500},"duration":{"description":"Длительность ролика в секундах, целое число от 3 до 15.","type":"integer","minimum":3,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 720p, 1080p.","type":"string","enum":["720p","1080p"],"default":"720p"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 1:1.","type":"string","enum":["16:9","9:16","1:1"],"default":"16:9"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"720p","aspect_ratio":"16:9"}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/kuaishou/kling-3.0-turbo/image-to-video":{"post":{"tags":["Kling 3.0 Turbo"],"summary":"Kling 3.0 Turbo — Фото → видео","description":"Оживляет изображение. Формат берётся из кадра.","operationId":"kuaishou_kling_3_0_turbo_image_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt","image_url"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 2 500 символов.","type":"string","maxLength":2500},"image_url":{"description":"Ссылка на изображение, с которого начнётся ролик. JPEG, PNG или WebP до 20 МБ.","type":"string","format":"uri"},"duration":{"description":"Длительность ролика в секундах, целое число от 3 до 15.","type":"integer","minimum":3,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 720p, 1080p.","type":"string","enum":["720p","1080p"],"default":"720p"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","image_url":"https://example.com/frame.jpg","duration":5,"resolution":"720p"}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/kuaishou/kling-3.0-turbo/image-to-video":{"post":{"tags":["Kling 3.0 Turbo"],"summary":"Цена: Kling 3.0 Turbo — Фото → видео","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_kuaishou_kling_3_0_turbo_image_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt","image_url"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 2 500 символов.","type":"string","maxLength":2500},"image_url":{"description":"Ссылка на изображение, с которого начнётся ролик. JPEG, PNG или WebP до 20 МБ.","type":"string","format":"uri"},"duration":{"description":"Длительность ролика в секундах, целое число от 3 до 15.","type":"integer","minimum":3,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 720p, 1080p.","type":"string","enum":["720p","1080p"],"default":"720p"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","image_url":"https://example.com/frame.jpg","duration":5,"resolution":"720p"}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/minimax/h3-max/text-to-video":{"post":{"tags":["MiniMax H3 Max"],"summary":"MiniMax H3 Max — Текст → видео","description":"Самый быстрый рендер: ролик по описанию до 15 секунд.","operationId":"minimax_h3_max_text_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 50 000 символов.","type":"string","maxLength":50000},"duration":{"description":"Длительность ролика в секундах, целое число от 5 до 15.","type":"integer","minimum":5,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 768p.","type":"string","enum":["480p","768p"],"default":"768p"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1, 21:9.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1","21:9"],"default":"16:9"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"768p","aspect_ratio":"16:9"}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/minimax/h3-max/text-to-video":{"post":{"tags":["MiniMax H3 Max"],"summary":"Цена: MiniMax H3 Max — Текст → видео","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_minimax_h3_max_text_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 50 000 символов.","type":"string","maxLength":50000},"duration":{"description":"Длительность ролика в секундах, целое число от 5 до 15.","type":"integer","minimum":5,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 768p.","type":"string","enum":["480p","768p"],"default":"768p"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1, 21:9.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1","21:9"],"default":"16:9"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"768p","aspect_ratio":"16:9"}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/minimax/h3-max/image-to-video":{"post":{"tags":["MiniMax H3 Max"],"summary":"MiniMax H3 Max — Фото → видео","description":"Оживляет изображение: по желанию с последним кадром. Формат берётся из кадра.","operationId":"minimax_h3_max_image_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt","image_url"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 50 000 символов.","type":"string","maxLength":50000},"image_url":{"description":"Ссылка на изображение, с которого начнётся ролик. JPEG, PNG или WebP до 20 МБ.","type":"string","format":"uri"},"end_image_url":{"description":"Необязательно. Ссылка на изображение, которым закончится ролик.","type":"string","format":"uri"},"duration":{"description":"Длительность ролика в секундах, целое число от 5 до 15.","type":"integer","minimum":5,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 768p.","type":"string","enum":["480p","768p"],"default":"768p"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","image_url":"https://example.com/frame.jpg","duration":5,"resolution":"768p"}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/minimax/h3-max/image-to-video":{"post":{"tags":["MiniMax H3 Max"],"summary":"Цена: MiniMax H3 Max — Фото → видео","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_minimax_h3_max_image_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt","image_url"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 50 000 символов.","type":"string","maxLength":50000},"image_url":{"description":"Ссылка на изображение, с которого начнётся ролик. JPEG, PNG или WebP до 20 МБ.","type":"string","format":"uri"},"end_image_url":{"description":"Необязательно. Ссылка на изображение, которым закончится ролик.","type":"string","format":"uri"},"duration":{"description":"Длительность ролика в секундах, целое число от 5 до 15.","type":"integer","minimum":5,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 768p.","type":"string","enum":["480p","768p"],"default":"768p"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","image_url":"https://example.com/frame.jpg","duration":5,"resolution":"768p"}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/minimax/h3-max/reference-to-video":{"post":{"tags":["MiniMax H3 Max"],"summary":"MiniMax H3 Max — Видео по референсам","description":"Ролик по референсам: до 9 изображений, 3 видео и 3 аудио, всего не больше 12.","operationId":"minimax_h3_max_reference_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика. На референсы ссылайтесь по порядку: «герой с изображения 1». До 50 000 символов.","type":"string","maxLength":50000},"image_urls":{"description":"До 9 изображений: герой, товар, одежда, локация. В промпте на них можно ссылаться как «изображение 1», «изображение 2».","type":"array","items":{"type":"string","format":"uri"},"maxItems":9},"video_urls":{"description":"До 3 роликов MP4 или MOV: движение, камера, монтаж. Каждый не короче 2 сек, вместе не длиннее 15 сек.","type":"array","items":{"type":"string","format":"uri"},"maxItems":3},"audio_urls":{"description":"До 3 аудио (MP3, WAV, M4A; AAC, OGG и FLAC перекодируются в MP3) длиной от 2 до 15 сек: голос, музыка, ритм. Передаются вместе хотя бы с одним изображением или видео.","type":"array","items":{"type":"string","format":"uri"},"maxItems":3},"duration":{"description":"Длительность ролика в секундах, целое число от 5 до 15.","type":"integer","minimum":5,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 768p.","type":"string","enum":["480p","768p"],"default":"768p"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1, 21:9.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1","21:9"],"default":"16:9"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"768p","aspect_ratio":"16:9","image_urls":["https://example.com/hero.jpg"]}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/minimax/h3-max/reference-to-video":{"post":{"tags":["MiniMax H3 Max"],"summary":"Цена: MiniMax H3 Max — Видео по референсам","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_minimax_h3_max_reference_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика. На референсы ссылайтесь по порядку: «герой с изображения 1». До 50 000 символов.","type":"string","maxLength":50000},"image_urls":{"description":"До 9 изображений: герой, товар, одежда, локация. В промпте на них можно ссылаться как «изображение 1», «изображение 2».","type":"array","items":{"type":"string","format":"uri"},"maxItems":9},"video_urls":{"description":"До 3 роликов MP4 или MOV: движение, камера, монтаж. Каждый не короче 2 сек, вместе не длиннее 15 сек.","type":"array","items":{"type":"string","format":"uri"},"maxItems":3},"audio_urls":{"description":"До 3 аудио (MP3, WAV, M4A; AAC, OGG и FLAC перекодируются в MP3) длиной от 2 до 15 сек: голос, музыка, ритм. Передаются вместе хотя бы с одним изображением или видео.","type":"array","items":{"type":"string","format":"uri"},"maxItems":3},"duration":{"description":"Длительность ролика в секундах, целое число от 5 до 15.","type":"integer","minimum":5,"maximum":15,"default":5},"resolution":{"description":"Разрешение ролика: 480p, 768p.","type":"string","enum":["480p","768p"],"default":"768p"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 4:3, 3:4, 1:1, 21:9.","type":"string","enum":["16:9","9:16","4:3","3:4","1:1","21:9"],"default":"16:9"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"768p","aspect_ratio":"16:9","image_urls":["https://example.com/hero.jpg"]}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/kuaishou/kling-2.6/text-to-video":{"post":{"tags":["Kling 2.6"],"summary":"Kling 2.6 — Текст → видео","description":"Ролик по описанию.","operationId":"kuaishou_kling_2_6_text_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 2 500 символов.","type":"string","maxLength":2500},"duration":{"description":"Длительность ролика в секундах: 5, 10.","type":"integer","enum":[5,10],"default":5},"resolution":{"description":"Разрешение ролика: 720p, 1080p.","type":"string","enum":["720p","1080p"],"default":"1080p"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 1:1.","type":"string","enum":["16:9","9:16","1:1"],"default":"16:9"},"generate_audio":{"description":"Сгенерировать звук вместе с роликом. Цена со звуком выше.","type":"boolean","default":false},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"1080p","aspect_ratio":"16:9","generate_audio":false}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/kuaishou/kling-2.6/text-to-video":{"post":{"tags":["Kling 2.6"],"summary":"Цена: Kling 2.6 — Текст → видео","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_kuaishou_kling_2_6_text_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 2 500 символов.","type":"string","maxLength":2500},"duration":{"description":"Длительность ролика в секундах: 5, 10.","type":"integer","enum":[5,10],"default":5},"resolution":{"description":"Разрешение ролика: 720p, 1080p.","type":"string","enum":["720p","1080p"],"default":"1080p"},"aspect_ratio":{"description":"Соотношение сторон: 16:9, 9:16, 1:1.","type":"string","enum":["16:9","9:16","1:1"],"default":"16:9"},"generate_audio":{"description":"Сгенерировать звук вместе с роликом. Цена со звуком выше.","type":"boolean","default":false},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","duration":5,"resolution":"1080p","aspect_ratio":"16:9","generate_audio":false}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/kuaishou/kling-2.6/image-to-video":{"post":{"tags":["Kling 2.6"],"summary":"Kling 2.6 — Фото → видео","description":"Оживляет изображение: по желанию с последним кадром. Формат берётся из кадра.","operationId":"kuaishou_kling_2_6_image_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt","image_url"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 2 500 символов.","type":"string","maxLength":2500},"image_url":{"description":"Ссылка на изображение, с которого начнётся ролик. JPEG, PNG или WebP до 20 МБ.","type":"string","format":"uri"},"end_image_url":{"description":"Необязательно. Ссылка на изображение, которым закончится ролик.","type":"string","format":"uri"},"duration":{"description":"Длительность ролика в секундах: 5, 10.","type":"integer","enum":[5,10],"default":5},"resolution":{"description":"Разрешение ролика: 720p, 1080p.","type":"string","enum":["720p","1080p"],"default":"1080p"},"generate_audio":{"description":"Сгенерировать звук вместе с роликом. Цена со звуком выше.","type":"boolean","default":false},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","image_url":"https://example.com/frame.jpg","duration":5,"resolution":"1080p","generate_audio":false}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/kuaishou/kling-2.6/image-to-video":{"post":{"tags":["Kling 2.6"],"summary":"Цена: Kling 2.6 — Фото → видео","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_kuaishou_kling_2_6_image_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt","image_url"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 2 500 символов.","type":"string","maxLength":2500},"image_url":{"description":"Ссылка на изображение, с которого начнётся ролик. JPEG, PNG или WebP до 20 МБ.","type":"string","format":"uri"},"end_image_url":{"description":"Необязательно. Ссылка на изображение, которым закончится ролик.","type":"string","format":"uri"},"duration":{"description":"Длительность ролика в секундах: 5, 10.","type":"integer","enum":[5,10],"default":5},"resolution":{"description":"Разрешение ролика: 720p, 1080p.","type":"string","enum":["720p","1080p"],"default":"1080p"},"generate_audio":{"description":"Сгенерировать звук вместе с роликом. Цена со звуком выше.","type":"boolean","default":false},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","image_url":"https://example.com/frame.jpg","duration":5,"resolution":"1080p","generate_audio":false}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/kuaishou/kling-3.0-motion-control/motion-transfer":{"post":{"tags":["Kling 3.0 Motion Control"],"summary":"Kling 3.0 Motion Control — Перенос движения","description":"Герой с изображения повторяет движение из видео-образца.","operationId":"kuaishou_kling_3_0_motion_control_motion_transfer","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["image_url","video_url"],"properties":{"image_url":{"description":"Изображение героя, на которого переносится движение. Лучше в полный рост, лицо хорошо видно.","type":"string","format":"uri"},"video_url":{"description":"Ролик-образец с движением: от 3 до 30 сек (до 10 сек при character_orientation: \"image\").","type":"string","format":"uri"},"character_orientation":{"description":"video — герой поворачивается как в образце (до 30 сек), image — сохраняет позу и ракурс с изображения (до 10 сек).","type":"string","enum":["video","image"],"default":"video"},"quality":{"description":"std — стандартное, pro — детальнее и стабильнее.","type":"string","enum":["std","pro"],"default":"std"},"prompt":{"description":"Необязательно. Уточнения к сцене: фон, одежда, настроение. До 2 500 символов.","type":"string","maxLength":2500},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"image_url":"https://example.com/frame.jpg","video_url":"https://example.com/source.mp4","character_orientation":"video","quality":"std","prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя"}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/kuaishou/kling-3.0-motion-control/motion-transfer":{"post":{"tags":["Kling 3.0 Motion Control"],"summary":"Цена: Kling 3.0 Motion Control — Перенос движения","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_kuaishou_kling_3_0_motion_control_motion_transfer","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["image_url","video_url"],"properties":{"image_url":{"description":"Изображение героя, на которого переносится движение. Лучше в полный рост, лицо хорошо видно.","type":"string","format":"uri"},"video_url":{"description":"Ролик-образец с движением: от 3 до 30 сек (до 10 сек при character_orientation: \"image\").","type":"string","format":"uri"},"character_orientation":{"description":"video — герой поворачивается как в образце (до 30 сек), image — сохраняет позу и ракурс с изображения (до 10 сек).","type":"string","enum":["video","image"],"default":"video"},"quality":{"description":"std — стандартное, pro — детальнее и стабильнее.","type":"string","enum":["std","pro"],"default":"std"},"prompt":{"description":"Необязательно. Уточнения к сцене: фон, одежда, настроение. До 2 500 символов.","type":"string","maxLength":2500},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"image_url":"https://example.com/frame.jpg","video_url":"https://example.com/source.mp4","character_orientation":"video","quality":"std","prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя"}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/kuaishou/kling-2.5-turbo/image-to-video":{"post":{"tags":["Kling 2.5 Turbo"],"summary":"Kling 2.5 Turbo — Фото → видео","description":"Оживляет изображение: по желанию с последним кадром. Формат берётся из кадра.","operationId":"kuaishou_kling_2_5_turbo_image_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt","image_url"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 2 500 символов.","type":"string","maxLength":2500},"image_url":{"description":"Ссылка на изображение, с которого начнётся ролик. JPEG, PNG или WebP до 20 МБ.","type":"string","format":"uri"},"end_image_url":{"description":"Необязательно. Ссылка на изображение, которым закончится ролик.","type":"string","format":"uri"},"duration":{"description":"Длительность ролика в секундах: 5, 10.","type":"integer","enum":[5,10],"default":5},"resolution":{"description":"Разрешение ролика: 720p, 1080p.","type":"string","enum":["720p","1080p"],"default":"1080p"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","image_url":"https://example.com/frame.jpg","duration":5,"resolution":"1080p"}}}},"responses":{"201":{"description":"Запрос создан и передан в работу","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"202":{"description":"Запрос создан и оплачен, подтверждение запуска не успело прийти — статус узнавайте по urls.status","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"400":{"description":"Некорректный запрос. С request_id — запрос создан, но модель отказалась его запускать; деньги вернулись","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"402":{"description":"Недостаточно средств (insufficient_balance) или исчерпан лимит ключа (key_limit_reached)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Нет такого режима или черновика","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"409":{"description":"Запрос с этим Idempotency-Key ещё создаётся, или черновик уже доводится","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"410":{"description":"Срок доводки черновика истёк","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"503":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/estimate/kuaishou/kling-2.5-turbo/image-to-video":{"post":{"tags":["Kling 2.5 Turbo"],"summary":"Цена: Kling 2.5 Turbo — Фото → видео","description":"Проверяет запрос целиком (включая файлы по ссылкам) и называет цену, ничего не списывая. Входит в лимит запросов на создание.","operationId":"estimate_kuaishou_kling_2_5_turbo_image_to_video","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Повтор с тем же ключом вернёт уже созданный запрос без нового списания."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt","image_url"],"properties":{"prompt":{"description":"Описание ролика: сцена, действие, камера, свет, звук. До 2 500 символов.","type":"string","maxLength":2500},"image_url":{"description":"Ссылка на изображение, с которого начнётся ролик. JPEG, PNG или WebP до 20 МБ.","type":"string","format":"uri"},"end_image_url":{"description":"Необязательно. Ссылка на изображение, которым закончится ролик.","type":"string","format":"uri"},"duration":{"description":"Длительность ролика в секундах: 5, 10.","type":"integer","enum":[5,10],"default":5},"resolution":{"description":"Разрешение ролика: 720p, 1080p.","type":"string","enum":["720p","1080p"],"default":"1080p"},"webhook_url":{"type":"string","format":"uri","description":"Необязательно. Адрес https://, куда придёт уведомление, когда запрос завершится."}}},"example":{"prompt":"Кинематографичный проезд камеры вдоль побережья на закате, мягкий тёплый свет, шум прибоя","image_url":"https://example.com/frame.jpg","duration":5,"resolution":"1080p"}}}},"responses":{"200":{"description":"Цена запроса","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"usd_rub_rate":{"type":"number"}}},"billable_seconds":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"seconds":{"type":"number"},"usd_per_second":{"type":"string"},"usd":{"type":"string"}}}},"output":{"type":"object","properties":{"duration_seconds":{"type":"number"},"resolution":{"type":"string"},"aspect_ratio":{"type":["string","null"]}}},"balance_rub":{"type":"string"},"enough_balance":{"type":"boolean"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/requests/{id}":{"get":{"summary":"Статус и результат запроса","operationId":"get_request","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Запрос","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"404":{"description":"Не найден","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/requests":{"get":{"summary":"Список запросов","operationId":"list_requests","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"before","in":"query","schema":{"type":"string","format":"uuid"}},{"name":"status","in":"query","schema":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]}},{"name":"endpoint","in":"query","schema":{"type":"string"},"description":"Начало пути режима, например bytedance/seedance-2.5"}],"responses":{"200":{"description":"Страница запросов, новые сверху","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"list"},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"object":{"type":"string","const":"request"},"endpoint":{"type":"string"},"model":{"type":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","nsfw"]},"source":{"type":"string","enum":["api","playground"],"description":"Откуда создан запрос: по ключу или из плейграунда консоли."},"input":{"type":"object"},"output":{"type":["object","null"],"properties":{"video":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"download_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"duration_seconds":{"type":["number","null"]},"resolution":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]}}}}},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"price":{"type":"object","properties":{"rub":{"type":"string"},"usd":{"type":"string"},"refunded":{"type":"boolean"}}},"draft":{"type":"object","description":"Только у готового черновика Seedance 2.5 (resolution: \"draft\").","properties":{"finalize_available":{"type":"boolean"},"finalize_until":{"type":"string","format":"date-time"},"finalize_endpoint":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"urls":{"type":"object","properties":{"status":{"type":"string","format":"uri"}}}}}},"has_more":{"type":"boolean"},"next_before":{"type":["string","null"],"description":"Передайте в before, чтобы получить следующую страницу."}}}}}},"400":{"description":"Некорректный параметр","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/files":{"post":{"summary":"Ссылка для загрузки файла","operationId":"create_upload","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["content_type","size_bytes"],"properties":{"content_type":{"type":"string","enum":["image/jpeg","image/png","image/webp","image/heic","image/heif","video/mp4","video/quicktime","audio/mpeg","audio/mp3","audio/wav","audio/x-wav","audio/mp4","audio/x-m4a","audio/aac","audio/ogg","audio/flac"]},"size_bytes":{"type":"integer","minimum":1,"description":"Точный размер файла в байтах: изображение до 20 МБ, видео до 200 МБ, аудио до 50 МБ. Входит в подпись адреса загрузки."},"filename":{"type":"string"}}}}}},"responses":{"201":{"description":"Адрес загрузки (PUT, действует час) и постоянная ссылка на файл","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"file"},"id":{"type":"string"},"file_url":{"type":"string","format":"uri"},"upload":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"method":{"type":"string","const":"PUT"},"headers":{"type":"object"},"expires_at":{"type":"string","format":"date-time"}}}}}}}},"400":{"description":"Неподдерживаемый тип или размер файла","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/account":{"get":{"summary":"Баланс и лимиты","operationId":"get_account","responses":{"200":{"description":"Аккаунт"},"401":{"description":"Нет ключа или ключ неверный либо отозван","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"403":{"description":"Аккаунт приостановлен","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"413":{"description":"Тело запроса больше 1 МБ","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"429":{"description":"Лимит частоты (rate_limited) или одновременных запросов (concurrency_limit)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}},"500":{"description":"Внутренняя ошибка — повторите с тем же Idempotency-Key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}},"/models":{"get":{"summary":"Модели и режимы","operationId":"list_models","security":[],"responses":{"200":{"description":"Каталог"}}}},"/models/{vendor}/{model}":{"get":{"summary":"Одна модель: режимы, поля и цены","operationId":"get_model","security":[],"parameters":[{"name":"vendor","in":"path","required":true,"schema":{"type":"string"},"example":"bytedance"},{"name":"model","in":"path","required":true,"schema":{"type":"string"},"example":"seedance-2.5"}],"responses":{"200":{"description":"Модель"},"404":{"description":"Нет такой модели","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Машинный код ошибки — по нему принимайте решения."},"message":{"type":"string","description":"Понятный человеку текст на русском."},"field":{"type":"string","description":"Поле или заголовок, к которому относится ошибка."},"request_id":{"type":"string","format":"uuid","description":"Есть, если запрос был создан, но модель отказалась его запускать: он завершён со статусом failed, деньги вернулись."},"price_rub":{"type":"string","description":"insufficient_balance: цена запроса."},"balance_rub":{"type":"string","description":"insufficient_balance: баланс."},"active":{"type":"integer","description":"concurrency_limit: запросов в работе."},"limit":{"type":"integer","description":"concurrency_limit: предел аккаунта."},"retry_after_seconds":{"type":"integer","description":"rate_limited: через сколько секунд повторить."}}}}}}}}}}}}}