HTTP 418 I'm a Teapot

From the 1998 April Fools' hypertext coffee-pot spec. It is a real, registered code, and a teapot cannot brew coffee.

Defined in RFC 9110 §15.5.19 — 418 (Unused) · MDN reference · RFC 2324 §2.3.2 — Hyper Text Coffee Pot Control Protocol

RFC 9110 reserves 418 rather than defining it. The teapot comes from RFC 2324 §2.3.2, an April Fools' joke from 1998 that made the code permanently unusable for anything serious.

Where you meet HTTP 418 in production

Nowhere, deliberately. It came out of an April Fools' RFC for coffee pots and survives as the canonical joke status — which makes it genuinely useful as an unmistakable marker in tests and health checks.

Why you would test it

Genuinely useful as a canary: pick a code nothing in your stack handles specially, and assert it survives your client, your proxy and your logging untouched.

What your client should do about a 418

Treat it as an unexpected status: log it loudly and fail. Its practical value in a test suite is that no real error path produces it, so a 418 in a log is always the thing you put there on purpose.

418 versus the codes it gets confused with

Endpoints that return 418

1 endpoint in this playground answers with 418. Every one is free, needs no signup, and can be called from the browser or with curl.

Questions about HTTP 418

Is 418 a real HTTP status code?
It is registered, and it is a joke — from RFC 2324, the Hyper Text Coffee Pot Control Protocol. Attempts to remove it have been resisted with some feeling.
Should I use 418 in production?
Not for anything a real client has to interpret. As a deliberate sentinel in test infrastructure, it is ideal.

Other client error codes

All HTTP status codes · All 39 mock REST APIs · Getting started guide

Last updated