# Создавайте один раз для каждой новой операции генерации; при повторной попытке сохраняйте исходное значение.
IDEMPOTENCY_KEY="$(uuidgen)"
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-APIMart-Response-Version: 2026-07-27' \
--header "Idempotency-Key: ${IDEMPOTENCY_KEY}" \
--data '{
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Уютный уголок для чтения у окна в дождливый день, тёплый свет настольной лампы, кинематографическое освещение",
"size": "1:1",
"resolution": "1K",
"n": 1
}'
import uuid
import requests
# Создавайте один раз для каждой новой операции генерации; при повторной попытке используйте исходные headers и payload.
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": str(uuid.uuid4()),
}
payload = {
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Уютный уголок для чтения у окна в дождливый день, тёплый свет настольной лампы, кинематографическое освещение",
"size": "1:1",
"resolution": "1K",
"n": 1,
}
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers=headers,
json=payload,
)
print(response.status_code, response.json())
// Создавайте один раз для каждой новой операции генерации; при повторной попытке используйте исходные headers и body.
const headers = {
Authorization: "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": crypto.randomUUID(),
};
const body = JSON.stringify({
model: "gpt-image-2.5-ext",
version: "flare",
prompt: "Уютный уголок для чтения у окна в дождливый день, тёплый свет настольной лампы, кинематографическое освещение",
size: "1:1",
resolution: "1K",
n: 1,
});
const response = await fetch(
"https://api.apimart.ai/v1/images/generations",
{ method: "POST", headers, body },
);
console.log(response.status, await response.json());
{
"code": 202,
"request_id": "req_example",
"data": {
"id": "task_01EXAMPLE",
"object": "generation.task",
"type": "image",
"status": "pending",
"progress": 0,
"poll_url": "/v1/tasks/task_01EXAMPLE"
}
}
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01EXAMPLE"
}
]
}
{
"error": {
"message": "n must be an integer between 1 and 4",
"type": "invalid_request_error",
"param": "",
"code": "invalid_request_error"
}
}
GPT-Image-2.5 Ext
GPT-Image-2.5 Ext — генерация изображений
- Используйте gpt-image-2.5-ext и выбирайте Flare или Sunburst через version
- Асинхронная обработка: после отправки запрашивайте результат по ID задачи
- Генерация по тексту и по изображениям с поддержкой до 16 референсов
- Поддержка 10 соотношений сторон и auto, разрешения 1K / 2K / 4K
- От 1 до 4 изображений за запрос; оплата зависит от версии, разрешения и фактически полученного числа изображений
POST
/
v1
/
images
/
generations
# Создавайте один раз для каждой новой операции генерации; при повторной попытке сохраняйте исходное значение.
IDEMPOTENCY_KEY="$(uuidgen)"
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-APIMart-Response-Version: 2026-07-27' \
--header "Idempotency-Key: ${IDEMPOTENCY_KEY}" \
--data '{
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Уютный уголок для чтения у окна в дождливый день, тёплый свет настольной лампы, кинематографическое освещение",
"size": "1:1",
"resolution": "1K",
"n": 1
}'
import uuid
import requests
# Создавайте один раз для каждой новой операции генерации; при повторной попытке используйте исходные headers и payload.
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": str(uuid.uuid4()),
}
payload = {
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Уютный уголок для чтения у окна в дождливый день, тёплый свет настольной лампы, кинематографическое освещение",
"size": "1:1",
"resolution": "1K",
"n": 1,
}
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers=headers,
json=payload,
)
print(response.status_code, response.json())
// Создавайте один раз для каждой новой операции генерации; при повторной попытке используйте исходные headers и body.
const headers = {
Authorization: "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": crypto.randomUUID(),
};
const body = JSON.stringify({
model: "gpt-image-2.5-ext",
version: "flare",
prompt: "Уютный уголок для чтения у окна в дождливый день, тёплый свет настольной лампы, кинематографическое освещение",
size: "1:1",
resolution: "1K",
n: 1,
});
const response = await fetch(
"https://api.apimart.ai/v1/images/generations",
{ method: "POST", headers, body },
);
console.log(response.status, await response.json());
{
"code": 202,
"request_id": "req_example",
"data": {
"id": "task_01EXAMPLE",
"object": "generation.task",
"type": "image",
"status": "pending",
"progress": 0,
"poll_url": "/v1/tasks/task_01EXAMPLE"
}
}
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01EXAMPLE"
}
]
}
{
"error": {
"message": "n must be an integer between 1 and 4",
"type": "invalid_request_error",
"param": "",
"code": "invalid_request_error"
}
}
# Создавайте один раз для каждой новой операции генерации; при повторной попытке сохраняйте исходное значение.
IDEMPOTENCY_KEY="$(uuidgen)"
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-APIMart-Response-Version: 2026-07-27' \
--header "Idempotency-Key: ${IDEMPOTENCY_KEY}" \
--data '{
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Уютный уголок для чтения у окна в дождливый день, тёплый свет настольной лампы, кинематографическое освещение",
"size": "1:1",
"resolution": "1K",
"n": 1
}'
import uuid
import requests
# Создавайте один раз для каждой новой операции генерации; при повторной попытке используйте исходные headers и payload.
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": str(uuid.uuid4()),
}
payload = {
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Уютный уголок для чтения у окна в дождливый день, тёплый свет настольной лампы, кинематографическое освещение",
"size": "1:1",
"resolution": "1K",
"n": 1,
}
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers=headers,
json=payload,
)
print(response.status_code, response.json())
// Создавайте один раз для каждой новой операции генерации; при повторной попытке используйте исходные headers и body.
const headers = {
Authorization: "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": crypto.randomUUID(),
};
const body = JSON.stringify({
model: "gpt-image-2.5-ext",
version: "flare",
prompt: "Уютный уголок для чтения у окна в дождливый день, тёплый свет настольной лампы, кинематографическое освещение",
size: "1:1",
resolution: "1K",
n: 1,
});
const response = await fetch(
"https://api.apimart.ai/v1/images/generations",
{ method: "POST", headers, body },
);
console.log(response.status, await response.json());
{
"code": 202,
"request_id": "req_example",
"data": {
"id": "task_01EXAMPLE",
"object": "generation.task",
"type": "image",
"status": "pending",
"progress": 0,
"poll_url": "/v1/tasks/task_01EXAMPLE"
}
}
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01EXAMPLE"
}
]
}
{
"error": {
"message": "n must be an integer between 1 and 4",
"type": "invalid_request_error",
"param": "",
"code": "invalid_request_error"
}
}
Аутентификация и заголовки
string
обязательно
Эндпоинты генерации и запроса задач используют API Key платформы для аутентификации Bearer Token. Получите ключ на странице управления API Key.Для запроса задачи используйте API Key, принадлежащий тому же пользователю платформы.
Authorization: Bearer YOUR_API_KEY
string
обязательно
При отправке используйте
application/json. Генерация по тексту и по изображениям использует тело запроса в формате JSON.Выбор версии
| Отображаемое имя | model | version |
|---|---|---|
| Flare (по умолчанию) | gpt-image-2.5-ext | flare |
| Sunburst | gpt-image-2.5-ext | sunburst |
Параметры запроса
string
обязательно
Фиксированное значение:
gpt-image-2.5-ext.string
по умолчанию:"flare"
Версия модели. Варианты:
flare, sunburst.string
обязательно
Промпт для генерации или редактирования изображения. После удаления пробелов по краям он не должен быть пустым.При генерации по изображениям можно описать, что нужно сохранить и что изменить в референсах.
string
по умолчанию:"1K"
Уровень выходного разрешения. Варианты:
1K, 2K, 4K.string
по умолчанию:"auto"
Соотношение сторон результата. Выберите
auto или одно из следующих 10 соотношений:1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 5:4, 4:5, 21:9.integer
по умолчанию:"1"
Количество изображений для генерации за один запрос. Целое число от
1 до 4.string[]
Массив из не более чем
16 референсных изображений. Без референсов выполняется генерация по тексту, с референсами — генерация по изображениям. Референсы не оплачиваются отдельно.Поддерживаемые форматы ввода:- Доступные URL изображений
- Data URL:
data:image/...;base64,...
Примеры использования
Ниже приведены тела JSON-запросов дляPOST /v1/images/generations. Используйте аутентификацию и рекомендуемые заголовки, описанные выше. Замените примеры адресов референсов реальными доступными URL изображений.
Генерация по тексту
{
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Воздушный сад в футуристическом городе, лёгкий утренний туман, архитектурная фотография",
"size": "16:9",
"resolution": "2K",
"n": 1
}
Генерация по изображениям с Sunburst
{
"model": "gpt-image-2.5-ext",
"version": "sunburst",
"prompt": "Сохранить сам товар и текст на упаковке, заменить фон мягкой студийной обстановкой кремово-белого цвета и добавить естественную падающую тень",
"size": "1:1",
"resolution": "2K",
"n": 1,
"image_urls": [
"https://example.com/product.png"
]
}
Несколько референсов и несколько результатов
{
"model": "gpt-image-2.5-ext",
"version": "sunburst",
"prompt": "Взять товар с первого изображения за основу, использовать обстановку со второго изображения и создать горизонтальное рекламное изображение",
"size": "16:9",
"resolution": "2K",
"n": 2,
"image_urls": [
"https://example.com/product.png",
"https://example.com/set.jpg"
]
}
Автоматическое соотношение сторон и разрешение 4K
{
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Минималистичный ключевой визуал для презентации продукта, выбрать подходящее соотношение сторон композиции по содержанию изображения",
"size": "auto",
"resolution": "4K",
"n": 1
}
Запрос результатов задачи
Используйте ID задачи для вызова эндпоинта запроса задачи:curl --request GET \
--url https://api.apimart.ai/v1/tasks/task_01EXAMPLE \
--header 'Authorization: Bearer <token>'
Успешная задача
Приведённые ниже ID задачи, время, URL и суммы показывают только структуру ответа и не соответствуют реальной задаче или действующим ценам.{
"code": 200,
"data": {
"id": "task_01EXAMPLE",
"status": "completed",
"progress": 100,
"created": 1788912000,
"completed": 1788912045,
"actual_time": 45,
"estimated_time": 300,
"cost": 0.2,
"credits_cost": 2,
"result": {
"images": [
{
"url": [
"https://example.com/output-1.png",
"https://example.com/output-2.png"
],
"expires_at": 1788998445
}
]
}
}
}
Ответ
integer
Код состояния ответа. При успешной отправке в унифицированном формате возвращается
200.string
Идентификатор этого запроса для диагностики проблем.
object
Принятая асинхронная задача.
Показать Поля задачи
Показать Поля задачи
string
Уникальный идентификатор задачи для запроса её состояния и полученных изображений.
string
Тип объекта. Значение:
generation.task.string
Тип задачи. Значение:
image.string
Начальное состояние —
pending: задача принята.integer
Текущий прогресс, начальное значение —
0.string
Относительный путь для запроса задачи, например
/v1/tasks/task_01EXAMPLE.