# Błędy i limity zapytań
Source: https://nordvec.com/pl/docs/guides/errors-and-rate-limits#struktura-odpowiedzi-błędu

## Struktura odpowiedzi błędu [#struktura-odpowiedzi-błędu]

Każda odpowiedź, która nie jest kodem 2xx, to jeden obiekt JSON:

```json
{
  "defined": false,
  "code": "TOO_MANY_REQUESTS",
  "message": "Too many requests",
  "data": { "reason": "rate_limit.exceeded", "retryAfterMs": 12000 }
}
```

* `code` to błąd na poziomie HTTP, na przykład `UNAUTHORIZED`, `FORBIDDEN`,
  `NOT_FOUND`, `BAD_REQUEST` lub `TOO_MANY_REQUESTS`.
* `data.reason`, jeśli występuje, to dokładniejszy, zrozumiały dla maszyny powód, taki jak
  `auth.key_not_found` lub `rate_limit.exceeded`. Rozgałęziaj kod na podstawie tego pola, a nie na podstawie
  `message`, które jest przeznaczone dla ludzi i może się zmienić.
* `defined` to `true`, gdy operacja wymienia ten błąd w
  [dokumentacji API](/docs/api), oraz `false` dla błędów, które może napotkać każde żądanie
  (uwierzytelnianie, limity, nieznana ścieżka).
* Nieudana walidacja zwraca `BAD_REQUEST` z problemami w
  `data.formErrors` i `data.fieldErrors`.

Każda odpowiedź zawiera również `X-Request-ID`. Cytuj go, gdy kontaktujesz się z pomocą techniczną,
a my odnajdziemy dokładnie to żądanie.