Skip to main content
App Museum
日本語

HTTP Status Code Lookup

Look up what HTTP status codes such as 404 and 503 mean, by number, name, or a word from the description. Lists every code in the IANA registry from 1xx to 5xx with a short explanation and the RFC that defines it. Runs entirely in your browser.

A number matches from its first digit (40 finds 400 to 409). Separated by spaces, any of the numbers may match, and every word must.

Class

All 64 codes

  • 100

    ContinueInformational

    The server has received the request headers and has not rejected them, so the client can go on to send the body. It is the interim response to a request sent with Expect: 100-continue.

    RFC 9110 §15.2.1

  • 101

    Switching ProtocolsInformational

    The server is switching to the protocol the client asked for in the Upgrade header. It is returned when a WebSocket connection opens.

    RFC 9110 §15.2.2

  • 102

    ProcessingInformational

    A WebDAV code. The server has accepted the request and is still working on it, with no final response yet.

    RFC 2518

  • 103

    Early HintsInformational

    Sends headers such as Link ahead of the final response, so the browser can start loading stylesheets and other resources while it waits.

    RFC 8297

  • 104

    Upload Resumption SupportedInformational

    Tells the client that the server supports resuming an interrupted upload. The specification is still a draft, so the registration is temporary; as of October 2026 it expires on November 13, 2026.

    draft-ietf-httpbis-resumable-upload-05

  • 200

    OKSuccessful

    The request succeeded. For GET, the body holds the requested resource.

    RFC 9110 §15.3.1

  • 201

    CreatedSuccessful

    The request succeeded and a new resource was created. It is at the URL in the Location header when there is one, and at the requested URL otherwise.

    RFC 9110 §15.3.2

  • 202

    AcceptedSuccessful

    The request was accepted, but processing has not finished. It is returned when the work is done later.

    RFC 9110 §15.3.3

  • 203

    Non-Authoritative InformationSuccessful

    The request succeeded, but a proxy on the way changed the content of the origin server's response.

    RFC 9110 §15.3.4

  • 204

    No ContentSuccessful

    The request succeeded and there is no body to return. It suits a save or a delete that leaves the page as it is.

    RFC 9110 §15.3.5

  • 205

    Reset ContentSuccessful

    The request succeeded. The client should reset the view, such as an input form, to its original state.

    RFC 9110 §15.3.6

  • 206

    Partial ContentSuccessful

    Returns only the part of the resource asked for in the Range header. It is used to seek within a video or resume a download.

    RFC 9110 §15.3.7

  • 207

    Multi-StatusSuccessful

    A WebDAV code. The XML body carries a separate result for each of several resources.

    RFC 4918

  • 208

    Already ReportedSuccessful

    A WebDAV code. Inside a 207 response, it marks members that were already listed and are not repeated.

    RFC 5842

  • 226

    IM UsedSuccessful

    A delta-encoding code. The response is the result of the instance manipulations, such as a diff from the previous version, asked for in the A-IM header.

    RFC 3229

  • 300

    Multiple ChoicesRedirection

    The resource has more than one representation, and the client picks one of them.

    RFC 9110 §15.4.1

  • 301

    Moved PermanentlyRedirection

    The resource has moved for good to the URL in the Location header, and later requests should use the new URL. A POST request may turn into GET at the new URL.

    RFC 9110 §15.4.2

  • 302

    FoundRedirection

    Also known as: Moved Temporarily

    The resource is temporarily at the URL in the Location header, and later requests should keep using the original URL. A POST request may turn into GET at the new URL.

    RFC 9110 §15.4.3

  • 303

    See OtherRedirection

    Tells the client to fetch the URL in the Location header with GET (or HEAD). One use is sending the browser to a result page after a form POST.

    RFC 9110 §15.4.4

  • 304

    Not ModifiedRedirection

    Answers a request sent with If-None-Match or If-Modified-Since when the resource has not changed. There is no body, and the client uses its cached copy.

    RFC 9110 §15.4.5

  • 305

    Use ProxyRedirection

    It told the client to go through a proxy, and is now deprecated for security reasons.

    RFC 9110 §15.4.6

  • 306

    (Unused)Redirection

    Defined in an earlier specification and no longer used. The number stays reserved.

    RFC 9110 §15.4.7

  • 307

    Temporary RedirectRedirection

    The resource is temporarily at the URL in the Location header. Unlike 302, the request is repeated with the same method and body.

    RFC 9110 §15.4.8

  • 308

    Permanent RedirectRedirection

    The resource has moved for good to the URL in the Location header. Unlike 301, the request is repeated with the same method and body.

    RFC 9110 §15.4.9

  • 400

    Bad RequestClient Error

    The request is malformed or otherwise wrong, and the server cannot process it.

    RFC 9110 §15.5.1

  • 401

    UnauthorizedClient Error

    Authentication is required: the credentials are missing or wrong. The response carries a WWW-Authenticate header that names the scheme to use.

    RFC 9110 §15.5.2

  • 402

    Payment RequiredClient Error

    Reserved for future use. It has no standard meaning yet.

    RFC 9110 §15.5.3

  • 403

    ForbiddenClient Error

    The server understood the request and refuses to carry it out, for example because the user lacks permission. Sending the same credentials again does not change the result.

    RFC 9110 §15.5.4

  • 404

    Not FoundClient Error

    The resource was not found. Besides a wrong URL or a dead link, a server also returns it when it does not want to reveal that the resource exists.

    RFC 9110 §15.5.5

  • 405

    Method Not AllowedClient Error

    The method is not supported for this resource. The Allow header lists the methods that are.

    RFC 9110 §15.5.6

  • 406

    Not AcceptableClient Error

    The server cannot produce a response in a form that matches headers such as Accept and Accept-Language.

    RFC 9110 §15.5.7

  • 407

    Proxy Authentication RequiredClient Error

    The client must authenticate with the proxy. It is like 401, except that the proxy is asking.

    RFC 9110 §15.5.8

  • 408

    Request TimeoutClient Error

    The server did not receive the complete request within the time it was prepared to wait.

    RFC 9110 §15.5.9

  • 409

    ConflictClient Error

    The request conflicts with the current state of the resource, as when two people edit the same thing at once.

    RFC 9110 §15.5.10

  • 410

    GoneClient Error

    The resource is no longer available, and that is likely to be permanent. Unlike 404, it states plainly that the resource was removed.

    RFC 9110 §15.5.11

  • 411

    Length RequiredClient Error

    The server refuses a request that has no Content-Length header.

    RFC 9110 §15.5.12

  • 412

    Precondition FailedClient Error

    A precondition given in a header such as If-Match or If-Unmodified-Since did not hold.

    RFC 9110 §15.5.13

  • 413

    Content Too LargeClient Error

    Also known as: Payload Too Large, Request Entity Too Large

    The request body is larger than the server accepts. It is returned when an upload goes over the size limit.

    RFC 9110 §15.5.14

  • 414

    URI Too LongClient Error

    Also known as: Request-URI Too Long

    The URL is longer than the server can handle.

    RFC 9110 §15.5.15

  • 415

    Unsupported Media TypeClient Error

    The server does not support the format of the request body, given by Content-Type or Content-Encoding.

    RFC 9110 §15.5.16

  • 416

    Range Not SatisfiableClient Error

    Also known as: Requested Range Not Satisfiable

    The server cannot serve the ranges asked for in the Range header. It is returned when they lie outside the size of the resource, and also when the request asks for too many small or overlapping ranges.

    RFC 9110 §15.5.17

  • 417

    Expectation FailedClient Error

    The server cannot meet what the Expect header asked for.

    RFC 9110 §15.5.18

  • 418

    (Unused)Client Error

    Also known as: I'm a teapot

    Known as "I'm a teapot" from RFC 2324, which was written as an April Fools' joke. It was implemented widely enough that the number is reserved for now so that it is not given another meaning.

    RFC 9110 §15.5.19

  • 421

    Misdirected RequestClient Error

    The request reached a server that cannot answer for its target. It happens when an HTTP/2 connection is reused.

    RFC 9110 §15.5.20

  • 422

    Unprocessable ContentClient Error

    Also known as: Unprocessable Entity

    The request is well formed, but the server cannot act on its content. APIs often return it when input fails validation.

    RFC 9110 §15.5.21

  • 423

    LockedClient Error

    A WebDAV code. The resource is locked.

    RFC 4918

  • 424

    Failed DependencyClient Error

    A WebDAV code. The action could not be carried out because another action it depended on failed.

    RFC 4918

  • 425

    Too EarlyClient Error

    The server refuses a request that arrived in TLS early data (0-RTT), because a third party could replay it.

    RFC 8470

  • 426

    Upgrade RequiredClient Error

    The server will not carry out the request over the current protocol. The Upgrade header names the protocol it needs.

    RFC 9110 §15.5.22

  • 428

    Precondition RequiredClient Error

    The server requires the request to carry a precondition such as If-Match, so that nobody overwrites someone else's change without noticing.

    RFC 6585

  • 429

    Too Many RequestsClient Error

    The client sent too many requests in a given time (rate limiting). A Retry-After header may say how long to wait.

    RFC 6585

  • 431

    Request Header Fields Too LargeClient Error

    The request headers are too large, for example because cookies have piled up.

    RFC 6585

  • 451

    Unavailable For Legal ReasonsClient Error

    The resource cannot be provided for legal reasons, such as an order to take it down.

    RFC 7725

  • 500

    Internal Server ErrorServer Error

    The server hit an unexpected problem and could not process the request. The cause, such as an exception or a configuration mistake, is found in the server logs.

    RFC 9110 §15.6.1

  • 501

    Not ImplementedServer Error

    The server does not implement what the request needs, for example when it receives a method it does not know.

    RFC 9110 §15.6.2

  • 502

    Bad GatewayServer Error

    A server acting as a gateway or proxy received an invalid response from the server behind it.

    RFC 9110 §15.6.3

  • 503

    Service UnavailableServer Error

    The server cannot handle the request right now because of overload or maintenance. A Retry-After header may say when to try again.

    RFC 9110 §15.6.4

  • 504

    Gateway TimeoutServer Error

    A server acting as a gateway or proxy did not get a response in time from the server behind it.

    RFC 9110 §15.6.5

  • 505

    HTTP Version Not SupportedServer Error

    The server does not support the major version of HTTP used in the request.

    RFC 9110 §15.6.6

  • 506

    Variant Also NegotiatesServer Error

    Content negotiation is misconfigured: the chosen variant is itself set up to negotiate.

    RFC 2295

  • 507

    Insufficient StorageServer Error

    A WebDAV code. The server lacks the storage space to complete the request.

    RFC 4918

  • 508

    Loop DetectedServer Error

    A WebDAV code. The server stopped because it found an infinite loop while processing the request.

    RFC 5842

  • 510

    Not Extended (OBSOLETED)Server Error

    The request does not meet the extension policy for the resource: a required extension declaration is missing, or the server does not support a mandatory extension the request declares. The extension framework it belongs to (RFC 2774) is obsolete.

    RFC 2774

  • 511

    Network Authentication RequiredServer Error

    The client must authenticate to use the network. Captive portals, such as the sign-in page of public Wi-Fi, return it.

    RFC 6585

