HTTP Status Code Lookup

Look up HTTP status code meanings offline

Showing 62 of 62 status codes

1xx Informational

100
Continue
The server has received the request headers and the client should proceed to send the request body.
101
Switching Protocols
The requester has asked the server to switch protocols and the server has agreed to do so.
102
Processing
The server has received and is processing the request, but no response is available yet.
103
Early Hints
Used to return some response headers before final HTTP message.

2xx Success

200
OK
The request has succeeded. The meaning of the success depends on the HTTP method.
201
Created
The request has succeeded and a new resource has been created as a result.
202
Accepted
The request has been received but not yet acted upon. It is intended for cases where another process handles the request.
203
Non-Authoritative Information
The returned metadata is not exactly the same as is available from the origin server.
204
No Content
There is no content to send for this request, but the headers may be useful.
205
Reset Content
Tells the user agent to reset the document which sent this request.
206
Partial Content
This response code is used when the Range header is sent from the client to request only part of a resource.
207
Multi-Status
Conveys information about multiple resources, for situations where multiple status codes might be appropriate.
208
Already Reported
Used inside a DAV: propstat response element to avoid enumerating the internal members of multiple bindings.
226
IM Used
The server has fulfilled a GET request for the resource, and the response is a representation of the result.

3xx Redirection

300
Multiple Choices
The request has more than one possible response. The user agent or user should choose one of them.
301
Moved Permanently
The URL of the requested resource has been changed permanently. The new URL is given in the response.
302
Found
The URI of requested resource has been changed temporarily. Further changes in the URI might be made in the future.
303
See Other
The server sent this response to direct the client to get the requested resource at another URI with a GET request.
304
Not Modified
This is used for caching purposes. It tells the client that the response has not been modified.
305
Use Proxy
Deprecated. Was defined to indicate that a requested response must be accessed by a proxy.
307
Temporary Redirect
The server sends this response to direct the client to get the requested resource at another URI with same method.
308
Permanent Redirect
The resource is now permanently located at another URI, specified by the Location header.

4xx Client Error

400
Bad Request
The server cannot or will not process the request due to something that is perceived to be a client error.
401
Unauthorized
The client must authenticate itself to get the requested response.
402
Payment Required
Reserved for future use. Originally created for digital payment systems.
403
Forbidden
The client does not have access rights to the content; the server is refusing to give the requested resource.
404
Not Found
The server cannot find the requested resource. This can also mean the endpoint is valid but the resource does not exist.
405
Method Not Allowed
The request method is known by the server but is not supported by the target resource.
406
Not Acceptable
The server cannot produce a response matching the list of acceptable values defined in the request headers.
407
Proxy Authentication Required
Similar to 401 Unauthorized but authentication is needed to be done by a proxy.
408
Request Timeout
The server would like to shut down this unused connection.
409
Conflict
This response is sent when a request conflicts with the current state of the server.
410
Gone
The content has been permanently deleted from server, with no forwarding address.
411
Length Required
Server rejected the request because the Content-Length header field is not defined.
412
Precondition Failed
The client has indicated preconditions in its headers which the server does not meet.
413
Payload Too Large
Request entity is larger than limits defined by server.
414
URI Too Long
The URI requested by the client is longer than the server is willing to interpret.
415
Unsupported Media Type
The media format of the requested data is not supported by the server.
416
Range Not Satisfiable
The range specified by the Range header field in the request cannot be fulfilled.
417
Expectation Failed
The expectation indicated by the Expect request header field cannot be met by the server.
418
I'm a Teapot
The server refuses the attempt to brew coffee with a teapot. (RFC 2324)
421
Misdirected Request
The request was directed at a server that is not able to produce a response.
422
Unprocessable Entity
The request was well-formed but was unable to be followed due to semantic errors.
423
Locked
The resource that is being accessed is locked.
424
Failed Dependency
The request failed because it depended on another request and that request failed.
425
Too Early
Indicates that the server is unwilling to risk processing a request that might be replayed.
426
Upgrade Required
The server refuses to perform the request using the current protocol.
428
Precondition Required
The origin server requires the request to be conditional.
429
Too Many Requests
The user has sent too many requests in a given amount of time (rate limiting).
431
Request Header Fields Too Large
The server is unwilling to process the request because its header fields are too large.
451
Unavailable For Legal Reasons
The user agent requested a resource that cannot legally be provided.

5xx Server Error

