ДокументацияСправочник APIИзображения и видео

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

OpenAI-совместимые эндпоинты генерации и редактирования изображений, а также отправка и опрос асинхронного видео Grok Imagine.

Изображения и видео используют эндпоинты в форме оригиналов OpenAI / xAI, авторизация — Authorization: Bearer. Нативная генерация изображений Gemini сюда не входит: отдельного эндпоинта у неё нет, она по-прежнему идёт через generateContent, см. Gemini API.

Генерация изображений

POST/v1/images/generations

Тело совпадает с OpenAI Images API: model, prompt, опционально n, size, quality и т. д. Модели изображений (например, gpt-image-2 и grok-imagine-image-2.0) перечислены в разделе Модели.

generate.sh
curl https://soleapi.com/v1/images/generations \
  -H "Authorization: Bearer $SOLEAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "A watercolor lighthouse at dawn",
    "size": "1024x1024"
  }'
response.json
{
  "created": 1757030400,
  "data": [
    { "b64_json": "iVBORw0KGgo..." }
  ],
  "usage": { "input_tokens": 12, "output_tokens": 0, "total_tokens": 12 }
}

Редактирование изображений

POST/v1/images/edits

multipart/form-data: поле image содержит исходное изображение (можно несколько), prompt — инструкцию; остальные поля те же, что при генерации.

edit.sh
curl https://soleapi.com/v1/images/edits \
  -H "Authorization: Bearer $SOLEAPI_API_KEY" \
  -F model=gpt-image-2 \
  -F image=@lighthouse.png \
  -F prompt="Turn the sky into a starry night"

Изображения тарифицируются поштучно независимо от эндпоинта: цену за штуку см. на странице модели; n изображений стоят в n раз дороже. Эндпоинт генерации принимает "stream": true для SSE-превью и финального изображения — в зависимости от целевой модели. Эндпоинты изображений допускают встроенные медиа, поэтому действует больший лимит тела, как у диалоговых эндпоинтов.

Генерация видео (асинхронно)

Видео — единственный асинхронный эндпоинт шлюза: отправка возвращает только id задания, апстрим рендерит в фоне, а клиент опрашивает статус до готовности.

POST/v1/videos/generations

Тело следует официальным полям xAI Grok Imagine: model (например, grok-imagine-video-1.5), prompt, опционально duration (секунды), aspect_ratio, resolution и т. д.

submit.sh
curl https://soleapi.com/v1/videos/generations \
  -H "Authorization: Bearer $SOLEAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-imagine-video-1.5",
    "prompt": "A lighthouse in a storm, cinematic",
    "duration": 6,
    "aspect_ratio": "16:9"
  }'

# => { "request_id": "8f0c…" }
POST/v1/videos/edits

Редактирование видео работает так же, в тело добавляется исходное видео; ответ — снова request_id.

GET/v1/videos/{request_id}

Опрашивайте по request_id, полученному при отправке. Пока status равен pending — ждите; при done в video.url лежит готовый файл, а video.duration — его длительность в секундах; failed / expired означают, что рендер на апстриме не удался или результат истёк.

poll.sh
curl https://soleapi.com/v1/videos/8f0c… \
  -H "Authorization: Bearer $SOLEAPI_API_KEY"

# => { "status": "done", "video": { "url": "https://…/video.mp4", "duration": 6 } }

Тарификация: при отправке ничего не списывается, лишь резервируется оценка; списание происходит, когда опрос видит status = done, секунды считаются по duration, указанному вами при отправке (длина готового ролика используется только если вы его не передали). Неудавшийся рендер бесплатен. Всегда опрашивайте до терминального состояния: даже если результат вам больше не нужен, шлюз сам запросит апстрим и проведёт списание, так что «не опрашивать» не значит «не платить». Опрашивайте каждые 5–10 секунд; опрос учитывается в RPM.

Связанные ошибки

Id сообщенияHTTPЗначение
video_job_missing400В пути опроса нет request_id.
video_job_not_found404Задание не существует или принадлежит другому аккаунту.
video_job_route_gone502Апстрим, использованный заданием, удалён; результат получить нельзя.
video_job_unavailable500Сервис заданий временно недоступен — повторите позже.

Остальные ошибки совпадают с диалоговыми эндпоинтами, см. Ошибки.