Генерация и редактирование изображений
Запрос изображения, входные файлы и обработка результата
Создание изображения
POST https://api.getapi.ru/v1/images/generations
Выберите модель генерации изображений с поддержкой этого метода. Наличие мультимодальной модели в каталоге само по себе не означает поддержку Images API
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
model | string | Да | ID модели |
prompt | string | Да | Описание изображения |
size | string | Нет | Размер из набора, поддерживаемого моделью |
quality | string | Нет | Уровень качества, если поддерживается |
n | integer | Нет | Число изображений в пределах лимита модели |
response_format | string | Нет | Формат результата, если модель позволяет его выбрать |
aspect_ratio, resolution | string | Нет | Соотношение сторон и разрешение из набора модели |
input_references | array | Нет | Входные изображения для совместимого метода |
provider | object | Нет | Ограничения исполнителей, если маршрут их поддерживает |
Пример использует gpt-image-2. Проверьте доступность модели и метода для вашего ключа
curl --fail-with-body https://api.getapi.ru/v1/images/generations \
-H "Authorization: Bearer $GETAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "Керамическая чашка на деревянном столе, мягкий дневной свет",
"quality": "low",
"n": 1
}'Результат
Элементы массива data могут содержать b64_json с байтами изображения в base64 либо url для загрузки. Не требуйте наличия обоих полей
При base64 декодируйте данные и сохраните файл в фактическом формате ответа. URL может иметь ограниченный срок действия, загрузите нужное изображение в своё хранилище
Не принимайте произвольный URL из ответа за разрешение передать на него API-ключ. Авторизацию GetAPI отправляйте только на адрес сервиса
Генерация через Chat Completions
Часть моделей, например gpt-5-image-mini, создаёт изображение через Chat Completions
{
"model": "gpt-5-image-mini",
"messages": [{"role": "user", "content": "Создай изображение красного квадрата на белом фоне"}],
"modalities": ["image", "text"]
}Передайте это тело в POST /v1/chat/completions с обычными заголовками GetAPI. Изображения читайте из choices[].message.images, текст может отсутствовать
Блок image_url.url может содержать URL или строку data:image/...;base64,.... Для data URI отделите метаданные от base64, декодируйте байты и проверьте формат изображения
Поддержка этого способа не означает поддержку той же моделью /v1/images/generations
Редактирование
POST https://api.getapi.ru/v1/images/edits
Запрос отправляется как multipart/form-data. Подготовьте файл photo.png и выберите модель с поддержкой редактирования
curl --fail-with-body https://api.getapi.ru/v1/images/edits \ -H "Authorization: Bearer $GETAPI_API_KEY" \ -F "model=gpt-image-1" \ -F "quality=low" \ -F "image=@photo.png" \ -F "prompt=Замени фон на светлую стену"
Для gpt-image-1 задавайте quality явно, без него маршрут возвращает 400 unsupported image quality
Не задавайте Content-Type вручную при использовании -F, curl добавит границу multipart
У Images API OpenRouter входные изображения могут задаваться через input_references в JSON запроса генерации. Способ редактирования и доступность multipart-метода проверяйте для выбранного подключения, не подставляйте image вместо input_references без проверки
Ограничения
Допустимые размеры, форматы файлов, маски, прозрачность и число результатов задаёт модель. Значения одной модели нельзя переносить на другую без проверки
Стоимость может учитывать входные изображения, текст и параметры результата. Используйте тариф модели, не оценивайте расход только по числу символов
Идентификатор провайдера задаётся отдельно от модели. Параметры выбора и ограничения разных методов описаны в OpenRouter
Для анализа существующего изображения используйте изображения на вход