glunty

HTTP Status Codes Reference

Every standard HTTP status code, searchable. Filter by class and see what a code means.

HTTP status codes with their class and one-line meaning
Code Name Class Meaning
100 Continue 1xx The client should continue the request, or ignore this response if the request is already finished.
101 Switching Protocols 1xx The server is switching protocols as requested by the client Upgrade header.
102 Processing 1xx The server has accepted the request and is working on it, but no response is available yet (WebDAV).
103 Early Hints 1xx The server sends preliminary headers, such as preload links, before the final response.
200 OK 2xx The request succeeded and the response body carries the result.
201 Created 2xx The request succeeded and a new resource was created, usually named by the Location header.
202 Accepted 2xx The request was accepted for processing, but the work has not finished yet.
203 Non-Authoritative Information 2xx The returned metadata differs from the origin because a proxy modified it.
204 No Content 2xx The request succeeded but there is no body to send back.
206 Partial Content 2xx The server is returning only part of the resource in response to a Range request.
301 Moved Permanently 3xx The resource has permanently moved to the URL given in the Location header.
302 Found 3xx The resource is temporarily at a different URL given in the Location header.
303 See Other 3xx The client should fetch the resource with a GET request to the Location URL.
304 Not Modified 3xx The cached copy is still valid, so no body is returned (used with conditional requests).
307 Temporary Redirect 3xx Like 302, but the client must keep the same HTTP method when following the redirect.
308 Permanent Redirect 3xx Like 301, but the client must keep the same HTTP method when following the redirect.
400 Bad Request 4xx The server cannot process the request because of malformed syntax or invalid framing.
401 Unauthorized 4xx Authentication is required or has failed, so valid credentials must be provided.
402 Payment Required 4xx Reserved for future use, though some APIs use it to signal a billing or quota problem.
403 Forbidden 4xx The server understood the request but refuses to authorize it.
404 Not Found 4xx The server cannot find the requested resource.
405 Method Not Allowed 4xx The request method is known but not supported for this resource.
406 Not Acceptable 4xx The resource cannot produce content matching the Accept headers the client sent.
408 Request Timeout 4xx The server timed out waiting for the client to finish sending the request.
409 Conflict 4xx The request conflicts with the current state of the resource, such as an edit conflict.
410 Gone 4xx The resource was intentionally removed and will not be available again.
411 Length Required 4xx The server refuses the request because it lacks a Content-Length header.
413 Payload Too Large 4xx The request body is larger than the server is willing or able to process.
414 URI Too Long 4xx The request URI is longer than the server is willing to interpret.
415 Unsupported Media Type 4xx The request body uses a media type the server does not support.
418 I am a teapot 4xx An April Fools code from RFC 2324; the server refuses to brew coffee because it is a teapot.
422 Unprocessable Content 4xx The request is well formed but has semantic errors that block processing (common in validation).
425 Too Early 4xx The server is unwilling to risk processing a request that might be replayed.
426 Upgrade Required 4xx The client should switch to a different protocol, such as TLS, named in the Upgrade header.
428 Precondition Required 4xx The server requires the request to be conditional to avoid a lost update.
429 Too Many Requests 4xx The client has sent too many requests in a given time and is being rate limited.
431 Request Header Fields Too Large 4xx The server refuses the request because its header fields are too large.
451 Unavailable For Legal Reasons 4xx The resource is blocked for legal reasons, such as a court order or censorship.
500 Internal Server Error 5xx The server hit an unexpected condition that prevented it from fulfilling the request.
501 Not Implemented 5xx The server does not support the functionality required to fulfill the request.
502 Bad Gateway 5xx A server acting as a gateway got an invalid response from an upstream server.
503 Service Unavailable 5xx The server is temporarily unable to handle the request, often due to overload or maintenance.
504 Gateway Timeout 5xx A gateway server did not get a timely response from an upstream server.
505 HTTP Version Not Supported 5xx The server does not support the HTTP protocol version used in the request.
507 Insufficient Storage 5xx The server cannot store the representation needed to complete the request (WebDAV).
511 Network Authentication Required 5xx The client must authenticate to gain network access, often shown by a captive portal.

Runs entirely in your browser. Nothing you type is sent anywhere; open DevTools and watch the Network tab to verify zero requests.

What this tool does