500
Internal Server Error
The server has encountered a situation it does not know how to handle.
501
Not Implemented
The request method is not supported by the server and cannot be handled.
502
Bad Gateway
The server, while acting as a gateway, got an invalid response.
503
Service Unavailable
The server is not ready to handle the request. Common causes are maintenance or overload.
504
Gateway Timeout
The server is acting as a gateway and cannot get a response in time.
505
HTTP Version Not Supported
The HTTP version used in the request is not supported by the server.
506
Variant Also Negotiates
The server has an internal configuration error.
507
Insufficient Storage
The method could not be performed on the resource because the server is unable to store the representation.
508
Loop Detected
The server detected an infinite loop while processing the request.
510
Not Extended
Further extensions to the request are required for the server to fulfill it.
511
Network Authentication Required
The client needs to authenticate to gain network access.

The HTTP Status Code Lookup provides instant access to detailed explanations for every HTTP response status code from 100 to 599, including RFC references, common use cases, and the subtle distinctions between frequently confused codes. Enter a code like 403 or search by keyword like "redirect" to get the official name, meaning, and practical guidance for when to use it in your own APIs.

Understanding HTTP Status Codes

Every HTTP response begins with a three-digit status code that tells the client what happened with its request. If you have ever seen a 404 page, received a 500 error from an API, or been silently redirected by a 301, you have encountered status codes in action. They are the first thing your browser, HTTP client, or monitoring system checks when a response arrives, and choosing the right code in your own APIs is essential for building systems that behave predictably and are easy to debug.

Status codes are grouped into five classes by their first digit. The 1xx codes are informational -- the server is acknowledging the request but has not finished processing it. The 2xx codes indicate success -- the request was received, understood, and processed correctly. The 3xx codes handle redirects -- the client needs to take additional action, usually following a new URL. The 4xx codes signal client errors -- the request was malformed, unauthorized, or pointed at something that does not exist. And the 5xx codes indicate server errors -- the server understood the request but failed to process it due to an internal problem.

The challenge is not knowing that 200 means success or 404 means not found -- those are well known. The real complexity is in the subtle distinctions. Should you use 401 or 403 when a user lacks permission? Is 301 or 308 the right redirect for a POST endpoint that has moved? Should a search with no results return 200 with an empty body, 204, or 404? This tool explains these distinctions with practical guidance so you can make the right choice for your specific use case.

How to Look Up an HTTP Status Code

  1. Enter a status code number (e.g., 404) or search by keyword (e.g., "redirect", "unauthorized").
  2. View the official name, RFC reference, and detailed explanation.
  3. Read use-case guidance for when to return that code in your own API.

HTTP Status Code Quick Reference

Informational (1xx)

CodeNameMeaning
100ContinueServer received request headers; client should send the body
101Switching ProtocolsServer is switching to the protocol requested via Upgrade header (e.g., WebSocket)
103Early HintsServer sends preliminary headers (e.g., Link for preloading) before the final response

Success (2xx)

CodeNameMeaning
200OKStandard successful response
201CreatedResource was successfully created (common for POST)
204No ContentSuccess, but no body to return (common for DELETE)
206Partial ContentServer is returning a range of the resource (used with Range header)

Redirection (3xx)

CodeNameMeaning
301Moved PermanentlyResource has a new permanent URL; search engines update their index
302FoundTemporary redirect; historically ambiguous about method preservation
304Not ModifiedCached version is still valid; no body returned
307Temporary RedirectLike 302, but guarantees the HTTP method is not changed
308Permanent RedirectLike 301, but guarantees the HTTP method is not changed

Client Error (4xx)

CodeNameMeaning
400Bad RequestServer cannot process the request due to malformed syntax
401UnauthorizedAuthentication is required and has failed or is not provided
403ForbiddenServer understood the request but refuses to authorize it
404Not FoundRequested resource does not exist
405Method Not AllowedHTTP method is not supported for this endpoint
409ConflictRequest conflicts with current resource state
410GoneResource existed but has been permanently removed
429Too Many RequestsRate limit exceeded

Server Error (5xx)

CodeNameMeaning
500Internal Server ErrorGeneric server-side error
502Bad GatewayUpstream server returned an invalid response
503Service UnavailableServer is temporarily overloaded or in maintenance
504Gateway TimeoutUpstream server did not respond in time

Commonly Confused Status Codes

301 vs. 302 vs. 307 vs. 308

  • 301 Moved Permanently -- Use when a resource's URL has changed forever. Browsers and search engines may change POST to GET on redirect.
  • 302 Found -- Temporary redirect. Historically, browsers changed POST to GET despite the spec saying they should not. Ambiguous in practice.
  • 307 Temporary Redirect -- Like 302, but the browser must preserve the original HTTP method (POST stays POST).
  • 308 Permanent Redirect -- Like 301, but the browser must preserve the original HTTP method. Use this instead of 301 when redirecting form submissions.

