Quick answer
HTTP 418 I'm a teapot is a joke status code from RFC 2324, the 1998 April Fools' "Hyper Text Coffee Pot Control Protocol." It is not used in real APIs except as an Easter egg.
What HTTP 418 means
418 I'm a teapot comes from RFC 2324, a tongue-in-cheek specification for controlling coffee pots. The code means the server is a teapot and refuses to brew coffee. It has no legitimate use in production APIs, but developers occasionally return it as a playful Easter egg or placeholder.
Common causes
- An intentional Easter egg on a website or API
- A placeholder a developer left in by mistake
- A joke endpoint or hidden route
Example JSON error response
{
"error": "I'm a teapot",
"message": "The server refuses to brew coffee because it is, permanently, a teapot.",
"status": 418
}
Raw HTTP response
HTTP/1.1 418 I'm a teapot
Content-Type: application/json
How to handle HTTP 418
- ✓ If you got this unexpectedly, the endpoint is likely a joke or placeholder
- ✓ Do not rely on 418 in production code
- ✓ Check whether you are hitting the intended endpoint
- ✓ Treat it like any 4xx — the request will not succeed as-is
The "Save 418" story
418 is the only joke status code with a fan campaign. Around 2017, some HTTP libraries and frameworks began removing their 418 definitions on the grounds that it wasn't a "real" code. The developer community pushed back with the "Save 418" movement — arguing the code was a beloved piece of internet culture worth preserving. The effort worked: RFC 7168 formally references the teapot, and 418 remains reserved by IANA specifically so no serious code can ever claim that number. It's now permanently the teapot's.
Where you'll actually see a 418
It's rare, but not mythical:
- Easter eggs — Google's
google.com/teapotfamously returns a 418 with an animated teapot. - Anti-bot / rate-limit jokes — some services return 418 to obviously-automated or abusive clients as a cheeky "no".
- Placeholders — developers stub an unfinished endpoint with 418 so an accidental hit is unmistakable in logs.
- Demos and tutorials — it's the go-to example code for "return a custom status".
Because IANA keeps 418 reserved, you can safely use it as a recognizable internal sentinel — just never as a real part of an API contract.
Frequently Asked Questions
Is HTTP 418 a real status code?
It is real in the sense that it is defined in RFC 2324, but that RFC is an April Fools' joke. It is not part of the core HTTP standard and has no legitimate production use — it is an Easter egg.
Where does the 418 teapot code come from?
From RFC 2324, the "Hyper Text Coffee Pot Control Protocol," published as an April Fools' RFC in 1998. The code humorously means the server is a teapot and cannot brew coffee.
Should I use 418 in my API?
No, not for real functionality. It is fine as a deliberate Easter egg, but for actual error handling use the appropriate 4xx code such as 400, 403, or 404.
What was the "Save 418" movement?
Around 2017, some frameworks removed their 418 support for being a non-standard joke. The community campaigned to "Save 418" as a piece of internet culture. It succeeded — RFC 7168 references the teapot and IANA keeps 418 reserved, so no real status code can ever take that number.
Does Google really return a 418?
Yes — google.com/teapot returns HTTP 418 with an animated teapot graphic, one of the best-known Easter eggs on the web. It's a fun demonstration, not a functional endpoint.
Working with a JSON API response?
Format and inspect any response in your browser — nothing is uploaded.