Генерация изображений и видео
Синхронные изображения, асинхронные видео и сохранение результата
Media API использует те же API-ключи, лимиты, PII-маскирование и учёт стоимости, что и текстовый шлюз. Для запуска нужна область gateway:write, а модель должна поддерживать соответствующий API surface — images или videos.
models_allowlist: null и пустой список [] означают доступ ко всем моделям. Непустой список разрешает только перечисленные ID; иначе Media API вернёт 403.Как найти подходящую модель
Публичный каталог можно фильтровать по API surface. Поля supported_parameters, media_capabilities и media_pricing показывают поддерживаемые параметры и схему цены.
Изображения: POST /v1/images/generations
Генерация изображения синхронная: соединение остаётся открытым, пока провайдер не вернёт результат. Ответ содержит base64 в data[].b64_json и блок usage. Сохраните base64 на клиенте как обычный файл.
/v1/images/generations. Старый /v1/images остаётся legacy-алиасом. Подробная настройка параметров приведена в гайде по изображениям.Параметры изображения
modelreqpromptreqresponse_formatnaspect_ratiosize / resolutionoutput_formatquality / backgroundseedinput_referencesproviderstream: true: шлюз вернёт 400. Используйте обычный синхронный запрос с достаточным timeout.Пример ответа изображения
Видео: POST /v1/videos
Видео создаётся асинхронно. Первый запрос возвращает 202 Accepted, локальный id задачи и polling_url. Опрашивайте этот URL до status: completed, затем скачайте бинарный файл через content_url.
Жизненный цикл video job
/v1/videosСоздать задачу; возвращает 202, id и polling_url
/v1/videos/{job_id}Обновить статус задачи у провайдера
/v1/videos/{job_id}/contentПолучить бинарный файл после завершения
Параметры видео
modelreqpromptreqdurationresolution / sizeaspect_ratiogenerate_audioframe_imagesinput_referencesseedprovidercallback_url вернёт 400. Используйте polling. Запрос к /content до готовности вернёт 409.Примеры ответов video job
Где сохраняются файлы
- Изображения: возвращаются inline как base64. KodikRouter не создаёт файл на сервере; декодируйте и сохраните его в своём приложении.
- Видео: KodikRouter хранит metadata задачи и usage, но не копию видео.
GET /contentпроксирует бинарный файл провайдера, поэтому клиент должен сохранить его самостоятельно.
Idempotency, тарификация и usage
Всегда отправляйте уникальный Idempotency-Key для логической генерации. Повтор с тем же ключом, организацией и API-ключом возвращает сохранённый ответ и не создаёт вторую платную задачу. Не переиспользуйте один idempotency key для другого prompt.
- Изображение списывается после успешного синхронного ответа провайдера.
- Видео списывается один раз при переходе задачи в completed, даже если статус опрашивается повторно.
- Стоимость и request ID доступны в Dashboard и через usage API при наличии scope
gateway:read. - Заголовки
X-KodikRouter-Request-IdиX-KodikRouter-Providerпомогают найти запрос в логах.
Основные ошибки
400Некорректный или неподдерживаемый параметр; stream/callback_url пока недоступны401API-ключ отсутствует или недействителен402Недостаточно средств для выполнения генерации403Нет gateway:write или модель не входит в непустой allowlist404Модель или video job не найдены; jobs изолированы по организации409Видео ещё не готово для скачивания429Превышен rate limit API-ключа502Ошибка upstream-провайдера