Перейти к навигации

BeatAPI Image API

Image API

Создайте одну асинхронную задачу генерации изображения, указав постоянный ID модели BeatAPI.

МодельВходные данныеОбязательные поляОсновные настройки
qwen-image-2.1Текст, изображения-референсыmodel, promptДо 10 референсов, 1K/2K, прозрачный PNG/WebP, улучшение промпта по условиям запроса
nano-bananaТекст, изображения-референсыmodel, promptДо 3 референсов, фиксированное 1K, PNG/JPEG
nano-banana-2Текст, изображения-референсыmodel, promptДо 14 референсов, 1K/2K/4K, PNG/JPEG
nano-banana-2.1Текст, изображения-референсыmodel, promptТе же поля и цены, что у Nano Banana 2. До 14 референсов, 1K/2K/4K, PNG/JPEG
nano-banana-2-liteТекст, изображения-референсыmodel, promptДо 14 референсов, фиксированное 1K, PNG/JPEG
nano-banana-proТекст, изображения-референсыmodel, promptДо 14 референсов, 1K/2K/4K, PNG/JPG
gpt-image-2Текст, изображения-референсыmodel, promptДо 16 референсов, широкий выбор соотношений сторон, до 4K
gpt-image-2.5-flareТекст, изображения-референсыmodel, promptДо 16 референсов, 16 соотношений сторон, до 4K
gpt-image-2.5-sunburstТекст, изображения-референсыmodel, promptДо 16 референсов, 16 соотношений сторон, до 4K
seedream-5-proТекст, изображения-референсыmodel, promptДо 10 референсов, 1K/2K
grok-imagine-image-2.0Текст, изображения-референсыmodel, promptДо 5 референсов, автоматический выбор режима редактирования

На странице выбранной модели описаны все поля, значения по умолчанию, допустимые значения, правила сочетания параметров, примеры запросов, ответы и ошибки.

Список доступных моделей

GET /v1/media/models

ПараметрГде передаётсяТипОбязателенДопустимые значения
media_typeСтрока запросаstringНетimage, video

Этот общедоступный метод не требует авторизации.

curl "https://api.beatapi.io/v1/media/models?media_type=image"
{
"data": {
"object": "list",
"data": [
{
"id": "gpt-image-2",
"object": "generation_model",
"name": "GPT Image 2",
"media_type": "image",
"input_modes": ["text", "image"]
},
{
"id": "gpt-image-2.5-flare",
"object": "generation_model",
"name": "GPT Image 2.5 Flare",
"media_type": "image",
"input_modes": ["text", "image"]
},
{
"id": "gpt-image-2.5-sunburst",
"object": "generation_model",
"name": "GPT Image 2.5 Sunburst",
"media_type": "image",
"input_modes": ["text", "image"]
}
]
}
}
ПолеТипЗначение
idstringПостоянный публичный ID модели
objectstringgeneration_model
namestringОтображаемое название
media_typestringimage или video
input_modesstring[]Любые из text, image, frames, reference

Внутренняя маршрутизация к поставщикам не входит в публичный контракт.

Общие правила создания задачи

POST /v1/images/tasks

ЗаголовокТипОбязателенПравила
AuthorizationstringДаBearer <BEATAPI_API_KEY>
Content-TypestringДаapplication/json
Idempotency-KeystringНет, рекомендуетсяДо 255 символов; один ключ на одну логическую операцию создания

Тело запроса должно соответствовать ровно одной схеме модели. Поле model определяет схему; неизвестные поля отклоняются.

curl https://api.beatapi.io/v1/images/tasks \
-X POST \
-H "Authorization: Bearer $BEATAPI_API_KEY" \
-H "Idempotency-Key: image-gpt-image-2-001" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "Editorial product photograph on a warm stone pedestal.",
"aspect_ratio": "1:1",
"resolution": "1K"
}'

Корректный запрос возвращает 201 Created с data.id, task_kind="image", выбранной model, status="queued", данными об использовании и request_id. Проверяйте GET /v1/tasks/{task_id} каждые 5–10 секунд до succeeded или failed. Готовое изображение доступно в data.output.media[] и data.output.r2_url.

Точный повтор с тем же ключом идемпотентности возвращает уже принятую задачу. Тот же ключ с другим телом запроса даёт 409 idempotency_conflict.

Общие ошибки

HTTPТипичный кодЧто делать
400bad_requestИсправьте поля, значения, сочетания параметров, количество файлов или URL медиа
400content_policy_violationИзмените промпт или входные данные; не отправляйте повтор без изменений
401missing_api_key / invalid_api_keyПередайте Bearer-ключ либо замените неверный, просроченный, отключённый или исчерпавший лимит
402insufficient_creditsПополните баланс перед созданием новой задачи
403forbiddenКлючу или аккаунту запрещена операция, например модель недоступна за счёт бонуса
409idempotency_conflictПовторно используйте ключ только с тем же телом запроса
429rate_limit_exceededПодождите время из Retry-After
500internal_errorПовторите один раз после задержки
503processing_unavailable / processing_timeout / processing_failed / result_transfer_failedПовторите позже с увеличивающейся задержкой; средства не списаны

Ответ с ошибкой содержит error.code, английское error.message, error.retryable, error.request_id, а при 429 — error.retry_after_seconds. Если уже принятая задача завершилась ошибкой, запрос статуса всё равно возвращает 200: проверьте data.error_code. Все коды и правила повторов описаны в разделе ошибок. Страницы отдельных моделей ниже содержат полные контракты для рабочей среды.