418 I'm a Teapot
An April Fools joke from the Hyper Text Coffee Pot Control Protocol, permanently reserved so it can never be reused.
Status
HTTP/1.1 418 I'm a Teapot
Details
- Category: 4xx
- Status: Reserved. Reserved in the registry and not usable as a real response.
- Specification: RFC 2324 §2.3.2
- Cacheable: Only with explicit cache headers
- Response body: Allowed
- Retry: Do not retry
418 comes from RFC 2324, a 1998 April Fools specification for controlling coffee pots over HTTP: any attempt to brew coffee with a teapot must return 418. RFC 7168 later extended the joke to teapots that are asked to brew tea.
It is not a real HTTP status code, but it is not available either. Attempts to reclaim 418 for practical use were rejected, and RFC 9110 lists it as reserved because too many implementations already reference it. Some sites still return it as an easter egg or as a deliberately opaque response to bots.
Common causes
- A deliberate joke endpoint.
- An application using it as an obscure signal, sometimes to confuse automated clients.
How to fix it
As the client
- Handle it as a generic 4xx. Do not attempt to interpret it as a defined condition.
As the server
- Do not use it in production APIs. Choose a code that carries meaning to clients and monitoring.
Examples
GET /brew HTTP/1.1 Host: teapot.example.com HTTP/1.1 418 I'm a Teapot Content-Type: text/plain I refuse to brew coffee because I am, permanently, a teapot.