Packshoty
Lista, generowanie i zarządzanie zdjęciami packshotowymi produktów.
GET /api/external/packshots
Zwraca listę wygenerowanych zdjęć packshotowych.
Nagłówki
| Nagłówek | Wymagany | Opis |
|---|---|---|
| X-Api-Key | Tak | Twój API key w formacie mk_live_xxx.secret |
Parametry zapytania
| Pole | Typ | Wymagany | Opis |
|---|---|---|---|
| statusFilter | string | Nie | Filtruj po statusie: all (domyślnie) lub approved |
Odpowiedź
{
"packshots": [
{
"id": "ps_abc123",
"name": "White T-Shirt Packshot",
"thumbnail": "https://cdn.example.com/packshots/thumb_abc123.jpg",
"status": "DONE",
"voting": "APPROVED",
"createdAt": "2026-03-20T15:00:00.000Z"
}
],
"count": 1
}
Odpowiedzi z błędem
| Kod | Znaczenie |
|---|---|
| 401 | Brakujący lub nieprawidłowy API key |
| 500 | Wewnętrzny błąd serwera |
Uwagi
- Ten endpoint nie zużywa kredytów.
- Użyj
statusFilter=approved, aby pobrać wyłącznie zatwierdzone packshoty.
Przykład
curl -X GET "https://app.qamera.ai/api/external/packshots?statusFilter=approved" \ -H "X-Api-Key: mk_live_abc123.secret456"
POST /api/external/packshots/register-ideas
Rejestruje nowe zadanie generowania packshotów. Kredyty są rezerwowane natychmiast i zużywane po zakończeniu przetwarzania.
Nagłówki
| Nagłówek | Wymagany | Opis |
|---|---|---|
| X-Api-Key | Tak | Twój API key w formacie mk_live_xxx.secret |
| Content-Type | Tak | application/json |
Treść zapytania
| Pole | Typ | Wymagany | Opis |
|---|---|---|---|
| config.product.id | string | Tak | ID produktu, dla którego mają być generowane packshoty |
| config.preset.id | string | Nie | ID presetu do zastosowania |
| config.scenery.id | string | Nie | ID scenerii/tła do użycia |
| config.model.id | string | Nie | ID modelu AI do użycia |
| count | number | Nie | Liczba packshotów do wygenerowania (domyślnie: 10, maks.: 50) |
Odpowiedź
{
"createdRecordIds": ["ps_001", "ps_002", "ps_003"],
"batchId": "batch_abc123",
"orderId": "order_xyz789",
"reservationId": "res_def456",
"creditsReserved": 30
}
Odpowiedzi z błędem
| Kod | Znaczenie |
|---|---|
| 400 | Nieprawidłowa treść zapytania lub brak wymaganych pól |
| 401 | Brakujący lub nieprawidłowy API key |
| 402 | Niewystarczające kredyty |
| 500 | Wewnętrzny błąd serwera |
Uwagi
- Przetwarzanie jest asynchroniczne. Zadanie jest publikowane w kolejce komunikatów i przetwarzane przez worker.
- Śledź status wygenerowanych packshotów za pomocą endpointu GET.
- Kredyty są rezerwowane przy tworzeniu, zużywane po pomyślnym przetworzeniu i zwracane w przypadku niepowodzenia.
- Każde zapytanie generuje
correlationIddo śledzenia w logach. - Maksymalnie 50 packshotów na zapytanie.
Przykład
curl -X POST "https://app.qamera.ai/api/external/packshots/register-ideas" \
-H "X-Api-Key: mk_live_abc123.secret456" \
-H "Content-Type: application/json" \
-d '{
"config": {
"product": { "id": "prod_abc123" },
"preset": { "id": "preset_xyz" },
"scenery": { "id": "scenery_001" }
},
"count": 10
}'
POST /api/external/packshots/update-packshot
Zatwierdzanie, odrzucanie lub archiwizowanie wygenerowanego packshotu.
Nagłówki
| Nagłówek | Wymagany | Opis |
|---|---|---|
| X-Api-Key | Tak | Twój API key w formacie mk_live_xxx.secret |
| Content-Type | Tak | application/json |
Treść zapytania
| Pole | Typ | Wymagany | Opis |
|---|---|---|---|
| recordId | string | Tak | ID packshotu do aktualizacji |
| Voting | string | Nie | Ustaw na APPROVED lub REJECTED. Odrzucenie packshotu automatycznie go archiwizuje. |
| verificationResult | string | Nie | Dodatkowe uwagi weryfikacyjne |
| status | string | Nie | Ustaw na ARCHIVE, aby zarchiwizować packshot |
Odpowiedź
{
"success": true
}
Odpowiedzi z błędem
| Kod | Znaczenie |
|---|---|
| 400 | Nieprawidłowa treść zapytania lub brak recordId |
| 401 | Brakujący lub nieprawidłowy API key |
| 404 | Packshot nie znaleziony |
| 500 | Wewnętrzny błąd serwera |
Uwagi
- Ustawienie
VotingnaAPPROVEDoznacza packshot jako zatwierdzony. - Ustawienie
VotingnaREJECTEDautomatycznie archiwizuje packshot. - Ustawienie
statusnaARCHIVEarchiwizuje packshot niezależnie od statusu głosowania. - Ten endpoint nie zużywa kredytów.
Przykład
curl -X POST "https://app.qamera.ai/api/external/packshots/update-packshot" \
-H "X-Api-Key: mk_live_abc123.secret456" \
-H "Content-Type: application/json" \
-d '{
"recordId": "ps_abc123",
"Voting": "APPROVED"
}'