What is 418 I'm a teapot?
HTTP status 418 I'm a teapot was defined in the 1998 April Fools' RFC "Hyper Text Coffee Pot Control Protocol" (RFC2324). RFC 9110 and the IANA registry now reserve 418 as (Unused). Its teapot origin and its current registry status are different things.
April Fools origins ☕
RFC2324 is a tongue-in-cheek protocol for controlling coffee pots; 418 is part of that joke.
What RFC2324 says
- Published on April 1, 1998 as a joke RFC.
- RFC 2324 §2.3.2 describes trying to brew coffee with a teapot, not asking a coffee pot to brew tea.
- The IANA HTTP status registry lists 418 as (Unused), referencing RFC 9110 §15.5.19. The number is reserved because of its deployment history, not assigned a new general-purpose meaning.
Example response
An educational HTTP/1.1 illustration of the joke response. The ASCII body is 16 bytes with no trailing newline.
HTTP/1.1 418 I'm a teapot
Content-Type: text/plain
Content-Length: 16
Short and stout.
Where you might see it 🧪
You may encounter it in demos, test services, or libraries. Check the particular service and response to understand why it was returned.
Common appearances
- Some web servers return it on special paths (like /teapot) as a hidden joke.
- Test/diagnostic services or libraries sometimes expose a 418 endpoint.
- Docs and blogs cite it as a fun HTTP trivia item.
Caveats
- The teapot meaning is not a general HTTP error definition. Clients that do not recognize the code handle it by its 4xx class.
- Monitoring may label it as unknown depending on its code table. Do not infer success from the label alone.
How to treat it in practice 💡
Keep 418 out of production APIs; stick to standard 4xx/5xx codes.
Recommendations
- Use standard HTTP statuses for errors and validation (400s/500s, not 418).
- Do not assume 418 is harmless. Inspect the URL, response body, and service documentation, and verify whether the intended operation succeeded.
- Distinguish the RFC 2324 joke from the currently reserved code in RFC 9110. For ordinary APIs, select a status with the appropriate meaning.
Specifications
RFC 2324 §2.3.2 / RFC 9110 §15.5.19 / IANA HTTP Status Codes