401 vs. 403

  • 401 Unauthorized -- The client has not provided valid authentication credentials. The response should include a WWW-Authenticate header indicating the expected authentication scheme.
  • 403 Forbidden -- The client is authenticated (or authentication is not required), but does not have permission to access the resource. Re-authenticating will not help.

404 vs. 410

  • 404 Not Found -- The resource is not available. It may have never existed, or it may exist in the future.
  • 410 Gone -- The resource existed previously but has been intentionally and permanently removed. Search engines will deindex the URL faster with 410 than 404.

500 vs. 502 vs. 503 vs. 504

  • 500 -- The server itself encountered an error processing the request (unhandled exception, bug).
  • 502 -- A reverse proxy or load balancer received an invalid response from an upstream server.
  • 503 -- The server is temporarily unable to handle requests (overloaded, in maintenance). Often includes a Retry-After header.
  • 504 -- A reverse proxy or load balancer timed out waiting for an upstream server response.

When to Use This Tool

  • Designing RESTful APIs -- Choose semantically correct status codes for each endpoint and error condition.
  • Debugging API responses -- Understand what an unfamiliar or unexpected status code means in server logs.
  • Handling redirects -- Determine whether to use 301, 302, 307, or 308 for your specific redirect scenario.
  • Configuring monitoring alerts -- Set up alerts for specific status codes with an understanding of what each one indicates.
  • SEO optimization -- Use the correct redirect codes (301 vs 302) to preserve search engine rankings during URL migrations.
  • Incident triage -- Quickly identify whether a 5xx error is coming from your application (500) or from infrastructure (502, 504).

Practical Guidance for API Status Codes

One of the most common API design mistakes is overusing 200 OK for everything, including errors. Some APIs return 200 with an error message in the body, forcing the client to parse the response to determine whether the request actually succeeded. This breaks standard HTTP tooling, makes monitoring unreliable, and confuses developers who expect HTTP status codes to reflect the actual outcome. Use 200 for success, 4xx for client errors, and 5xx for server errors -- that is what the codes are for.

Another frequent source of confusion is the choice between 404 and empty success responses. If a user searches for products and the search returns zero results, the correct response is 200 with an empty array -- the search endpoint exists, it worked, and it found nothing. If the user requests a specific product by ID and that product does not exist, the correct response is 404 -- the resource they asked for is not there. The distinction is between "I did what you asked and the answer is nothing" (200) versus "the thing you asked about does not exist" (404).

For APIs that serve both authenticated and unauthenticated users, be careful about the information you leak through status codes. Responding with 403 to an unauthorized request for /admin/users confirms that the endpoint exists. Responding with 404 instead reveals nothing about your URL structure. The security community calls this "security through obscurity" and it has limits, but it is a reasonable defense-in-depth measure for sensitive endpoints.

Frequently Asked Questions

What are CloudFlare's custom 5xx status codes?

CloudFlare uses codes 520 through 527 for issues between their edge servers and origin servers. For example, 520 means the origin returned an unexpected response, 521 means the origin web server is down, 522 means the connection to the origin timed out, and 524 means the origin responded but took too long.

Is there a difference between "Unauthorized" and "Unauthenticated"?

Technically, HTTP 401 should be called "Unauthenticated" because it means the client has not proven their identity. The name "Unauthorized" is a historical misnomer in the spec. True authorization failure (you are authenticated but lack permission) is 403 Forbidden.

Should I use 404 or 204 when a search returns no results?

Use 200 with an empty result set. The resource (the search endpoint) exists and responded successfully -- it just found no matching items. Reserve 404 for when the endpoint itself does not exist.

When should I use 429 Too Many Requests?

Use 429 when a client has exceeded your API's rate limit. Include a Retry-After header indicating how many seconds the client should wait before retrying. Also include X-RateLimit-Limit and X-RateLimit-Remaining headers so clients can see their current quota status without hitting the limit.

What is the difference between 502 and 504 in a reverse proxy setup?

A 502 Bad Gateway means the proxy received a response from the upstream server, but the response was invalid or malformed (for example, the upstream returned garbage data or closed the connection mid-response). A 504 Gateway Timeout means the proxy never received a response at all -- the upstream server did not reply within the configured timeout period. Both indicate upstream problems, but 504 typically suggests the upstream is overloaded or unreachable, while 502 suggests it is responding but behaving incorrectly.

Should I return 201 Created or 200 OK after creating a resource?

Use 201 Created for POST requests that create a new resource. Include a Location header pointing to the newly created resource's URL. This follows REST conventions and helps clients locate the new resource without parsing the response body. Use 200 for updates to existing resources (PUT/PATCH).

Related Tools

IPparseβ€’Free Network & Subnet Calculator Tools

Β© 2026 IPparse. All tools run locally in your browser.

100% Privacy-First β€’ No Data Collected