This is a searchable reference for the standard HTTP status codes, the three-digit numbers a server sends back to say how it handled a request. Every code on the page lists its name, its response class (1xx informational, 2xx success, 3xx redirection, 4xx client error, 5xx server error), and a one-sentence plain-English meaning. Type in the filter box to narrow the table by code number, name, or meaning, or tap a class button to show just one family. The whole dataset is baked into the page, so it works offline and sends nothing anywhere.

How to use it

Start typing in the Filter box. Entering 404 instantly narrows the list to Not Found; entering timeout surfaces 408 and 504; entering redirect shows the 3xx family. The class buttons (All, 1xx, 2xx, 3xx, 4xx, 5xx) combine with the text filter, so you can, for example, pick 4xx and type auth to zero in on 401. Clear the box to see all codes again. Nothing is submitted and there is no result limit.

Common use cases

  • Looking up what a status code from an API response or server log actually means.
  • Deciding which code to return from your own endpoint (for example 201 vs 200, or 401 vs 403).
  • Debugging redirects by comparing 301, 302, 307, and 308 behavior side by side.
  • Explaining an error to a teammate or in a ticket with a precise, shared definition.
  • Studying for interviews or certifications where the status code families come up.

Common pitfalls

  • 301 vs 302 change more than permanence. Both historically allowed a client to switch the method to GET when following the redirect. If you need the method preserved (a POST that stays a POST), reach for 307 or 308 instead.
  • 401 is not 403. A 401 says "authenticate and try again"; a 403 says "you are authenticated but still not allowed." Returning the wrong one sends clients down the wrong recovery path.
  • A reason phrase is not the contract. The text next to the number (like "Not Found") is informational and can be customized or omitted over HTTP/2. Clients should branch on the numeric code, not the phrase.
  • Not every number here is part of core HTTP. Codes such as 102, 103, 418, 425, 451, and 507 come from extensions or separate RFCs. They are widely referenced but not universally supported by every server or client.

Frequently asked questions

What are HTTP status codes?
HTTP status codes are three-digit numbers a server returns to tell the client how a request went. They are grouped into five classes by their first digit: 1xx informational, 2xx success, 3xx redirection, 4xx client error, and 5xx server error. The status line also carries a short reason phrase such as Not Found, but the numeric code is what clients act on.
What is the difference between a 401 and a 403?
A 401 Unauthorized means the request lacks valid authentication, so sending correct credentials may make it succeed. A 403 Forbidden means the server understood the request and the identity, but refuses to allow it, so retrying with the same credentials will not help. In short, 401 is about who you are and 403 is about what you are allowed to do.
When should I use 301 versus 302?
Use 301 Moved Permanently when a resource has a new canonical URL for good; browsers and search engines cache it and pass link value to the new location. Use 302 Found, or 307 Temporary Redirect, when the move is temporary and the original URL should stay in use. Note that 301 and 302 historically let clients switch the method to GET, while 307 and 308 preserve the original method.
What does a 429 status code mean?
A 429 Too Many Requests means you have hit a rate limit. The response often includes a Retry-After header telling you how many seconds to wait before trying again. Back off and honor that header rather than retrying immediately, which usually just makes the limit last longer.
Are 4xx and 5xx both errors?
Yes, but they assign blame differently. A 4xx code says the problem is on the client side, such as a bad URL, missing auth, or invalid input, so repeating the same request will fail the same way. A 5xx code says the server failed to fulfill an otherwise valid request, so the same request might succeed later once the server recovers.
Is 418 I am a teapot a real status code?
It is real in the sense that it is defined by RFC 2324, an April Fools specification for the Hyper Text Coffee Pot Control Protocol, and many web frameworks implement it as a joke. It is not part of the core HTTP standard and should not be used for serious APIs, but it is a well known Easter egg.
Does this tool send the codes I search to a server?
No. The full list of status codes is embedded in the page, and all filtering happens in your browser with JavaScript. You can confirm this by opening DevTools and watching the Network tab: typing in the search box makes zero requests.

Embed this tool

Free for any use; attribution appreciated. Paste this on your site:

The embed runs the same tool that lives at this URL. No tracking; no ads inside the embed. Resize height as needed for your layout.

Cite this tool

For academic, journalistic, or technical references. Pick a format:

Citations use 2026 as the publication year. Access date is left as a fillable placeholder where the citation style expects one.

Embedded tool from glunty.com