HTTP Status Code Lookup
Look up any HTTP status code by number or name: what it means, what usually triggers it and how to fix it, with the RFC that defines it.
404
Not Found
The server can't find the requested resource. The URL may be mistyped, the resource may have been removed, or it may never have existed.
When it happens
- A page or file was moved or deleted without a redirect
- A typo exists in the URL or an internal link
- An API endpoint path or resource ID is incorrect
How to fix it
- Double-check the URL for typos and correct casing
- Add a 301 redirect if the resource moved permanently
- Verify the API route and resource identifier are correct and that the resource still exists
Related codes
Defined in RFC 9110.
- Free — No signup required
- Instant — Results update as you type
- Private — Processed in your browser
A status code is the server's one-number verdict on a request, and it is usually the fastest route to the cause of a failure. It tells you whether to look at the request you sent, the application that handled it, or something standing in between. The lookup above turns the number into that answer.
How it works
Type a code (503), the start of one (40 lists 400 to 409) or part of a name (timeout, gateway), or pick a class with the buttons. Click any entry to see what it means. For the codes that turn up most often while debugging, such as 401, 404, 429, 500 and 502 to 504, the panel adds what usually triggers the code, how to fix it, and the related codes worth checking next. Every entry names the RFC that defines it, so you can go to the source when a detail matters.
The list covers every permanent entry in the IANA HTTP Status Code Registry, including 418, which the registry reserves because the joke RFC made it too widely used to reassign. Nothing you type leaves your browser.
Finding the status code in the first place
Error pages often hide the real number behind a friendly message, so read it from the response itself:
- Browser. Open developer tools, go to the Network panel and reload. Each request shows its status. Filter by
status-code:500in Chrome, or sort the column to bring failures together. - Terminal.
curl -iprints the status line and headers above the body. To get just the number, which is handy in scripts and health checks, discard the body:
curl -s -o /dev/null -w '%{http_code}\n' https://example.com/api/orders
curl -I is tempting but sends a HEAD request, and some servers answer HEAD differently from GET. When the two disagree, trust the method your application actually uses.
A triage order that saves time
Start with the first digit. A 4xx says the server believes the request is at fault, so check the URL, the method, the credentials and the body before touching the server. A 5xx says the server failed at something it should have handled, and the explanation is in its logs, not in the response.
Then ask who produced it. A 502 or 504 is rarely written by your application. It comes from the proxy, load balancer or CDN in front of it, reporting that the application never answered properly. The Server header and the style of the error page usually give the layer away. Restart or scale the upstream service, and check the proxy's timeout, before searching application code.
Watch for codes that are not in the registry. Some infrastructure invents its own. Nginx logs 499 when the client hung up before the response was ready, and Cloudflare returns 520 to 526 for origin connection and TLS problems. The lookup reports them as unknown, which is itself the clue: look up that vendor's documentation, not the HTTP specification.
Retrying safely
Not every failure deserves a retry, and not every request is safe to repeat:
- 429 and 503 are invitations to come back later. If the response carries
Retry-After, wait at least that long. Otherwise back off exponentially, with jitter, so a fleet of clients does not retry in lockstep. - 502 and 504 are often transient, but only retry automatically if the method is idempotent (
GET,HEAD,PUT,DELETE). A timed-outPOSTmay already have created the order, so retrying blindly can create it twice. Idempotency keys exist for exactly that case. - Most other 4xx codes will fail identically on every attempt. Retrying a 400, 403 or 422 only adds load. Fix the request instead.
Learn more
HTTP Status Codes: A Complete Reference explains every class in depth, including redirect and caching semantics and the pairs that are easy to mix up. If you are choosing codes for your own API rather than decoding someone else's, read REST API Design. When a 401 involves a bearer token, the JWT decoder shows whether it has expired or targets the wrong audience, and the URL encoder catches the badly escaped query strings behind many 400s.
FAQ
- Which status codes does the lookup include?
- Every permanent entry in the IANA HTTP Status Code Registry, from 100 Continue to 511 Network Authentication Required, including the reserved 418. The codes you most often have to debug also list typical causes and fixes.
- How do I see the status code a page returned?
- Open your browser's developer tools and look at the Network panel, where every request shows its status. From a terminal, curl -I followed by the URL prints the status line and headers.
- Is a 404 always the server's fault?
- No. 4xx codes mean the server thinks the request is the problem: a mistyped URL, a missing token or an invalid body. 5xx codes mean the server failed at something it should have been able to do.