Skip to main content

    HTTP Status Code Lookup

    Look up any HTTP status code, see its meaning, category, and when it's used. Search by code number or name.

    Free to use. Runs in your browser.

    Search any HTTP status code (200, 301, 404, 500) to see its meaning, category, and typical causes. Covers every permanently registered IANA code from 1xx to 5xx.

    Use the first digit to decide where to look: request, redirect, cache, client error, or server error.

    63 codes found

    Informational

    100Continue

    The server has received the request headers; the client should proceed to send the request body.

    101Switching Protocols

    The server is switching protocols as requested by the client (e.g., to WebSocket).

    102Processing

    The server has received and is processing the request, but no response is available yet. Used by WebDAV to prevent client timeouts on long operations.

    103Early Hints

    Allows the server to send preliminary response headers before the final response, enabling the client to begin preloading resources early.

    Success

    200OK

    The request was successful. The response body contains the requested data.

    201Created

    The request was successful and a new resource was created.

    202Accepted

    The request has been accepted for processing, but processing has not been completed. The request may or may not eventually be acted upon.

    203Non-Authoritative Information

    The request succeeded, but the response comes from a transforming proxy or cache rather than the origin server. The data may differ from what the origin would return.

    204No Content

    The server processed the request but returns no body content.

    205Reset Content

    The server fulfilled the request and asks the client to reset the document view, for example to clear a form after submission.

    206Partial Content

    The server is returning only part of a resource, as requested by the client using a Range header. Used for resumable downloads and video streaming.

    207Multi-Status

    A WebDAV response that conveys status for multiple independent operations in a single XML body. Each sub-response carries its own status code.

    208Already Reported

    Used inside a WebDAV 207 Multi-Status response to avoid repeating the properties of a resource that has already been enumerated.

    226IM Used

    The server has fulfilled a GET request and the response is the result of one or more instance-manipulations applied to the current instance, as defined by the HTTP Delta Encoding specification.

    Redirection

    300Multiple Choices

    The request has more than one possible response. The client or user should choose one. Rarely used in practice; most servers return 200 with options instead.

    301Moved Permanently

    The resource has moved to a new URL permanently. Update your links.

    302Found

    The resource is temporarily at a different URL. Keep using the original URL.

    303See Other

    The response to the request can be found at a different URL using a GET request. Commonly used to redirect after a form POST so a browser refresh does not resubmit the form.

    304Not Modified

    The resource hasn't changed since last request. Use your cached version.

    305Use Proxy

    The requested resource must be accessed through the proxy given in the Location header. Deprecated due to security concerns and no longer used.

    306(Unused)

    This code was used in a previous version of the HTTP specification but is no longer used. It is reserved and must not be issued by servers.

    307Temporary Redirect

    Temporary redirect preserving the HTTP method of the original request.

    308Permanent Redirect

    Permanent redirect preserving the HTTP method of the original request.

    Client Error

    400Bad Request

    The server cannot process the request due to malformed syntax or invalid parameters.

    401Unauthorized

    Authentication is required. The request lacks valid credentials.

    402Payment Required

    Reserved for future use. The original intention was for digital payment systems, but it has never been formally standardised. Some APIs use it informally for billing-related restrictions.

    403Forbidden

    The server understood the request but refuses to authorise it.

    404Not Found

    The requested resource could not be found on the server.

    405Method Not Allowed

    The HTTP method used is not supported for this resource.

    406Not Acceptable

    The server cannot produce a response matching the list of acceptable content types specified by the client's Accept headers.

    407Proxy Authentication Required

    Similar to 401, but authentication must be performed by a proxy rather than the origin server. The proxy must issue a Proxy-Authenticate challenge header.

    408Request Timeout

    The server timed out waiting for the client to send the complete request. The client may repeat the request without modification.

    409Conflict

    The request conflicts with the current state of the resource.

    410Gone

    The resource is permanently gone and will not return.

    411Length Required

    The server requires a Content-Length header but the request did not include one.

    412Precondition Failed

    One or more conditions given in the request headers evaluated to false on the server, such as an If-Match or If-Unmodified-Since check failing.

    413Content Too Large

    The request body exceeds the server's size limit.

    414URI Too Long

    The request URI is longer than the server is willing to interpret. Can occur with very long query strings or improperly encoded form submissions.

    415Unsupported Media Type

    The server refuses the request because the payload format is not supported. Check your Content-Type header matches what the endpoint expects.

    416Range Not Satisfiable

    The server cannot fulfil the Range header in the request. The range may be outside the bounds of the resource, or the format may be invalid.

    417Expectation Failed

    The server cannot meet the requirements specified in the Expect request header.

    418(Unused)

    Reserved and not assigned to any real use. Originally appeared as a joke in an April Fools' RFC about coffee pots; the IANA registry now formally marks it as unused.

    421Misdirected Request

    The request was directed at a server that is not able to produce a response for the combination of scheme and authority in the request URI.

    422Unprocessable Content

    The request is well-formed but contains semantic errors.

    423Locked

    The source or destination resource of a WebDAV method is locked. The response should contain a lock token in the body.

    424Failed Dependency

    A WebDAV response indicating that the request failed because it depended on another request that failed.

    425Too Early

    The server is unwilling to process a request sent using TLS early data, due to the risk of a replay attack.

    426Upgrade Required

    The client should switch to a different protocol. The server sends an Upgrade header indicating the required protocol.

    428Precondition Required

    The origin server requires the request to be conditional, to prevent the lost-update problem where a client reads a resource, modifies it, then overwrites a concurrent change.

    429Too Many Requests

    You have sent too many requests in a given time. Slow down.

    431Request Header Fields Too Large

    The server is unwilling to process the request because its header fields are too large. Reduce the size of individual headers or the total number of headers.

    451Unavailable For Legal Reasons

    The server is denying access to the resource as a consequence of a legal demand, such as a court order or government instruction.

    Server Error

    500Internal Server Error

    The server encountered an unexpected condition.

    501Not Implemented

    The server does not support the functionality required to fulfil the request. Return this when the server does not recognise the request method.

    502Bad Gateway

    The server received an invalid response from an upstream server.

    503Service Unavailable

    The server is temporarily unable to handle the request (overload or maintenance).

    504Gateway Timeout

    The upstream server failed to respond in time.

    505HTTP Version Not Supported

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

    506Variant Also Negotiates

    The server has an internal configuration error where the chosen variant for content negotiation is itself configured to negotiate, creating a circular reference.

    507Insufficient Storage

    A WebDAV response indicating the server cannot store the representation needed to complete the request.

    508Loop Detected

    A WebDAV response indicating the server terminated an operation because it encountered an infinite loop while processing the request.

    510Not Extended (Obsoleted)

    An extension to the request was required but the server did not support it. This code has been obsoleted and should not be used in new implementations.

    511Network Authentication Required

    The client needs to authenticate to gain network access, typically used by captive portals (such as hotel or airport Wi-Fi login pages).

    API response

    Pair the code with a clear JSON body when the client needs to show or log an error reason.

    Redirect

    Use 301 or 308 for permanent moves, and 302 or 307 when the original URL should remain valid.

    Caching

    A 304 response has no body. It tells the browser to reuse the cached resource it already has.

    HTTP Status Codes: The Language of the Web

    Every time your browser loads a page, an API returns data, or a form submits, the server sends back a three-digit number. That number tells the client exactly what happened, did the request succeed? Did the resource move? Is the server broken? HTTP status codes are the universal language servers use to communicate results.

    You don't need to memorise all of them, there are over 60 IANA-assigned codes, but knowing the major ones saves hours of debugging. When your API returns a 422 instead of a 400, or a 301 instead of a 302, the difference matters. It affects how browsers cache, how search engines index, and how your users experience errors.

    This reference covers every status code you'll actually encounter. Search by number, name, or description to find exactly what you need.

    Status Code Categories at a Glance

    RangeCategoryMeaningCommon Examples
    100-199InformationalRequest received, continuing process100 Continue, 101 Switching Protocols
    200-299SuccessRequest received, understood, and accepted200 OK, 201 Created, 204 No Content
    300-399RedirectionFurther action needed to complete request301 Moved, 302 Found, 304 Not Modified
    400-499Client ErrorRequest contains an error from the client side400 Bad Request, 401 Unauthorized, 404 Not Found
    500-599Server ErrorServer failed to fulfil a valid request500 Internal Error, 502 Bad Gateway, 503 Unavailable

    What this means for you: If you're debugging an issue, the first digit tells you where to look. 4xx = your request has a problem (check your code). 5xx = the server has a problem (check logs or wait for the service to recover).

    The Status Codes That Trip People Up

    401 vs 403

    401 means "I don't know who you are", send credentials. 403 means "I know who you are, but you're not allowed." The fix for 401 is authentication. The fix for 403 is authorisation (different permissions).

    301 vs 302 vs 307

    301 is permanent (search engines transfer SEO value). 302 is temporary (keep indexing the original URL). 307 is like 302 but guarantees the HTTP method doesn't change, critical for POST requests that shouldn't become GETs.

    400 vs 422

    400 means the request is malformed, bad JSON, missing required headers. 422 means the request is valid but the data doesn't make sense, like submitting a form with an email field containing "not-an-email". Use 422 for validation errors.

    502 vs 503 vs 504

    502 means a proxy/gateway got a bad response from the upstream server. 503 means the server is overloaded or in maintenance. 504 means the upstream server didn't respond in time. All three mean "try again later," but the root cause differs.

    SEO Impact of Status Codes

    CodeSEO EffectBest Practice
    200Page indexed normallyReturn for all valid, indexable pages
    301SEO value transfers to new URL (90-99%)Use for permanent URL changes, domain migrations
    302SEO value stays on original URLUse for A/B tests, temporary maintenance pages
    404Page removed from index after crawlsSet up a custom 404 page, fix broken links
    410Removed from index more quickly than 404Use when content is permanently, deliberately removed
    503Tells crawlers to come back laterUse during planned maintenance (not for blocking bots)

    What this means for you: Using the wrong redirect code can cost you search rankings. A 302 when you meant 301 means Google keeps indexing the old URL. A 404 when you should use 301 means you lose the link equity the old page had built up.

    API Design: Choosing the Right Code

    ScenarioCodeWhy Not Something Else
    Successful creation (POST)201 Created200 works but 201 is more specific, include a Location header
    Successful delete204 No Content200 with an empty body is confusing, 204 is unambiguous
    Invalid form data422 Unprocessable Content400 means the request itself is broken (bad JSON), not the data
    Resource already exists409 ConflictMore descriptive than 400, tells the client to resolve the conflict
    Rate limited429 Too Many RequestsInclude a Retry-After header so clients know when to try again

    Headers That Often Matter Too

    A status code tells the client what happened. Response headers often tell the client what to do next, how long to cache, where to redirect, or when to retry.

    StatusUseful HeaderWhat It Adds
    201 CreatedLocationPoints to the newly created resource
    301 or 308LocationTells the client where the permanent redirect goes
    304 Not ModifiedETagConfirms which cached version the client can keep using
    401 UnauthorizedWWW-AuthenticateExplains the authentication scheme expected by the server
    429 Too Many RequestsRetry-AfterGives the client a wait time before trying again
    503 Service UnavailableRetry-AfterSignals temporary downtime rather than permanent failure

    Debugging by Status Family

    2xx success but wrong data

    Check caching, request parameters, and response body shape. A successful status code means the server accepted the request, not that the client asked the right question.

    3xx redirect loop

    Inspect each Location header. Loops often come from mixed HTTP/HTTPS rules, trailing slash rewrites, or proxies adding headers the app does not expect.

    4xx client errors

    Reproduce with the same URL, headers, method, body, and credentials. A missing auth header can look very different from a malformed JSON body.

    5xx server errors

    Start with application logs, upstream health, deploy history, and dependency outages. Retrying can help for transient failures, but repeated 5xx needs server-side investigation.

    REST API Response Examples

    ActionRecommended CodeExample Body
    Create a user201 Created{"id":"usr_123","email":"[email protected]"}
    Update settings200 OK{"timezone":"Europe/London"}
    Delete a record204 No ContentNo body
    Validation failed422 Unprocessable Content{"errors":{"email":"Invalid address"}}
    Rate limited429 Too Many Requests{"error":"rate_limited"}

    Keep machine-readable error codes in the body when clients need to branch on the result. Human copy can change, but stable error identifiers help client code.

    For public APIs, document both the status code and the response body shape so client teams can handle errors consistently.

    Caching and Conditional Requests

    304 saves bandwidth

    A browser can ask whether a cached file has changed by sending an ETag or Last-Modified value. If the server returns 304, the browser keeps the cached copy and no body is sent.

    204 is not the same as 304

    204 means the request succeeded and there is no response body. 304 means the client should use a previous cached response instead.

    Redirects can be cached

    Permanent redirects can stick in browsers, search indexes, and caches. Test a redirect rule carefully before using 301 or 308 across a large site.

    Related Tools

    How to use this tool

    1

    Type a status code number or keyword in the search box

    2

    Browse results grouped by category (success, redirect, error)

    3

    Read the description to understand when and why each code is used

    Common uses

    • Looking up unfamiliar HTTP error codes during debugging
    • Choosing the correct status code for REST API responses
    • Understanding redirect types for SEO configuration
    • Diagnosing server errors from monitoring alerts

    Share this tool

    Frequently Asked Questions

    What are HTTP status codes?
    Three-digit numbers returned by web servers indicating the result of a client's request. The first digit defines the category: 1xx informational, 2xx success, 3xx redirection, 4xx client error, 5xx server error. Every HTTP response includes exactly one status code.
    What's the difference between 301 and 302?
    301 is a permanent redirect, search engines transfer SEO value to the new URL and update their index. 302 is temporary, search engines keep indexing the original URL. Using the wrong one can cost you search rankings.
    When do I get a 429?
    429 Too Many Requests means you've exceeded a rate limit. The server may include a Retry-After header telling you how long to wait. Implement exponential backoff in your client code to handle this gracefully.
    What's the difference between 401 and 403?
    401 Unauthorized means 'I don't know who you are, provide credentials.' 403 Forbidden means 'I know who you are, but you don't have permission.' The fix for 401 is authentication; the fix for 403 is different permissions or roles.
    What does a 204 response mean?
    204 No Content means the request succeeded, but there's nothing to send back in the body. It's commonly used for DELETE operations and save/update endpoints where you just need confirmation of success, not data back.
    What causes a 502 Bad Gateway?
    502 means a reverse proxy or load balancer (like Nginx or Cloudflare) received an invalid response from the upstream server. Usually the backend application crashed, timed out, or returned malformed data. Check your application logs, not the proxy config.
    Should I use 404 or 410 for removed content?
    Use 410 Gone when content is deliberately, permanently removed. Google tends to remove 410 pages from its index more quickly than 404 pages. Use 404 when the page simply doesn't exist or you're not sure if it was ever there.
    What's the story behind 418 I'm a Teapot?
    418 began as an April Fools' joke in RFC 2324 (1998), the Hyper Text Coffee Pot Control Protocol. It was never part of the real HTTP standard, and the IANA registry now formally marks 418 as unused. Some APIs still return it as an Easter egg, which is why you may encounter it in the wild.
    When should I use 422 vs 400?
    Use 400 Bad Request when the request itself is malformed, bad JSON syntax, missing required headers, wrong content type. Use 422 Unprocessable Content (renamed from Unprocessable Entity in RFC 9110) when the request is syntactically valid but semantically wrong, like submitting a form with an invalid email address.
    What does 304 Not Modified do?
    304 tells the client to use its cached version. The browser sent an If-Modified-Since or ETag header, and the server confirmed the resource hasn't changed. No response body is sent, saving bandwidth and load time. It's how browser caching works.
    What's the difference between 307 and 302?
    Both are temporary redirects, but 307 guarantees the HTTP method doesn't change. A 302 on a POST request might become a GET (and browsers do this). A 307 on a POST stays a POST. Use 307 when preserving the method matters.
    How do I check HTTP status codes for my site?
    Use browser DevTools (Network tab), curl -I (headers only), or tools like httpstat.us for testing. For bulk checking, use a crawler like Screaming Frog or a monitoring service that alerts on 5xx errors.

    Results are for general informational purposes only and should be checked before use. They are not professional advice. See our Disclaimer and Terms of Service.