How to use

  1. In the "Search by number, name, or word" field, type the number you want to look up (404), a name (not found), or a word from the description (authentication, cache)
  2. The list below narrows to the codes that match. Each one shows its number, name, class, a short explanation, and the document (RFC) that defines it
  3. Choose a class such as 4xx Client Error under "Class" to see only the codes of that class
  4. A code that is easy to mix up with others has a button such as "Compare with 302, 303, 307, 308". Pressing it lists just those codes and shows how to tell them apart above the list

You do not need to press a button to search. The list changes as you type. The page opens with every code listed in numeric order.

Ways to search

  • Number — matches from the first digit. 40 finds 400 to 409, and 5 finds every 5xx code. Full-width digits (404) are read the same way
  • Class — typing 4xx narrows to that class as well
  • Name — gateway finds 502 and 504. Case is ignored
  • Earlier names — 413 is also found by payload too large, and 422 by unprocessable entity
  • Words from the description — search by words the explanations use, such as rate limiting, WebDAV, or proxy
  • Defining document — rfc 6585 finds the codes that RFC defines
  • Several numbers — numbers separated by spaces list the codes that match any of them. 401 403 finds 401 and 403. Typing one of the groups under "Telling similar codes apart" below, such as 401 403 or 404 410, also shows how to tell them apart
  • Several words — words separated by spaces must all match. Next to numbers, a code must match one of the numbers and every word. 50 gateway finds 502 and 504

