HTTP Status Code Lookup
Search every HTTP status code with what it means and when to use it.
Search by code, name or what you are trying to express.
| Code | Name | Meaning | When to use it |
|---|---|---|---|
| 100 | Continue | The client should continue with the request body. | Sent in response to an Expect: 100-continue header, so a large body is not uploaded before the server agrees to accept it. |
| 101 | Switching Protocols | The server is switching protocols as requested. | This is how a WebSocket connection is established from an HTTP request. |
| 102 | Processing | The server has accepted the request but has not completed it. | A WebDAV extension, used to stop a client timing out during a long operation. |
| 103 | Early Hints | Preliminary headers sent before the final response. | Lets a browser start preloading critical assets while the server is still generating the page. |
| 200 | OK | The request succeeded. | The only status search engines will index content from. Every canonical page should return it. |
| 201 | Created | The request succeeded and a new resource was created. | Should include a Location header pointing at the new resource. |
| 202 | Accepted | The request was accepted but processing is not complete. | For asynchronous work. Give the client a way to poll for the outcome. |
| 204 | No Content | Success, with no body to return. | Correct for a DELETE or a form submission where the client should stay on the current page. |
| 206 | Partial Content | Part of the resource is being returned. | Powers resumable downloads and video seeking, in response to a Range header. |
| 301 | Moved Permanently | The resource has permanently moved to a new URL. | The right choice for a genuine move. Search engines transfer ranking signals to the new URL and browsers cache it aggressively — which makes it hard to undo. |
| 302 | Found | The resource is temporarily at a different URL. | Keeps the original URL indexed. Use for maintenance pages and temporary diversions, never for a permanent move. |
| 303 | See Other | Fetch the result at another URL using GET. | The correct redirect after a POST, so a refresh does not resubmit the form. |
| 304 | Not Modified | The cached copy is still valid. | Sent in response to a conditional request. Saves bandwidth by returning headers only. |
| 307 | Temporary Redirect | Temporary redirect that preserves the request method. | Unlike 302, a POST stays a POST. Prefer it when the method must be preserved. |
| 308 | Permanent Redirect | Permanent redirect that preserves the request method. | The method-preserving equivalent of 301. |
| 400 | Bad Request | The server could not understand the request. | Use for malformed syntax. If the request is well-formed but semantically wrong, 422 is more precise. |
| 401 | Unauthorized | Authentication is required or has failed. | Misleadingly named — it means unauthenticated. Use 403 when the user is known but not permitted. |
| 403 | Forbidden | The server understood the request but refuses to authorise it. | The user is authenticated but lacks permission. Repeated 403s can cause search engines to drop a URL. |
| 404 | Not Found | The resource does not exist. | Never return 200 with a "not found" page — that creates a soft 404 and wastes crawl budget. |
| 405 | Method Not Allowed | The HTTP method is not supported for this resource. | Must include an Allow header listing the methods that are supported. |
| 406 | Not Acceptable | No representation matches the Accept headers. | Rare in practice — most servers return their default representation instead. |
| 408 | Request Timeout | The client took too long to send the request. | Different from 504, which is a timeout between servers. |
| 409 | Conflict | The request conflicts with the current state. | For edit collisions and duplicate-creation attempts. Explain what conflicted. |
| 410 | Gone | The resource was deliberately removed and will not return. | Search engines drop 410 URLs faster than 404s. Use it when you have intentionally deleted content. |
| 413 | Payload Too Large | The request body exceeds the server limit. | Common on file uploads. Surface the limit in the response body. |
| 415 | Unsupported Media Type | The Content-Type is not supported. | Usually a missing or wrong Content-Type header on a JSON request. |
| 418 | I'm a teapot | A joke status from a 1998 April Fools RFC. | Not a real status, but implemented by enough servers to have become folklore. |
| 422 | Unprocessable Content | The request is well-formed but semantically invalid. | The right status for validation failures — the JSON parsed but a field failed a rule. |
| 429 | Too Many Requests | The client has hit a rate limit. | Include a Retry-After header. Clients should back off exponentially rather than retrying immediately. |
| 451 | Unavailable For Legal Reasons | Access denied for legal reasons. | Used for court-ordered blocks and geographic restrictions. The number references Fahrenheit 451. |
| 500 | Internal Server Error | An unexpected server error occurred. | The generic fallback. Never leak a stack trace in the response — log it server-side instead. |
| 501 | Not Implemented | The server does not support the functionality required. | Different from 405, which means the method exists but is not allowed here. |
| 502 | Bad Gateway | An upstream server returned an invalid response. | Usually a crashed or unreachable application behind a reverse proxy. |
| 503 | Service Unavailable | The server is temporarily unable to handle the request. | The correct status for planned maintenance. Add Retry-After so search engines know to come back rather than deindex. |
| 504 | Gateway Timeout | An upstream server did not respond in time. | The proxy gave up waiting for the application. Distinct from 408, which is the client being slow. |
| 507 | Insufficient Storage | The server cannot store the representation. | A WebDAV extension, occasionally used for quota exhaustion. |
| 511 | Network Authentication Required | The client must authenticate to gain network access. | Used by captive portals on public Wi-Fi. |
What does HTTP Status Code Lookup do?
A searchable reference for every HTTP status code, with the specification meaning, practical guidance on when to send it, and the common mistakes. Includes the codes people forget, such as 410, 422 and 429.
How to Use HTTP Status Code Lookup
- 1Search for a codeBy number, name or what you are trying to express.
- 2Read the meaningThe specification definition plus practical guidance.
- 3Check the notesCommon mistakes and SEO implications are called out.
Key Features
- Every registered status code from 100 to 511
- Search by number, name or description
- Practical guidance on when each is appropriate
- SEO notes for the redirect and error codes that affect indexing
- Grouped by class with plain-English category summaries
Frequently Asked Questions
What is the difference between 301 and 302?
301 is permanent — search engines transfer ranking signals to the new URL and browsers cache it aggressively. 302 is temporary and keeps the original URL indexed. Use 301 for a genuine move, 302 for a temporary diversion such as maintenance.
When should I use 404 versus 410?
404 means not found, possibly temporarily. 410 means gone permanently and never coming back. Search engines drop 410 URLs faster, so use it when you have deliberately removed content.
What does 429 mean?
Too Many Requests — you have hit a rate limit. A well-behaved API includes a Retry-After header telling you how long to wait, and clients should back off exponentially rather than retrying immediately.
Should an API return 200 with an error in the body?
No. Status codes exist so clients, proxies and monitoring can understand outcomes without parsing the body. Use 4xx for client mistakes and 5xx for server failures, and put the detail in the body.
Explore Related Workflows & Utilities
More tools in Developer Tools and related problem-solving tools
Direct Workflow Extensions
Find the MIME type for any file extension, and vice versa.
Break a user agent string into browser, OS and device.
See the public IP address your connection presents.
Percent-encode text for safe use in URLs and query strings.
Validate canonical tags and spot the mistakes that break them.
Build a valid robots.txt with the right crawl rules.
Complementary Utilities across Categories
Topical Deep Dives & Guides
Everything you enter here is processed on your own device. Nothing is uploaded to a server, so there is nothing for us to store or log.
Related Tools
MIME Type Lookup
Find the MIME type for any file extension, and vice versa.
User Agent Parser
Break a user agent string into browser, OS and device.
What Is My IP Address
See the public IP address your connection presents.
URL Encoder
Percent-encode text for safe use in URLs and query strings.