Повторна сесія

Як склонувати сесію — та сама конфігурація, за бажанням інша кількість зображень на продукт, з обов'язковим заголовком Idempotency-Key.

Що ви отримаєте

Продавець хоче більше зображень у тому самому стилі — або попередній раунд не зовсім йому сподобався. У цьому матеріалі ви склонуєте наявну сесію одним викликом: та сама конфігурація (стиль, сценерія, модель, пропорції), ті самі продукти, за бажанням інша кількість зображень на продукт.

Передумови

  • Ключ API інсталяції (як його отримати) з дозволами plugin.jobs:create, plugin.jobs:read.
  • order_id сесії, яку хочете повторити (з відповіді POST /jobs або з GET /jobs/{id} — поле order_id).

У прикладах замініть mk_live_… на свій ключ. Базова адреса — https://qamera.ai.

Перебіг

1. GET /orders/{id}         → (необов'язково) перегляньте вихідну сесію
2. POST /orders/{id}/clone  → нова сесія (Idempotency-Key обов'язковий)
   ├─ порожнє body          → ті самі продукти й кількість зображень
   └─ body із subjects[]    → нова кількість зображень для продукту
3. Отримайте результати як зазвичай

Кроки

1. (Необов'язково) Перегляньте вихідну сесію

curl https://qamera.ai/api/v1/plugin/orders/00000000-0000-0000-0000-000000000099 \
  -H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy"

Відповідь містить session_config, список продуктів зі лічильниками завдань (jobs_total, jobs_completed, jobs_failed), згенеровані зображення та витрачені кредити (summary.credits_consumed). Знадобиться, щоб показати продавцеві, що саме буде повторено.

2. Склонуйте сесію

Заголовок Idempotency-Key при клонуванні обов'язковий — він захищає від подвійного нарахування кредитів, коли ви повторите запит після тайм-ауту. Виклик без нього повертає 400 invalid_input.

Порожнє body повторює сесію 1:1 — ті самі продукти, та сама кількість зображень:

curl -X POST https://qamera.ai/api/v1/plugin/orders/00000000-0000-0000-0000-000000000099/clone \
  -H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy" \
  -H "Idempotency-Key: sklep1-klon-99-runda2" \
  -H "Content-Type: application/json" \
  -d '{}'

Хочете змінити кількість зображень або повторити лише частину продуктів? Передайте subjects[] — це повна заміна списку: клонуються виключно продукти зі списку, кожен із новою images_count. Продукти, пропущені в списку, не входять до нової сесії.

curl -X POST https://qamera.ai/api/v1/plugin/orders/00000000-0000-0000-0000-000000000099/clone \
  -H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy" \
  -H "Idempotency-Key: sklep1-klon-99-runda3" \
  -H "Content-Type: application/json" \
  -d '{
    "subjects": [
      { "product_ref": "sklep1:produkt-7", "images_count": 8 }
    ]
  }'

Відповідь (HTTP 201) — це повна нова сесія з новим order_id:

{
  "order_id": "00000000-0000-0000-0000-000000000150",
  "status": "pending",
  "session_config": { "aspect_ratio": "4:5", "model_id": null, "scenery_id": null, "preset_id": null },
  "subjects": [
    {
      "product_ref": "sklep1:produkt-7",
      "product_label": "Kubek ceramiczny 300 ml",
      "packshot_asset_id": "…",
      "jobs_total": 8,
      "jobs_completed": 0,
      "jobs_failed": 0,
      "outputs": []
    }
  ],
  "summary": { "credits_consumed": 80, "credits_refunded": 0 },
  "external_metadata": null,
  "created_at": "2026-06-03T09:00:00.000Z",
  "updated_at": "2026-06-03T09:00:00.000Z"
}

Збережіть новий order_id. Три речі, про які варто пам'ятати:

  • Оцінки не переносяться — клон це свіжий старт; зображення нового раунду ви оцінюєте з нуля.
  • Кредити нараховуються заново — за нову сесію платять як за будь-яку іншу (402 quota_exceeded, коли їх забракне).
  • Клон клонується звичайно — ви можете склонувати сесію, яка сама є клоном.

3. Отримайте результати

Точно як при звичайній сесії — вебхуки або опитування. Див. отримання результатів.

Поширені помилки

ПомилкаЧому виниклаЩо зробити
400 invalid_inputНемає заголовка Idempotency-KeyДодайте заголовок з унікальним значенням для цього раунду — подробиці
409 idempotency_conflictТой самий Idempotency-Key використано з іншим bodyКожен раунд клонування потребує власного ключа — подробиці
404 not_foundorder_id не існує або належить іншій інсталяціїПеревірте order_id; клонувати можна лише власні сесії — подробиці
402 quota_exceededНедостатньо кредитів на новий раундПоповніть кредити; стан перевірите в GET /meподробиці

Що далі