Example

Typing 40 narrows the list to these ten codes.

400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Timeout
409 Conflict

Typing timeout finds the two codes with Timeout in their names.

408 Request Timeout
504 Gateway Timeout

With that search in place, setting "Class" to 5xx Server Error leaves only 504.

Typing a number that is not in the list, such as 499, shows that the number is not registered and how a client treats it.

The five classes

A status code is a three-digit number, and its first digit gives the kind of response.

  • 1xx Informational — the request was received and processing continues. These are interim responses sent before the final one
  • 2xx Successful — the request was received, understood, and accepted
  • 3xx Redirection — completing the request needs a further step, such as going to another URL
  • 4xx Client Error — the request is wrong or cannot be carried out as sent. The cause is on the side that sent it
  • 5xx Server Error — the request looks valid, but the server failed to handle it. The cause is on the server's side

Even for a number you do not know, the first digit tells you whether the request succeeded and which side has the problem.

Telling similar codes apart

The app can list each of these groups side by side. Press "Compare with" on any code in the group.

200, 201, 202, and 204 (success)

  • 200 reports success. For GET, the result is in the body. It can also have no body, as in a response to HEAD
  • 201 says a new resource was created. It is at the URL in the Location header, or at the request URL if there is none
  • 202 says the request was accepted, but processing has not finished. It may never run to completion
  • 204 says the request succeeded and there is no content to send

