All tools

HTTP Status Code Lookup

Search any HTTP status code by number or keyword — name, meaning, and spec reference.

  • http
  • status
  • code
  • 404
  • 500
  • 401
  • 403
  • 301
  • rest
  • api

About HTTP Status Code Lookup

HTTP status codes are three-digit numbers servers send back to tell the client what happened with a request. They're grouped by leading digit: 1xx is informational, 2xx is success, 3xx is redirection, 4xx is a client error (the request was wrong), and 5xx is a server error (the request was fine but something blew up serving it). The codes are defined across a handful of RFCs — RFC 9110 covers the core HTTP semantics, with RFC 6585, RFC 8470, RFC 2324, and others adding specific codes.

There are roughly 60 standard codes in active use, plus a few non-standard ones (like Cloudflare's 5xx range or Microsoft's IIS extensions). This lookup covers the standard set: search by number, name, or keyword to see the short description and which spec defines it.

How to use

Type a number ("404", "401", "418") or a keyword ("not found", "rate limit", "redirect", "teapot") into the search box. The list filters live across the code, name, and description. The colour bar on the left indicates the class — green for 2xx, amber for 3xx, orange for 4xx, red for 5xx, slate for 1xx.

Click a card to expand the full description and see the RFC reference. Click the code itself to copy it to your clipboard. Use the class chips at the top to narrow to a single category.

Frequently asked questions

  • What's the difference between 401 and 403?

    401 Unauthorized means "you haven't authenticated — send credentials" (the name is misleading; "unauthenticated" would be more accurate). 403 Forbidden means "you're authenticated, but you're not allowed to do this regardless." The practical test: if logging in might fix the problem, return 401; if logging in as a different user might fix it but logging in as the current user wouldn't, return 403.

  • When should I use 301 vs 302 vs 307 vs 308?

    301 (Moved Permanently) and 308 (Permanent Redirect) tell crawlers and caches to update their links. 302 (Found) and 307 (Temporary Redirect) say "use this other URL for now, but check back here next time." The 30x vs 30y distinction is about method preservation: 301 and 302 let clients change a POST to a GET when following the redirect (legacy behaviour); 307 and 308 forbid that, preserving the original method. Use 308 for permanent API redirects and 307 for temporary ones if you care about preserving POST/PUT/DELETE.

  • What is a 418 status code?

    418 I'm a Teapot is a joke status code defined in RFC 2324 ("Hyper Text Coffee Pot Control Protocol", 1 April 1998) to be returned when a teapot is asked to brew coffee. It is not part of the HTTP spec and was deliberately reserved by IETF in RFC 7168 as a sentinel value that's safe to never reuse for a real status. Some servers (and developers) emit it for laughs; nothing real ever sends it.

  • Why are 5xx codes rendered as server errors?

    Because the convention since HTTP/1.0 is that 5xx means "the request looked valid, but the server failed to fulfil it." That includes 500 (the catch-all internal error), 502/504 (gateway errors when a proxy can't reach its upstream), 503 (the server is temporarily overloaded or in maintenance), and so on. 4xx, by contrast, means the client did something wrong — invalid URL, missing auth, malformed body — and a different request might succeed.

  • Are 1xx codes ever actually sent?

    Yes, but rarely visible to application code. 100 Continue is used when a client sends Expect: 100-continue with a large request body, so the server can reject the request before the body is uploaded. 101 Switching Protocols is what a WebSocket upgrade returns. 103 Early Hints is a newer code (RFC 8297) used to tell clients to start preloading resources before the final response arrives. Most application frameworks abstract these away.

More Web & Dev tools