Перейти к основному содержанию
POST
Создать задачу генерации
Единая точка входа для всей генерации медиа. Она создаёт асинхронную задачу: вы выбираете модель, описываете параметры в объекте input и получаете taskId, по которому опрашиваете задачу или скачиваете результат.
Стоимость списывается в момент создания, а не по завершении. Если отправка провайдеру не удалась, списание автоматически возвращается.

Конверт ответа

Все медиа-эндпоинты отвечают одним конвертом: code дублирует HTTP-статус, msg — человекочитаемый текст, data — полезная нагрузка (может быть null). При успехе code всегда равен 200, а msg — "success", даже если HTTP-статус равен 201.
Это не формат ошибок текстовых эндпоинтов. Ошибка здесь выглядит как {"code": 422, "msg": "…", "data": null}, а не как объект error. Разбор — на странице Ошибки.
Единственное исключение — 401: если ключ не прошёл проверку, ошибку формирует промежуточный слой, и она приходит в формате OpenAI.

Тело запроса

Неизвестные поля внутри input игнорируются. Обязательные поля, перечисления, ограничения длины и количества, а также числовые диапазоны проверяются.
Поле step (в схеме оно называется multipleOf) сервером не проверяется. Не рассчитывайте на него.
Максимальный размер тела запроса — 100 МБ.

Первый запрос

Точный состав input, включая имя массива ссылок, смотрите в input_schema модели, а не в таблицах документации.

Идемпотентность

Заголовок Idempotency-Key длиной до 255 символов делает создание безопасным для повторов: повторный запрос с тем же ключом возвращает исходную задачу и не списывает средства повторно.
Не генерируйте новый ключ на каждый повтор. Новый ключ — это новая задача и повторное списание.

Изображение на входе

Если генерации нужно исходное изображение, сначала загрузите файл в хранилище и подставьте полученный url в input_urls. Загрузить файл можно в хранилище.
Ссылка должна быть публично доступна без авторизации — её скачает генератор. Подойдёт и обычная прямая ссылка на файл в интернете, если провайдер дотянется до неё.

Полный цикл: создать и дождаться

Опрос статуса — основной контракт: создание возвращает только taskId, результат приходит в поле resultJson объекта задачи.
Python
Подробнее о состояниях и о том, почему state и фильтр status выглядят по-разному, — на странице Статус задачи.

Уведомление вместо опроса

Если задать callBackUrl, платформа отправит POST на этот адрес, когда задача дойдёт до финального состояния. Тело — тот же конверт с заполненным data:
До трёх попыток: первая сразу, повторы примерно через 15 и 30 секунд. Доставка «fire-and-forget» — запрос не подписывается, поэтому принимающая сторона должна защищаться сама. Недоставленное уведомление на задачу не влияет: опрос остаётся рабочим вариантом.

Коды ответа

Разбор — на странице Ошибки.

Статус задачи

Поля объекта задачи и состояния

Жизненный цикл задачи

Скачивание, архив, удаление, восстановление

Каталог медиа-моделей

Схемы параметров и цены

Медиа-сессии

Группировка задач

Авторизации

Authorization
string
header
обязательно

API-ключ в формате sk-.... Альтернативно — заголовок X-Api-Key: sk-... (совместимо с Anthropic SDK).

Заголовки

Idempotency-Key
string

Ключ идемпотентности (максимум 255 символов). Повторный запрос с тем же ключом возвращает исходную задачу и не списывает средства повторно.

Maximum string length: 255

Тело

application/json
model
string
обязательно

Идентификатор модели из GET /api/v1/media/models.

Пример:

"nano-banana-2"

input
object
обязательно

Параметры модели. Состав и ограничения описаны в input_schema модели.

sessionId
string

Идентификатор медиа-сессии из POST /api/v1/media/sessions.

callBackUrl
string

Адрес, на который придёт POST с результатом, когда задача дойдёт до финального состояния. Не подписывается.

Ответ

Задача создана.

code
integer
обязательно
Пример:

200

msg
string
обязательно
Пример:

"success"

data
object
обязательно