301, 302, 303, 307, and 308 (redirects)

  • A permanent move is 301 or 308, and a temporary redirect is 302 or 307
  • With 301 and 302, a POST request may turn into GET at the new URL. To have the request repeated with the same method and body, use 308 (permanent) or 307 (temporary)
  • 303 has the client fetch another URL with GET (or HEAD). One use is opening a result page after a form POST

401 and 403

  • 401 means "we do not know who you are." It is returned when the user is not signed in or the token is wrong
  • 403 means "we understood the request, and the answer is no." Signing in again with the same account does not change the result. Another account that has permission may get through

The name is Unauthorized, but what 401 reports is a failure of authentication, the check of who the user is.

404 and 410

  • 404 says only that the resource was not found. It does not say whether that is temporary or permanent
  • 410 says the resource used to exist, is gone, and will probably not return

400 and 422

  • 400 is for a request the server cannot read, such as broken JSON
  • 422 is for a request the server could read whose content does not meet the rules: a required field is missing, a date is in the wrong format, and so on

Which one an API returns varies. Many APIs return 400 for invalid input as well.

405 and 501

  • 405 is for a method this resource does not allow. The Allow header lists the methods it does
  • 501 is for a method the server does not support for any resource

406 and 415

  • 406 is returned when the server cannot respond in a form the client asked for with Accept or a similar header
  • 415 is returned when the server cannot accept the format of the body the client sent (its Content-Type or Content-Encoding)

408 and 504

Both mean someone gave up waiting.

  • 408 is returned when the server gave up waiting for the client's request to arrive in full
  • 504 is returned when a gateway or proxy gave up waiting for the response of the server behind it

409, 412, and 428

  • 409 is for a request that conflicts with the current state of the resource, such as two people editing the same thing at once
  • 412 is for a precondition, set with If-Match or a similar header, that did not hold
  • 428 is returned when the server requires the request to carry such a precondition

413, 414, and 431

What is too large is the request body for 413, the URL for 414, and the headers for 431.

429 and 503

  • 429 is returned when this client has sent too many requests (rate limiting)
  • 503 is returned when the server cannot handle the request right now because of overload or maintenance

Both can give the time to wait in the Retry-After header.

500, 502, 503, and 504

  • 500 is a problem inside the server itself, such as an exception in the program or a configuration mistake
  • 502 is returned when a proxy or load balancer received an invalid response from the server behind it
  • 503 is returned when the server cannot handle requests right now because of overload or maintenance
  • 504 is returned when a proxy or load balancer gave up waiting for the server behind it

502 and 504 come from a server in front of the application, such as nginx, a CDN, or a load balancer.

