Skip to main content
API Enrow sygnalizuje problemy za pomocą kodów statusu HTTP oraz treści błędu w formacie JSON. Ten przewodnik wyjaśnia formaty odpowiedzi z błędami, najczęstsze błędy i sposoby ich naprawy, a także jak zbudować niezawodną logikę ponawiania. Pełną listę kodów znajdziesz w sekcji Status codes.

Jak wygląda odpowiedź z błędem?

Większość błędów API Enrow zwraca prosty obiekt JSON z jednym polem message:
Jedynym wyjątkiem jest błąd niewystarczających środków (402) na endpointach pojedynczych (email/phone find single, verify single), który zwraca pole reason obok success:
Odpowiedzi z błędami nigdy nie zawierają pól error, status ani retry_after. Odczytaj kod statusu HTTP, aby rozgałęzić swoją logikę, oraz pole message (lub reason), aby uzyskać czytelny dla człowieka opis.

Jakie są najczęstsze błędy i jak je naprawić?

Poniższe błędy obejmują zdecydowaną większość nieudanych żądań. Każdy z nich zawiera treść odpowiedzi zwracaną przez API oraz sposób naprawy.

Dlaczego otrzymuję 400 Bad Request?

400 oznacza, że ładunek żądania jest nieprawidłowy lub brakuje wymaganego parametru:
Rozwiązanie: Sprawdź, czy przekazujesz wszystkie wymagane parametry dla danego endpointu. Na przykład Find Single Email wymaga fullname oraz dodatkowo company_domain albo company_name.

Dlaczego otrzymuję 401 Unauthorized?

401 oznacza, że klucz API jest brakujący lub nieprawidłowy:
Rozwiązanie: Sprawdź, czy klucz API jest poprawny i wysyłany w nagłówku x-api-key (a nie Authorization). Zobacz Authentication, aby dowiedzieć się, jak przekazywać klucz w każdym żądaniu.

Dlaczego otrzymuję 402 Insufficient Credits?

402 oznacza, że konto nie ma wystarczającej liczby środków, aby wykonać żądanie:
Na endpointach zbiorczych ten sam 402 jest zwracany w standardowej formie { "message": "..." }. Rozwiązanie: Sprawdź saldo środków w Dashboard lub za pomocą GET /account/info. Doładuj środki lub przejdź na wyższy plan na enrow.io/pricing. Zobacz Credits & billing, aby dowiedzieć się, jak środki są zużywane na poszczególnych endpointach.

Dlaczego otrzymuję 429 Rate Limit Exceeded?

429 oznacza, że w krótkim oknie czasowym wysłano zbyt wiele żądań:
Rozwiązanie: Poczekaj i ponów próbę z wykładniczym wycofywaniem (exponential backoff). Zobacz Rate limits, aby poznać limity dla poszczególnych planów.

Dlaczego otrzymuję 500 Internal Server Error?

500 oznacza, że coś nie powiodło się po stronie Enrow:
Rozwiązanie: Ponów żądanie z wycofywaniem. Jeśli problem nie ustępuje, skontaktuj się z api@enrow.io.

Jak obsługiwać błędy w kodzie?

Sprawdź status HTTP przed parsowaniem treści odpowiedzi sukcesu, a następnie zgłoś błąd zawierający kod statusu, aby Twoja logika ponawiania mogła się na nim rozgałęzić. Pole message zawiera opis dla większości błędów, a reason zawiera go dla odpowiedzi 402 z endpointów pojedynczych.

Jak ponawiać nieudane żądania?

Ponawiaj tylko te błędy, które warto ponawiać — 429 i 5xx — i stosuj wykładnicze wycofywanie między próbami. Błędy klienta z zakresu 4xx (z wyjątkiem 429) sygnalizują problem z samym żądaniem, więc ich ponawianie nie pomoże.

Najlepsze praktyki

  • Nie ponawiaj błędów 4xx (z wyjątkiem 429) — zamiast tego napraw żądanie
  • Ponawiaj błędy 429 — zastosuj wykładnicze opóźnienia przed ponowieniem
  • Ponawiaj błędy 5xx — z wykładniczym wycofywaniem
  • Używaj webhooków zamiast odpytywania, aby niepotrzebnie nie przekraczać limitów żądań — zobacz How webhooks work
  • Loguj błędy z kontekstem — uwzględnij endpoint, parametry i znacznik czasu na potrzeby debugowania

FAQ

Na endpointach pojedynczych (email/phone find single, verify single) 402 zwraca { "reason": "Insufficient credits", "success": false }. Na endpointach zbiorczych ten sam 402 zwraca standardową formę { "message": "..." }. Odczytywanie zarówno message, jak i reason (tak jak robią to przykłady kodu) obsługuje oba przypadki.
Ponawiaj błędy 429 (limit żądań) i 5xx (serwer) z wykładniczym wycofywaniem. Nie ponawiaj innych błędów 4xx, takich jak 400, 401 czy 402 — wskazują one na problem z żądaniem, kluczem API lub saldem środków, którego samo ponawianie nie naprawi.
Nie. Odpowiedzi z błędami nigdy nie zawierają pól retry_after, error ani status. Stosuj własne wykładnicze wycofywanie między próbami. Zobacz Rate limits, aby poznać limity obowiązujące w Twoim planie.
W przypadku większości błędów opis znajduje się w polu message. W przypadku błędu niewystarczających środków 402 na endpoincie pojedynczym jest on natomiast w polu reason. Zawsze rozgałęziaj swoją logikę na podstawie kodu statusu HTTP, a nie parsując tekst komunikatu.

Kolejne kroki

Status codes

Pełna lista kodów statusu HTTP i ich znaczeń.

Rate limits

Poznaj limity żądań dla poszczególnych planów, aby uniknąć błędów 429.

Authentication

Jak przekazywać klucz API w nagłówku x-api-key.

Credits & billing

Zobacz, jak środki są zużywane na każdym endpoincie.