Przejdź do głównej zawartości

Przymiarki

POST /v1/tryons (token klientki):

{ "external_product_id": "SKU-123", "priority": "browse" }

Odpowiedź przychodzi od razu: 202 ze stanem queued. Wynik przyjdzie zdarzeniem albo przez GET /v1/tryons/{id}.

priority Kiedy Uwagi
live W trakcie transmisji Najszybsza kolejka
browse Przeglądanie sklepu Domyślny
preview Zapowiedź live’a, przygotowanie z wyprzedzeniem Wymaga zgody previews. Funkcja w przygotowaniu
status Znaczenie
queued, processing W toku
succeeded Gotowe, result_url wskazuje obraz (link ważny 10 minut)
failed Nieudana, przyczyna w error_code
refused Model odmówił (np. przez filtr treści)

Ta sama klientka, to samo zdjęcie i ten sam produkt dają ten sam wynik bez ponownego generowania. Odpowiedź ma wtedy od razu 200 ze stanem succeeded i nie liczy się do limitu.

Każdy wynik ma wpisane oznaczenie, że to obraz wygenerowany przez AI. Pokazuj je klientce przy obrazie (widżet i SDK robią to same).

GET /v1/tryons/{id}/share-image (token klientki) zwraca wynik gotowy do zapisania w telefonie albo wysłania dalej:

  • JPEG z małym znaczkiem „Obraz AI · nazwa butiku” w lewym dolnym rogu (bez butiku: „Obraz AI”). Znaczek zostaje, nawet gdy komunikator usunie metadane;
  • oznaczenie AI w metadanych XMP (IPTC DigitalSourceType: compositeWithTrainedAlgorithmicMedia);
  • nagłówek Content-Disposition z nazwą pliku, np. przymiarka-sukienka-maxi.jpg.

Przymiarka bez wyniku daje 409 not_ready, cudza 404. Widżet i SDK mają przyciski Zapisz i Udostępnij gotowe, więc ten adres przyda się tylko we własnym interfejsie. „Usuń moje dane” kasuje także te kopie.

GET /v1/tryons zwraca przymiarki klientki od najnowszych, z produktem (nazwa i miniatura) oraz oceną. Filtry: product (external_id) i status. Stronicowanie: limit (domyślnie 24, najwyżej 50) i before (created_at ostatniej pozycji).

POST /v1/tryons/{id}/feedback z {"rating": "up"} albo {"rating": "down", "reasons": ["length"]}. Odpowiedź: 204 bez treści. Ocenić można tylko przymiarkę w stanie succeeded, inaczej 409 tryon_not_ready. Kolejna ocena zastępuje poprzednią.

Powody: length (długość), color (kolor), body_changed (zmieniona sylwetka), not_me (to nie ja), other. Oceny widać w panelu w sekcji Jakość przymiarek, a Twój serwer dostaje webhook tryon.rated.