Przejdź do głównej treści
Railmail używa konwencjonalnych kodów statusu HTTP do wskazania wyniku zapytania. Kody z zakresu 2xx oznaczają sukces, 4xx oznacza, że zapytanie się nie powiodło przy podanych danych, a 5xx oznacza błąd po stronie Railmail.

Format błędu

Wszystkie błędy używają RFC 7807 application/problem+json. Treść zawsze zawiera type, title i status, a może zawierać więcej pól:
{
  "type": "https://api.railmail.app/problems/validation-error",
  "title": "Validation failed",
  "status": 400,
  "detail": "One or more fields are invalid.",
  "instance": "/api/v1/subscribers",
  "timestamp": "2026-07-01T10:15:30Z",
  "errors": {
    "email": "must be a valid email address"
  }
}
PoleOpis
typeURI identyfikujące typ problemu.
titleKrótkie, czytelne podsumowanie problemu.
statusKod statusu HTTP, powtórzony dla wygody.
detailCzytelne wyjaśnienie właściwe dla tego wystąpienia.
instanceOdniesienie URI do konkretnego zapytania, które zawiodło.
timestampKiedy wystąpił błąd (ISO 8601).
errorsObecne przy błędach walidacji — mapa nazwy pola na komunikat.

Najczęstsze kody statusu

StatusZnaczenieCo zrobić
400Bad requestPopraw treść zapytania lub parametry. Sprawdź mapę errors dla szczegółów per pole.
401UnauthorizedBrak lub nieważny klucz API. Zobacz Uwierzytelnianie.
403ForbiddenKlucz jest ważny, ale nie ma zakresu wymaganego dla tej operacji.
404Not foundZasób nie istnieje w tym projekcie.
409ConflictZapytanie koliduje z bieżącym stanem (np. duplikat).
422UnprocessableZapytanie jest poprawne formalnie, ale niepoprawne semantycznie.
429Too many requestsOsiągnięto limit zapytań. Zobacz Limity zapytań.
5xxBłąd serweraPonów z wykładniczym opóźnieniem. Jeśli się powtarza, skontaktuj się z pomocą.
Zawsze czytaj pola title i detail — wyjaśniają, co poszło nie tak, znacznie lepiej niż sam kod statusu. Dla odpowiedzi 400 mapa errors wskazuje dokładnie, które pola poprawić.