Skip to content

Free text & data tool

HTTP status codes: complete list with meaning and when to use each

Every HTTP status code you will meet — 200, 301, 404, 429, 500, 502 and more — with what it means, when an API should use it and the RFC. Search by number or word.

Free, no sign-up to use · what you type or add stays on your device · works offline · How it works

1xx Informational

The request was received and is still being processed.

  • 100 Continue

    The headers were accepted; send the body.

    RFC 9110
  • 101 Switching Protocols

    The server is switching to the protocol the client asked for.

    RFC 9110
  • 103 Early Hints

    Headers sent early so the browser can start loading resources.

    RFC 8297

2xx Success

The request worked.

  • 200 OK Most used

    Success, with the result in the body.

    RFC 9110
  • 201 Created Most used

    A new resource was created.

    RFC 9110
  • 202 Accepted

    Accepted for processing, which has not finished yet.

    RFC 9110
  • 204 No Content Most used

    Success, with nothing in the body.

    RFC 9110
  • 206 Partial Content

    Only part of the resource, as asked with a Range header.

    RFC 9110

3xx Redirection

The client must go elsewhere or use its cached copy.

  • 301 Moved Permanently Most used

    The resource has a new permanent URL.

    RFC 9110
  • 302 Found

    Temporarily at another URL.

    RFC 9110
  • 303 See Other

    Get the result from another URL, with GET.

    RFC 9110
  • 304 Not Modified Most used

    Your cached copy is still valid.

    RFC 9110
  • 307 Temporary Redirect

    Temporarily at another URL; repeat the same method and body.

    RFC 9110
  • 308 Permanent Redirect

    Permanently at another URL; repeat the same method and body.

    RFC 9110

4xx Client error

The request has a problem: fix it before trying again.

  • 400 Bad Request Most used

    The request is malformed.

    RFC 9110
  • 401 Unauthorized Most used

    Authentication is missing or invalid.

    RFC 9110
  • 402 Payment Required

    Reserved for future use; some APIs use it for billing.

    RFC 9110
  • 403 Forbidden Most used

    Authenticated, but not allowed.

    RFC 9110
  • 404 Not Found Most used

    Nothing at this URL.

    RFC 9110
  • 405 Method Not Allowed

    The URL exists but not with this method.

    RFC 9110
  • 406 Not Acceptable

    No version matches the Accept headers.

    RFC 9110
  • 408 Request Timeout

    The client took too long to send the request.

    RFC 9110
  • 409 Conflict Most used

    Conflicts with the current state of the resource.

    RFC 9110
  • 410 Gone

    It existed and was removed for good.

    RFC 9110
  • 411 Length Required

    The Content-Length header is required.

    RFC 9110
  • 412 Precondition Failed

    A condition in the headers (If-Match…) is false.

    RFC 9110
  • 413 Content Too Large

    The body is bigger than the server accepts.

    RFC 9110
  • 414 URI Too Long

    The URL is too long.

    RFC 9110
  • 415 Unsupported Media Type Most used

    The body format is not accepted.

    RFC 9110
  • 416 Range Not Satisfiable

    The requested Range is outside the file.

    RFC 9110
  • 418 I'm a teapot

    An April Fools’ joke from 1998: the server is a teapot.

    RFC 2324
  • 422 Unprocessable Content Most used

    Well-formed, but the data fails validation.

    RFC 9110
  • 425 Too Early

    The server will not process a request that might be replayed.

    RFC 8470
  • 426 Upgrade Required

    Use another protocol (sent in Upgrade).

    RFC 9110
  • 428 Precondition Required

    The request must be conditional (If-Match).

    RFC 6585
  • 429 Too Many Requests Most used

    Too many requests in a period (rate limit).

    RFC 6585
  • 431 Request Header Fields Too Large

    The headers are too big.

    RFC 6585
  • 451 Unavailable For Legal Reasons

    Blocked for legal reasons.

    RFC 7725

5xx Server error

The server failed on a valid request; trying again later may work.

  • 500 Internal Server Error Most used

    Unexpected error on the server.

    RFC 9110
  • 501 Not Implemented

    The server does not support this feature.

    RFC 9110
  • 502 Bad Gateway Most used

    A proxy or gateway got an invalid answer from the server behind it.

    RFC 9110
  • 503 Service Unavailable Most used

    Temporarily unavailable.

    RFC 9110
  • 504 Gateway Timeout Most used

    A proxy or gateway waited too long for the server behind it.

    RFC 9110
  • 505 HTTP Version Not Supported

    The HTTP version is not supported.

    RFC 9110
  • 507 Insufficient Storage

    No space to store what was sent.

    RFC 4918
  • 511 Network Authentication Required

    Log in to the network first.

    RFC 6585

Sources: RFC 2324 , RFC 4918 , RFC 6585 , RFC 7725 , RFC 8297 , RFC 8470 , RFC 9110

Sponsor this tool

About this tool

HTTP status codes are the three-digit answer of every web request: 2xx means it worked, 3xx that the client must go elsewhere, 4xx that the request has a problem and 5xx that the server failed. This reference lists the codes of RFC 9110 and the common extensions (429 Too Many Requests, 103 Early Hints, 451…), each with its official reason phrase, a plain explanation, when an API or website should return it and a link to the specification. Search by number (4 shows every 4xx) or by word (timeout, redirect, cache), or filter by class or by the most used. It answers the classic doubts: 401 or 403, 301 or 308, 400 or 422, 502 or 504.

How to use it

  1. 1 Type a code or a word, such as 404, 50 or timeout.
  2. 2 Or filter by class (1xx to 5xx) or by the most used codes.
  3. 3 Read what the code means and when to use it.
  4. 4 Open the RFC link for the exact definition.

Frequently asked questions

What is the difference between 401 and 403?

401 Unauthorized means the request has no valid credentials: the client should log in or refresh the token. 403 Forbidden means the server knows who you are and still refuses: logging in again will not help.

Should I use 301 or 308 for a permanent redirect?

For web pages, 301 is the usual choice and is understood by every browser and search engine. 308 means the same but guarantees the method and body are repeated, so use it for API endpoints that receive POST or PUT.

When should an API return 400 and when 422?

Use 400 when the request cannot be read at all — broken JSON, a missing parameter or wrong types. Use 422 when it is well-formed but the data fails your rules, such as an invalid e-mail or a date in the past.

Embed this tool

Add this free tool to your own website — copy the code below. It stays up to date automatically.

Tools for your site →

More in Developers

Developers · Browse all 122 free tools