Back to HTTP Status Codes

418 I'm a Teapot 4xx

A joke status code from an April Fools' RFC, indicating the server refuses to brew coffee because it is a teapot.

What does 418 mean?

418 I'm a Teapot is, genuinely, a joke — and one of the most well-known pieces of internet folklore in the entire HTTP specification ecosystem. It originated in RFC 2324, titled "Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0)," published as an April Fools' joke on April 1, 1998. The RFC humorously defined a protocol extension for controlling coffee pots over HTTP, and 418 was the response a coffee pot should return if asked to brew coffee when it is, in fact, a teapot, and therefore incapable of doing so.

Despite its joke origins, 418 has taken on a life of its own — it's been implemented (often as an Easter egg) by real software, including notably by Google for a period, and continues to be referenced in developer culture as shorthand for "this request is fundamentally the wrong kind of request for this thing."

How a 418 behaves

  • It's not part of the standard HTTP status code registry in the same sense as codes like 200-511 — RFC 2324 (and its 2014 follow-up, RFC 7168, "The Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances") were explicitly published as humor/April Fools' RFCs
  • Some HTTP libraries and frameworks explicitly support it as a recognized status code, complete with the "I'm a Teapot" reason phrase, despite its non-serious origins
  • It behaves like any other 4xx code structurally — it can have a body, isn't cacheable, and represents a client error in the (joking) sense that the request was fundamentally incompatible with what's being asked of the server

Common (joking) uses

If you're building an API:

  • As an Easter egg — some developers implement a hidden endpoint or specific condition that returns 418, as a nod to this piece of HTTP history
  • As a deliberate "this is absurd" response for genuinely nonsensical requests — using 418 as a humorous way to say "this request doesn't even make conceptual sense for this system," similar in spirit (if not in seriousness) to how 400 says "this request is malformed"

If you're calling an API:

  • If you encounter a genuine 418 from a real API, it's almost certainly an intentional Easter egg rather than a meaningful error — check the response body and the API's documentation/sense of humor

If you're a website visitor:

  • You might encounter 418 on sites/APIs that have deliberately implemented it as a joke or hidden feature — it's not something that occurs "naturally" through normal usage of serious applications

Real-world examples

Google's developer APIs reportedly returned 418 for certain requests for some time, widely understood within the developer community as an intentional homage to RFC 2324. Some HTTP client libraries and testing tools include 418 in their lists of recognized status codes specifically because developers expect to encounter it occasionally and want their tools to handle it gracefully (i.e., not crash on an "unrecognized" status code) rather than because it has genuine operational significance.

SEO implications

None — 418 has no practical relevance to page-level SEO and exists purely as an internet culture reference.

FAQ

Is 418 a real, official HTTP status code?

It originated in an April Fools' RFC (RFC 2324, 1998), which is explicitly humorous and not part of the standard status code registry in the same way as codes like 404 or 500. However, it's been informally adopted widely enough by developer tools and libraries that it functions as a "real" recognized code in practice, even if its origins are a joke.

Why would a real website return 418?

Almost always as a deliberate Easter egg or cultural reference — a way for developers to have a bit of fun, often hidden behind a specific (often undocumented) endpoint or condition, referencing this piece of HTTP history.

What's the "Hyper Text Coffee Pot Control Protocol"?

It's the (joking) name of RFC 2324, which humorously proposed extending HTTP to control internet-connected coffee pots — including defining how a coffee pot should refuse a brew request by responding 418 if it is, in fact, a teapot and not a coffee pot.

Was there a follow-up to RFC 2324?

Yes — RFC 7168, published in 2014, also as an April Fools' joke, extended the original "coffee pot" concept to cover tea-brewing appliances, adding further (joking) detail to this lighthearted corner of HTTP history.

Should I rely on 418 in production code?

No — while it's fun as an Easter egg, it shouldn't be relied upon for actual application logic. Real error conditions should use status codes with well-defined, serious semantics (400, 422, 403, etc.) so that automated systems, monitoring, and other developers interpret your API correctly.

Fun fact

418 might be the only HTTP status code where the "fun fact" is the entire reason the code exists in the first place — unlike every other code in this reference, where we've tried to find an interesting nugget buried in otherwise serious technical material, 418's entire story is the fun fact: a 1998 April Fools' joke about coffee pots and teapots that somehow became real enough to be implemented by major tech companies and recognized by HTTP libraries decades later.

Related Status Codes