Ponowna sesja
Jak sklonować sesję — ta sama konfiguracja, opcjonalnie inna liczba zdjęć na produkt, z wymaganym nagłówkiem Idempotency-Key.
Co osiągniesz
Sprzedawca chce więcej zdjęć w tym samym stylu — albo poprzednia runda nie do końca mu się podobała. W tym samouczku sklonujesz istniejącą sesję jednym wywołaniem: ta sama konfiguracja (styl, sceneria, modelka, proporcje), te same produkty, opcjonalnie inna liczba zdjęć na produkt.
Wymagania wstępne
- Klucz API instalacji (jak go zdobyć) z uprawnieniami
plugin.jobs:create,plugin.jobs:read. order_idsesji, którą chcesz powtórzyć (z odpowiedziPOST /jobsalbo zGET /jobs/{id}— poleorder_id).
W przykładach zamień mk_live_… na swój klucz. Bazowy adres to https://qamera.ai.
Przebieg
1. GET /orders/{id} → (opcjonalnie) obejrzyj sesję źródłową
2. POST /orders/{id}/clone → nowa sesja (Idempotency-Key wymagany)
├─ puste body → te same produkty i liczby zdjęć
└─ body z subjects[] → nowe liczby zdjęć per produkt
3. Odbierz wyniki jak zwykle
Kroki
1. (Opcjonalnie) Obejrzyj sesję źródłową
curl https://qamera.ai/api/v1/plugin/orders/00000000-0000-0000-0000-000000000099 \ -H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy"
Odpowiedź zawiera session_config, listę produktów z licznikami zadań (jobs_total, jobs_completed, jobs_failed), wygenerowane zdjęcia oraz zużyte kredyty (summary.credits_consumed). Przyda się, by pokazać sprzedawcy, co dokładnie zostanie powtórzone.
2. Sklonuj sesję
Nagłówek Idempotency-Key jest przy klonowaniu obowiązkowy — chroni przed podwójnym naliczeniem kredytów, gdy ponowisz żądanie po time-oucie. Wywołanie bez niego zwraca 400 invalid_input.
Puste body powtarza sesję 1:1 — te same produkty, te same liczby zdjęć:
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 '{}'
Chcesz zmienić liczbę zdjęć albo powtórzyć tylko część produktów? Podaj subjects[] — to pełne zastąpienie listy: klonowane są wyłącznie produkty z listy, każdy z nową images_count. Produkty pominięte na liście nie wchodzą do nowej sesji.
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 }
]
}'
Odpowiedź (HTTP 201) to pełna nowa sesja — z nowym 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"
}
Zapisz nowy order_id. Trzy rzeczy, o których warto pamiętać:
- Oceny nie przechodzą — klon to świeży start; zdjęcia nowej rundy oceniasz od zera.
- Kredyty naliczane są od nowa — za nową sesję płaci się jak za każdą inną (
402 quota_exceeded, gdy ich zabraknie). - Klon klonuje się normalnie — możesz sklonować sesję, która sama jest klonem.
3. Odbierz wyniki
Dokładnie jak przy zwykłej sesji — webhooki albo odpytywanie. Zobacz odbieranie wyników.
Częste błędy
| Błąd | Dlaczego wystąpił | Co zrobić |
|---|---|---|
400 invalid_input | Brak nagłówka Idempotency-Key | Dodaj nagłówek z unikalną wartością dla tej rundy — szczegóły |
409 idempotency_conflict | Ten sam Idempotency-Key użyty z innym body | Każda runda klonowania potrzebuje własnego klucza — szczegóły |
404 not_found | order_id nie istnieje albo należy do innej instalacji | Sprawdź order_id; klonować można tylko własne sesje — szczegóły |
402 quota_exceeded | Za mało kredytów na nową rundę | Doładuj kredyty; stan sprawdzisz w GET /me — szczegóły |
Co dalej
- Odbieranie wyników — webhooki i odświeżanie adresów.
- Parametry sesji — gdy nowa runda ma mieć inny styl, wyślij nową sesję przez
POST /jobszamiast klonować.