Przejdź do treści

Limity, plany i ponawianie

Każda odpowiedź na żądanie z kluczem lub tokenem ma nagłówki X-RateLimit-Limit, X-RateLimit-Remaining i X-RateLimit-Reset (okno minutowe pary aplikacja × sprzedawca). Klucze i nowe aplikacje mają dodatkowo limity grup operacji (algorytm GCRA: stałe tempo + zryw), opisane w nagłówku X-Allee-RateLimit: plan=pro; group=write; rate=10; burst=60.

Plany

PlanOdczyt (read)Zapis (write)Wsadowe (bulk)Sufit / min
start10/s, zryw 402/s, zryw 100.2/s, zryw 21200
standard25/s, zryw 1005/s, zryw 301/s, zryw 53000
pro50/s, zryw 15010/s, zryw 602/s, zryw 109000

Grupa wynika z operacji (opisana przy każdej w referencji): odczyty to read, pojedyncze zapisy write, polecenia wsadowe, wsady i raporty bulk. Wyjątek (od 10.11): polecenia zmiany ceny, ilości, modyfikacji i publikacji obejmujące do 100 ofert liczą się jak write — synchronizacja stanów małymi poleceniami co kilka minut nie trafia w limit bulk (nagłówek X-Allee-RateLimit pokazuje użytą grupę). Aplikacje sprzed kluczy (plan allegro) mają tylko okno minutowe. Swój plan sprawdzisz w GET /allee/sellers/account.

Po przekroczeniu

HTTP/1.1 429 Too Many Requests
Retry-After: 2
X-Allee-RateLimit: plan=start; group=write; rate=2; burst=10

{"errors":[{"code":"TOO_MANY_REQUESTS","message":"Przekroczono limit grupy write w planie start (2/s, burst 10).","details":{"group":"write","retryAfterMs":1450},"path":null,"userMessage":"…"}]}

Odczekaj Retry-After (dokładniej: details.retryAfterMs) i ponów. Dodatkowo: najwyżej 2 ciężkie operacje sprzedawcy naraz (429 TOO_MANY_CONCURRENT), 120 żądań /token na minutę z IP, blokada IP po wielu nieprawidłowych tokenach.

Bezpieczne ponawianie: Idempotency-Key

Każdy POST z treścią JSON przyjmuje nagłówek Idempotency-Key (np. UUID). Powtórzony POST z tym samym kluczem i tą samą treścią w ciągu 24 h zwraca zapisaną odpowiedź (nagłówek Idempotent-Replayed: true) i niczego nie wykonuje drugi raz — także gdy pierwsze żądanie zakończyło się, a Ty nie dostałeś odpowiedzi.

Inna treść z tym samym kluczem → 422 IDEMPOTENCY_KEY_REUSED; równoległe żądanie z kluczem w toku → 409 IDEMPOTENCY_KEY_IN_USE. Polecenia wsadowe Allegro są idempotentne po commandId, oferty — po external.id (409 OfferDuplicate), przesyłki — po parze przewoźnik + numer.