API v1

Генерации и поток

Генерация собирает варианты карточки из изображения товара, шаблона и текстов. Она выполняется асинхронно: запрос возвращается сразу, а прогресс и готовые варианты приходят в поток событий.

Создать генерацию

POST /api/v1/generations
ПолеТипОписание
asset_idstringИзображение товара. Обязательно.
templatestringИдентификатор шаблона, например sound-focus.
marketplacestringwildberries, ozon, yandex-market, aliexpress, megamarket.
ratiostring3:4, 1:1 или 9:16. По умолчанию — из пресета площадки.
variantsintegerОт 1 до 4, по умолчанию 3. Каждый вариант — одна генерация из лимита.
textobjecttitle, subtitle, facts[], badge. Пустые поля AI заполнит сам.

Ответ 202 Accepted:

json
{
  "id": "gen_5mWq1xR7",
  "object": "generation",
  "status": "queued",
  "variants_requested": 3,
  "stream_url": "https://aiaccelerator.shop/api/v1/render-stream/st_Vb81kQe2Lr9hZ0",
  "stream_expires_at": "2026-10-02T09:29:31Z",
  "created_at": "2026-10-02T09:14:31Z"
}

Поток событий

GET /api/v1/render-stream/{stream_token}

stream_url — одноразовый адрес потока для этой генерации. Используйте его как есть: токен в пути выдаётся сервером, действует 15 минут и не требует заголовка Authorization. Ответ приходит частями в формате Server-Sent Events (text/event-stream), соединение закрывается после события done или error.

text/event-stream
event: progress
data: {"generation_id":"gen_5mWq1xR7","stage":"subject","progress":0.18}

event: progress
data: {"generation_id":"gen_5mWq1xR7","stage":"scene","progress":0.52}

event: variant
data: {"generation_id":"gen_5mWq1xR7","index":0,"preview_url":"https://aiaccelerator.shop/api/v1/generations/gen_5mWq1xR7/variants/0/preview"}

event: variant
data: {"generation_id":"gen_5mWq1xR7","index":1,"preview_url":"https://aiaccelerator.shop/api/v1/generations/gen_5mWq1xR7/variants/1/preview"}

event: done
data: {"generation_id":"gen_5mWq1xR7","status":"completed","variants":3}
СобытиеКогда приходит
progressСмена этапа: subject, scene, layout, render.
variantГотов очередной вариант; в preview_url — превью до 800 px.
doneГенерация завершена; дальше — экспорт.
errorГенерация не удалась; код ошибки — в поле code.

Если соединение оборвалось, повторный запрос к тому же stream_url до истечения срока вернёт уже готовые события с начала.

javascript
const res = await fetch('https://aiaccelerator.shop/api/v1/generations', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.ACCELATOR_API_KEY}`,
    'Content-Type': 'application/json',
    'Idempotency-Key': crypto.randomUUID(),
  },
  body: JSON.stringify({ asset_id, template: 'sound-focus', marketplace: 'wildberries', ratio: '3:4' }),
});
const { stream_url } = await res.json();

// поток событий: варианты приходят по мере готовности
const events = new EventSource(stream_url);
events.addEventListener('variant', (e) => showPreview(JSON.parse(e.data)));
events.addEventListener('done', () => events.close());
events.addEventListener('error', () => events.close());

Получить генерацию

GET /api/v1/generations/{generation_id}

Возвращает статус (queued, running, completed, failed) и список готовых вариантов. Подходит, если поток не используется.