API v1
Генерации и поток
Генерация собирает варианты карточки из изображения товара, шаблона и текстов. Она выполняется асинхронно: запрос возвращается сразу, а прогресс и готовые варианты приходят в поток событий.
Создать генерацию
| Поле | Тип | Описание |
|---|---|---|
asset_id | string | Изображение товара. Обязательно. |
template | string | Идентификатор шаблона, например sound-focus. |
marketplace | string | wildberries, ozon, yandex-market, aliexpress, megamarket. |
ratio | string | 3:4, 1:1 или 9:16. По умолчанию — из пресета площадки. |
variants | integer | От 1 до 4, по умолчанию 3. Каждый вариант — одна генерация из лимита. |
text | object | title, subtitle, facts[], badge. Пустые поля AI заполнит сам. |
Ответ 202 Accepted:
{
"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"
} Поток событий
stream_url — одноразовый адрес потока для этой генерации. Используйте его как есть: токен в пути выдаётся сервером,
действует 15 минут и не требует заголовка Authorization. Ответ приходит частями в формате Server-Sent Events
(text/event-stream), соединение закрывается после события done или error.
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 до истечения срока вернёт уже готовые события с начала.
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()); Получить генерацию
Возвращает статус (queued, running, completed, failed) и список готовых вариантов. Подходит, если поток не используется.