HTTPfy

418 (Unused) I'm a teapot

Unused / reserved: the "I'm a teapot" joke code from RFC 2324, kept reserved by RFC 9110.

418 at a glance

Code
418
Name
(Unused) I'm a teapot (IANA: (Unused))
Class
4xx Client error
Status
Registered as reserved / unused
Defined in
RFC 9110, Section 15.5.19
Cacheable by default
No by default. Caches store it only when the response carries explicit freshness (Cache-Control max-age, s-maxage or Expires).

What 418 means

418 comes from the April Fools' Hyper Text Coffee Pot Control Protocol (RFC 2324): a teapot asked to brew coffee answers "I'm a teapot". It was never part of HTTP, but so many libraries implemented it that RFC 9110 marked 418 as reserved ("(Unused)") so it will not be assigned to anything else. Servers should not rely on it meaning anything.

What typically causes a 418

  • Easter eggs (Google has a /teapot page) and frameworks that include it in their status enums.
  • Some sites and bot-protection layers return 418 to clients they want to discourage, such as scrapers.

Fix it on the server

  • Use a meaningful code instead: 403 to refuse, 429 for rate limits, 400 for bad requests.

Fix it as a client or visitor

  • If a site returns 418 to your scraper, you are being blocked deliberately; check its terms and robots.txt.

Example response

HTTP/1.1 418 I'm a teapot
Content-Type: text/plain

I'm a teapot

Opens the HTTP headers tool with your URL filled in; it shows the status line and headers of every redirect hop.