Packshoty

Lista, generowanie i zarządzanie zdjęciami packshotowymi produktów.

GET /api/external/packshots

Zwraca listę wygenerowanych zdjęć packshotowych.

Nagłówki

NagłówekWymaganyOpis
X-Api-KeyTakTwój API key w formacie mk_live_xxx.secret

Parametry zapytania

PoleTypWymaganyOpis
statusFilterstringNieFiltruj 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

KodZnaczenie
401Brakujący lub nieprawidłowy API key
500Wewnę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łówekWymaganyOpis
X-Api-KeyTakTwój API key w formacie mk_live_xxx.secret
Content-TypeTakapplication/json

Treść zapytania

PoleTypWymaganyOpis
config.product.idstringTakID produktu, dla którego mają być generowane packshoty
config.preset.idstringNieID presetu do zastosowania
config.scenery.idstringNieID scenerii/tła do użycia
config.model.idstringNieID modelu AI do użycia
countnumberNieLiczba 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

KodZnaczenie
400Nieprawidłowa treść zapytania lub brak wymaganych pól
401Brakujący lub nieprawidłowy API key
402Niewystarczające kredyty
500Wewnę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 correlationId do ś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łówekWymaganyOpis
X-Api-KeyTakTwój API key w formacie mk_live_xxx.secret
Content-TypeTakapplication/json

Treść zapytania

PoleTypWymaganyOpis
recordIdstringTakID packshotu do aktualizacji
VotingstringNieUstaw na APPROVED lub REJECTED. Odrzucenie packshotu automatycznie go archiwizuje.
verificationResultstringNieDodatkowe uwagi weryfikacyjne
statusstringNieUstaw na ARCHIVE, aby zarchiwizować packshot

Odpowiedź

{
  "success": true
}

Odpowiedzi z błędem

KodZnaczenie
400Nieprawidłowa treść zapytania lub brak recordId
401Brakujący lub nieprawidłowy API key
404Packshot nie znaleziony
500Wewnętrzny błąd serwera

Uwagi

  • Ustawienie Voting na APPROVED oznacza packshot jako zatwierdzony.
  • Ustawienie Voting na REJECTED automatycznie archiwizuje packshot.
  • Ustawienie status na ARCHIVE archiwizuje 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"
  }'