The codes in the list

The list holds the codes registered in the "HTTP Status Code Registry" of IANA, the organization that manages Internet numbers, as of October 12, 2026. That includes the following.

  • 306 and 418 — numbers the registry marks "(Unused)". 418 is known as "I'm a teapot"
  • 104 — a code whose specification is still a draft, so its registration is temporary and has an expiry date (November 13, 2026)
  • 510 — a code whose defining specification is obsolete. Its name carries "(OBSOLETED)", as in the registry

Names follow the registry's current wording. 413 is Content Too Large (formerly Payload Too Large), and 422 is Unprocessable Content (formerly Unprocessable Entity). Earlier names are shown as "Also known as" and can be searched.

Numbers that are not in the list

Numbers a server or service uses on its own, such as 499 (nginx) and 520 (Cloudflare), are not registered and so are not in the list. Check the documentation of that product for their meaning.

The HTTP specification (RFC 9110) requires a client that receives a number it does not know to treat it like the first number of the same class (x00). That is 400 for 499 and 500 for 520. Typing a three-digit number from 100 to 599 that is not in the list shows this fallback.

To check which parts of a URL are sent to the server, use the URL Parser and Query String Viewer.

FAQ

What is an HTTP status code?

A three-digit number at the start of a web server's response that reports the outcome of the request. 200 means success, 404 means not found, and 500 means a problem inside the server. You can see it in the "Network" tab of the browser's developer tools or in the output of curl -I.

What should I do when I see 404?

Check the spelling of the URL. If you followed a link, the page may have moved or been deleted. On the site owner's side, redirecting the old URL to the new one with 301 whenever a URL changes prevents dead links.

How do I choose between 301 and 302?

Use 301 when a page has moved and will not move back, and 302 when another page is shown only for a while, such as during a campaign or maintenance. 301 tells the other side to use the new URL from now on, and browsers remember where it led. That makes it hard to take back later.

What is the difference between 500 and 503?

500 is a problem the server did not expect, such as an exception in a program. 503 is a state in which the server cannot handle the request "right now" because of overload or maintenance, and implies that it will recover in time. During planned maintenance, a 503 can carry a Retry-After header to say when service is expected back.

Is 418 I'm a teapot a real code?

It comes from RFC 2324, a protocol for controlling coffee pots published on April Fools' Day in 1998, and is not an official HTTP code. Because so much software implemented it as a joke, RFC 9110 keeps 418 as a reserved number so that it is not assigned another meaning.

Why are 499 and 520 not in the list?

They are not registered with IANA. nginx uses 499, and Cloudflare uses the 520s, each with a meaning of its own. This app lists registered codes only.

Can I read the explanations in Japanese?

The Japanese page shows the same list with explanations in Japanese. The names, such as Not Found, stay in English on both pages.

Is anything I type sent anywhere?

No. The list is part of the page, and the search runs in your browser. Nothing you type is recorded, and reloading the page returns it to its initial state.

Type
Utility
Category
Developer
Tags
http
status-code
reference
api
redirect
developer
  • MIME Type Lookup

    Look up the MIME type (Content-Type) for an extension such as .jpg or .json, or the extensions for a MIME type. Lists more than 90 types common on the web, with their other spellings and whether IANA has registered them. Choose a file to tell its format from the mark in its content and check it against the extension. Runs entirely in your browser.

    UtilityDevelopermimecontent-typemedia-typeextensionmagic-numberfile-signaturereferencehttpdeveloper
  • Port Number Lookup

    Look up what port numbers such as 22, 443, and 3306 are used for, by number, service name, or word. Lists more than 120 common ports with an explanation and covers every number in the IANA registry. Also shows which ports browsers refuse to open and reads the ports in netstat, ss, or lsof output. Runs entirely in your browser.

    UtilityDeveloperporttcpudpnetworkfirewallreferencedeveloper
  • Color Code Converter

    Convert colors between HEX, RGB, and HSL, and see them in HSV, CMYK, and OKLCH too, with a color picker, a live preview, and WCAG contrast ratios against white, black, or any text color you choose.

    UtilityDevelopercolorhexrgbhslhsvcmykoklchcontrastcontrast-checkerwcagconverterdeveloper