4xx Client Error

418 I'm a Teapot

What it means

One of the most beloved HTTP status codes, 418 "I'm a Teapot" was defined in RFC 2324 as an April Fools' Day joke in 1998. The premise: a teapot server should refuse to brew coffee with this code. Despite being a joke, it was retained in IANA's registry and has become a tradition in web development.

Site Visitor

What can I do?

  • You found an Easter egg! This is a joke status code, not a real error.
  • If the problem persists after retrying, contact the site owner.
Developer

How to debug & fix

  1. Use 418 for playful rejection messages in your API
  2. Some developers use it to reject bots or scrapers with a humorous touch
  3. RFC 7168 extended the joke: "The Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances (HTCPCP-TEA)"
  4. Document your use of 418 in your API changelog so integrators understand it is intentional, not a proxy error.

Code Example

Node.js / Express
app.post('/brew-coffee', (req, res) => {
  res.status(418).json({
    error: "I'm a Teapot",
    message: "I refuse to brew coffee. I am, by nature, a teapot."
  });
});

Related Status Codes

How HTTP Status Codes Work

Every HTTP response carries a three-digit status code that tells the client — browser, API consumer, or search-engine crawler — exactly what happened. The first digit defines the class: 1xx informational (request in progress), 2xx success, 3xx redirection, 4xx client error (bad request, missing auth, not found), and 5xx server failure.

Status codes are standardised in RFC 9110 (HTTP Semantics, 2022). Extensions like WebDAV (RFC 4918) and rate-limit headers (RFC 6585) added codes beyond the core set. When a client receives an unrecognised code, the rule is to treat it as the generic x00 of its class.

Why the Right Code Matters

Semantically correct codes help search engines index accurately (301 passes link equity; 410 removes pages faster than 404), allow API clients to implement correct retry logic (429 + Retry-After, 503 + Retry-After), and let monitoring systems distinguish bugs (500) from load issues (503) from auth failures (401/403).

Looking up a different status code? The full reference covers all HTTP codes with causes, fix guides, and copyable code examples for Node.js and Python.

Browse the full HTTP Status Code reference →

Frequently Asked Questions

What does HTTP 418 I'm a Teapot mean?
One of the most beloved HTTP status codes, 418 "I'm a Teapot" was defined in RFC 2324 as an April Fools' Day joke in 1998. The premise: a teapot server should refuse to brew coffee with this code. Despite being a joke, it was retained in IANA's registry and has become a tradition in web development.
Is HTTP 418 the visitor's fault?
HTTP 418 I'm a Teapot is generally a client-side error, meaning the request itself has an issue. However, many causes — such as a broken link on the site or a misconfigured redirect — are the website owner's responsibility, not the visitor's.
How do I fix HTTP 418 I'm a Teapot?
As a visitor: check the URL for typos, go to the homepage, or search for the content. As a developer: use 418 for playful rejection messages in your API.