HTTP Status Codes
Search or browse every HTTP status code by number or name, with a plain-English meaning and typical use case for each.
| Code | Name | Description | When to use |
|---|---|---|---|
| 100 | Continue | The server received the request headers and the client should proceed to send the request body. | Sent in response to an Expect: 100-continue header before a large upload. |
| 101 | Switching Protocols | The server is switching protocols as requested by the client via the Upgrade header. | Upgrading an HTTP connection to WebSocket. |
| 102 | Processing | The server has received and is processing the request, but no response is available yet (WebDAV). | Long-running WebDAV operations to prevent client timeouts. |
| 103 | Early Hints | Used to return preliminary headers (e.g. Link) before the final response. | Preloading resources while the server prepares the final response. |
| 200 | OK | The request succeeded. The meaning depends on the HTTP method. | Standard success response for GET, PUT, or POST that returns a body. |
| 201 | Created | The request succeeded and a new resource was created. | POST that creates a resource — include a Location header. |
| 202 | Accepted | The request has been accepted for processing, but processing is not complete. | Asynchronous or queued processing. |
| 203 | Non-Authoritative Information | The response is a transformed version from a proxy, not the origin. | Responses modified by a transforming proxy. |
| 204 | No Content | The request succeeded but there is no content to return. | Successful DELETE or PATCH with no response body. |
| 205 | Reset Content | Tells the client to reset the document view that sent the request. | Clearing a form after submission. |
| 206 | Partial Content | The server is delivering part of the resource due to a Range header. | Resumable downloads and media streaming. |
| 207 | Multi-Status | Conveys information about multiple resources in one response (WebDAV). | Batch WebDAV operations with mixed outcomes. |
| 208 | Already Reported | Members of a DAV binding already enumerated in a previous reply (WebDAV). | Avoiding repeated enumeration in WebDAV. |
| 226 | IM Used | The server fulfilled the request and the response is the result of instance manipulations. | Delta encoding responses. |
| 300 | Multiple Choices | The request has more than one possible response; the client should choose. | Content available in multiple formats. |
| 301 | Moved Permanently | The resource has permanently moved to a new URL. | Permanent redirects that pass SEO value. |
| 302 | Found | The resource is temporarily located at a different URL. | Temporary redirects (method may change to GET). |
| 303 | See Other | The client should retrieve the resource at another URL using GET. | Redirect after a POST to a confirmation page. |
| 304 | Not Modified | The cached version is still valid; no need to retransmit. | Conditional GET with If-None-Match or If-Modified-Since. |
| 307 | Temporary Redirect | The resource is temporarily at another URL; the method must not change. | Temporary redirect preserving the HTTP method. |
| 308 | Permanent Redirect | The resource is permanently at another URL; the method must not change. | Permanent redirect preserving the HTTP method. |
| 400 | Bad Request | The server cannot process the request due to a client error (malformed syntax). | Invalid request syntax or validation failure. |
| 401 | Unauthorized | Authentication is required and has failed or not been provided. | Missing or invalid credentials. |
| 402 | Payment Required | Reserved for future use; sometimes used by payment-gated APIs. | Indicating payment or quota is required. |
| 403 | Forbidden | The server understood the request but refuses to authorize it. | Authenticated but lacking permission. |
| 404 | Not Found | The server cannot find the requested resource. | Resource does not exist or URL is wrong. |
| 405 | Method Not Allowed | The HTTP method is not supported for the target resource. | POST to a read-only endpoint — include an Allow header. |
| 406 | Not Acceptable | No representation matches the Accept headers sent by the client. | Content negotiation failure. |
| 407 | Proxy Authentication Required | The client must authenticate with the proxy first. | Proxy requiring credentials. |
| 408 | Request Timeout | The server timed out waiting for the request. | Client too slow to send a complete request. |
| 409 | Conflict | The request conflicts with the current state of the resource. | Edit conflicts or uniqueness violations. |
| 410 | Gone | The resource is permanently gone and will not return. | Permanently removed content (better than 404 for SEO). |
| 411 | Length Required | The server requires a Content-Length header. | Rejecting requests without a content length. |
| 412 | Precondition Failed | A precondition in the request headers evaluated to false. | Conditional requests with If-Match that fail. |
| 413 | Payload Too Large | The request entity is larger than the server is willing to process. | Upload exceeding size limits. |
| 414 | URI Too Long | The requested URI is longer than the server can interpret. | Excessively long query strings. |
| 415 | Unsupported Media Type | The request media format is not supported by the resource. | Wrong Content-Type for an endpoint. |
| 416 | Range Not Satisfiable | The Range header cannot be fulfilled. | Requested byte range is outside the resource size. |
| 417 | Expectation Failed | The expectation in the Expect header cannot be met. | Failed Expect: 100-continue. |
| 418 | I'm a Teapot | The server refuses to brew coffee because it is a teapot (RFC 2324 joke). | An Easter egg; occasionally used for blocked requests. |
| 422 | Unprocessable Entity | The request is well-formed but contains semantic errors. | Validation errors on syntactically valid JSON. |
| 423 | Locked | The resource being accessed is locked (WebDAV). | WebDAV resource locking. |
| 424 | Failed Dependency | The request failed because a dependent request failed (WebDAV). | WebDAV operations that depend on a failed action. |
| 425 | Too Early | The server is unwilling to risk processing a request that might be replayed. | Preventing replay attacks in TLS early data. |
| 426 | Upgrade Required | The client should switch to a different protocol. | Requiring a TLS or protocol upgrade. |
| 428 | Precondition Required | The origin server requires the request to be conditional. | Preventing lost updates by requiring If-Match. |
| 429 | Too Many Requests | The user has sent too many requests in a given time (rate limiting). | Rate limiting — include a Retry-After header. |
| 431 | Request Header Fields Too Large | The header fields are too large for the server to process. | Oversized headers or cookies. |
| 451 | Unavailable For Legal Reasons | The resource is unavailable due to legal demands. | Content blocked by legal order or censorship. |
| 500 | Internal Server Error | A generic error occurred on the server. | Unhandled server-side exceptions. |
| 501 | Not Implemented | The server does not support the functionality required. | Unimplemented HTTP method or feature. |
| 502 | Bad Gateway | The server, acting as a gateway, received an invalid upstream response. | Upstream server failure behind a proxy or load balancer. |
| 503 | Service Unavailable | The server is not ready to handle the request (overload or maintenance). | Maintenance windows or overload — include Retry-After. |
| 504 | Gateway Timeout | The gateway did not get a timely response from the upstream server. | Upstream server too slow behind a proxy. |
| 505 | HTTP Version Not Supported | The HTTP version used in the request is not supported. | Rejecting unsupported protocol versions. |
| 506 | Variant Also Negotiates | Internal configuration error in content negotiation. | Misconfigured transparent negotiation. |
| 507 | Insufficient Storage | The server cannot store the representation needed (WebDAV). | WebDAV storage exhaustion. |
| 508 | Loop Detected | The server detected an infinite loop while processing (WebDAV). | WebDAV infinite loop prevention. |
| 510 | Not Extended | Further extensions to the request are required to fulfill it. | Required HTTP extensions are missing. |
| 511 | Network Authentication Required | The client must authenticate to gain network access. | Captive portals on public Wi-Fi. |
The full list is bundled and searched in your browser — no requests are made.
How to use HTTP Status Codes
The HTTP Status Codes reference provides a searchable, filterable list of every standard HTTP response code from 1xx informational to 5xx server errors. Each entry includes the official name, a plain-English description, and practical guidance on when to use or expect the code. The full dataset is bundled locally — no network request needed to search.
- Type a code number (e.g. 404) or keyword (e.g. "not found") in the search box to filter the list.
- Use the class buttons (1xx, 2xx, 3xx, 4xx, 5xx) to filter by response category.
- Click any row to expand the full description and usage guidance.
- Use the search to quickly look up an unfamiliar status code during API debugging.
Your data never leaves your device — 100% private processing.
HTTP status code classes
HTTP status codes are three-digit numbers grouped by their first digit. 1xx codes are informational — the request was received and is being processed (e.g. 100 Continue lets a client know it can send a request body). 2xx codes indicate success: 200 OK is the standard response, 201 Created confirms a new resource was made, 204 No Content confirms success with no body. 3xx codes are redirections: 301 Moved Permanently and 308 Permanent Redirect pass SEO equity; 302 and 307 are temporary. 4xx codes are client errors caused by bad requests: 400 Bad Request, 401 Unauthorized (not authenticated), 403 Forbidden (authenticated but not allowed), 404 Not Found. 5xx codes are server errors: 500 Internal Server Error, 502 Bad Gateway (upstream failure), 503 Service Unavailable (overloaded or maintenance).
| Class | Range | Meaning | Common examples |
|---|---|---|---|
| 1xx | 100–199 | Informational | 100 Continue, 101 Switching Protocols |
| 2xx | 200–299 | Success | 200 OK, 201 Created, 204 No Content |
| 3xx | 300–399 | Redirection | 301 Moved, 302 Found, 304 Not Modified |
| 4xx | 400–499 | Client Error | 400 Bad Request, 401 Unauthorized, 404 Not Found |
| 5xx | 500–599 | Server Error | 500 Internal Server Error, 503 Unavailable |
Choosing the right status code for REST APIs
Returning the semantically correct status code matters for API clients, caches, and SEO crawlers. Use 201 Created (not 200) when a POST creates a new resource, and include a Location header pointing to it. Use 204 No Content for successful DELETE or PATCH with no response body. Distinguish 400 Bad Request (malformed syntax or validation failure) from 422 Unprocessable Entity (syntactically valid but semantically incorrect data). Use 401 only when authentication is missing or invalid — not when the user lacks permission (that is 403). Return 409 Conflict when a PUT would violate a uniqueness constraint. Use 429 Too Many Requests with a Retry-After header for rate limiting. Never use 200 with an error payload — this breaks client error detection and caching.
Glossary
- HTTP
- HyperText Transfer Protocol — the application-layer protocol for distributed, collaborative, hypermedia information systems.
- Idempotent
- A property of an HTTP method where multiple identical requests produce the same result as a single request; GET, PUT, DELETE are idempotent; POST is not.
- Cache-Control
- An HTTP header that directs caching behaviour; status codes 200, 301, and 410 are cacheable by default without Cache-Control.
- Content negotiation
- The mechanism by which a server selects the best representation for a response based on Accept headers; 406 Not Acceptable is returned when no match is found.
- Rate limiting
- Server-side enforcement of request quotas; properly indicated with 429 Too Many Requests and a Retry-After header.
Related reading
Frequently Asked Questions
Get weekly tool tips & updates
New tools, power-user tips, and productivity hacks — delivered free every Friday.
No spam, ever. Unsubscribe with one click.
Why use HTTP Status Codes?
- No installation — use directly from any browser
- Handles large inputs without crashing or timeouts
- Syntax highlighting and formatted output for readability
- Copy to clipboard shortcut for fast workflow integration
Common use cases
- Validate and format JSON responses from APIs
- Encode/decode Base64 strings during debugging
- Generate UUIDs for database seeds or test data
- Minify CSS or JavaScript before deployment
- Diff two code snippets to spot regressions
Related Developer Tools
User Agent Parser
Parse any user-agent string to identify the browser, engine, operating system, and device. Detects your own UA too. Free and private.
Meta Tag Generator
Generate SEO meta tags, Open Graph tags, and Twitter Card tags online. Preview Google search snippet and copy all tags instantly.
HTTP Headers Checker
View HTTP response headers for any URL. Check status codes, security headers, caching, redirects, and server details instantly. Free and private.
JSON Formatter & Validator
Format, validate, and minify JSON instantly. Includes syntax highlighting, error detection, and a collapsible tree view — free, private, in-browser.
Regex Tester
Test and debug regular expressions online. See live matches, capture groups, and replace output. Free, private, instant.
Base64 Encoder & Decoder
Encode text or files to Base64, or decode Base64 strings back to text. Fast, free, and runs entirely in your browser.
Explore all Developer Tools.