Skip to main content
POST
cURL
POST /v1/images/generations Endpoint text-to-image использует тело запроса application/json. Передайте prompt, держите HTTP-запрос открытым и прочитайте готовое изображение из data[0].b64_json в том же ответе.
Используйте https://bettertoken.ai/v1 как Base URL. API Key BetterToken передается через Authorization: Bearer YOUR_API_KEY.
В Playground справа можно заполнить Authorization и тело запроса, а затем отправить запрос напрямую на https://bettertoken.ai/v1/images/generations.
Не помещайте API keys во frontend-код браузера, Git-репозитории, тикеты, скриншоты или логи. Для server-side proxy calls храните ключи только в переменных окружения сервера или secret manager.

Выберите нужный сценарий

  • Сгенерировать изображение из текста и сохранить результат: оставайтесь на этой странице. Начните с примера curl, затем используйте раздел Сохранение изображения для декодирования data[0].b64_json.
  • Изменить исходное изображение: используйте Image to image, где запрос отправляется как multipart/form-data с одним или несколькими файлами.
  • Выбрать модель, параметры и оценить бюджет: проверьте актуальные Model ID и цены в model plaza, а параметры запроса — в разделе Рекомендуемые значения ниже. Полный контекст первого запроса приведён в статье о GPT Image 2.

Быстрый старт с curl

Используйте https://bettertoken.ai/v1 как Base URL и отправьте запрос на https://bettertoken.ai/v1/images/generations:

Рекомендуемые значения

Передавайте эти поля явно в каждом запросе:
Чтобы сгенерировать несколько изображений, отправляйте несколько независимых запросов. Не рассчитывайте на один запрос с n > 1.

Рекомендуемые размеры

size задает ожидаемое соотношение сторон и уровень размера. Фактические пиксели в ответе могут быть сопоставлены или скорректированы сервером. Используйте размеры декодированного изображения, а не принудительную обрезку до запрошенного значения.

Сохранение изображения

Успешный ответ следует OpenAI-совместимой форме image response:
Прочитайте data[0].b64_json и сохраните его как base64 image content. Ответ может содержать дополнительные поля, например revised_prompt; клиент должен разрешать такие поля. Всегда задавайте output_format: "png". Затем сохраняйте декодированное изображение как .png без проверки file headers.

Пример JavaScript (Node.js)

Не рассчитывайте, что output_format: "jpeg" или output_format: "webp" сразу вернет JPEG или WebP-файл. Текущий endpoint может по-прежнему вернуть PNG. Если продукту нужен JPEG или WebP, сначала получите PNG и конвертируйте его в своем коде.

Поток ответа

Endpoint синхронный. После отправки POST /images/generations держите текущий HTTP-запрос открытым до ответа сервера. При успешной генерации содержимое изображения возвращается в data[0].b64_json. Endpoint не возвращает task_id; отдельного status query или endpoint для скачивания результата нет.

Timeout и повторные попытки

  • Задавайте timeout HTTP-клиента в несколько минут.
  • Повторяйте transport errors, 408, 409, 425, 429 и 5xx.
  • Не повторяйте автоматически 400, 401, отсутствующие параметры и некорректные запросы.
  • Используйте exponential backoff, например 3s, 8s, 15s.
  • Если дубли изображений недопустимы, записывайте собственный request ID перед retry.

Обработка ошибок

Ошибка обычно возвращается как JSON. При отображении сообщения сначала прочитайте error.message, затем message, а после этого HTTP status text.

Чек-лист подключения

  • Base URL — https://bettertoken.ai/v1.
  • Header содержит Authorization: Bearer YOUR_API_KEY.
  • Request использует application/json и POST /images/generations.
  • model — gpt-image-2, response_format — b64_json, output_format — png, n — 1.
  • size выбран из рекомендованных значений, например 1024x1024.
  • HTTP client допускает ожидание генерации в течение нескольких минут.

Смежные документы

Авторизации

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

Используйте API Key BetterToken как bearer token. Не публикуйте API keys во frontend-коде, скриншотах, логах, тикетах или Git-репозиториях.

Тело

application/json
model
enum<string>
по умолчанию:YOUR_MODEL_ID
обязательно

Используйте фиксированное значение YOUR_MODEL_ID.

Доступные опции:
YOUR_MODEL_ID
Пример:

"YOUR_MODEL_ID"

prompt
string
обязательно

Prompt для генерации изображения.

Пример:

"Футуристичный постер AI-продукта на светлом фоне, стеклянная фактура, чистая композиция, премиальный технологичный стиль"

n
integer
по умолчанию:1

Рекомендуется фиксировать значение 1. Для нескольких изображений отправляйте несколько отдельных запросов.

Требуемый диапазон: 1 <= x <= 1
Пример:

1

size
enum<string>
по умолчанию:1024x1024

Размеры и соотношения сторон изображения. auto выбирает размер автоматически; 1024x1024 и 2048x2048 — 1:1; 1536x1024 — 3:2; 1024x1536 — 2:3; 1536x1152 — 4:3; 1152x1536 — 3:4; 2048x1152 и 3840x2160 — 16:9; 2160x3840 — 9:16. Фактический размер может быть сопоставлен или скорректирован сервером, поэтому клиенту следует ориентироваться на реальные размеры декодированного изображения.

Доступные опции:
auto,
1024x1024,
1536x1024,
1024x1536,
1536x1152,
1152x1536,
2048x2048,
2048x1152,
3840x2160,
2160x3840
Пример:

"1024x1024"

response_format
enum<string>
по умолчанию:b64_json

Рекомендуется фиксировать b64_json, чтобы стабильно сохранять изображение.

Доступные опции:
b64_json
Пример:

"b64_json"

output_format
enum<string>
по умолчанию:png

Рекомендуется фиксировать png. Не рассчитывайте, что jpeg или webp всегда вернутся напрямую в выбранном формате.

Доступные опции:
png
Пример:

"png"

Ответ

Результат генерации изображения.

OpenAI-совместимый ответ с изображением. Клиентам следует читать data[0].b64_json и учитывать возможные дополнительные поля, например revised_prompt.

created
integer
Пример:

1710000000

data
object[]