Skip to main content
HTTP/4xx (Client Error)

418 I'm a teapot

An April Fools' joke from RFC 2324 (Hyper Text Coffee Pot Control Protocol); the server refuses to brew coffee because it is a teapot.

❓ Why does this happen?

Some APIs and bot-protection layers return 418 deliberately to reject automated or unwanted requests.

✅ How to fix it

If you receive 418 from a real API, your request was likely flagged as a bot. Add a proper User-Agent and respect rate limits.

Return or handle 418 in your stack

// app/api/resource/route.ts
export function GET() {
  return Response.json(
    { error: "I'm a teapot", status: 418 },
    {
      status: 418
    }
  );
}

Live 418 mock endpoint

Point your app, tests, or retry logic at this free public URL to reproduce a real 418 response (CORS enabled, optional ?delay=ms up to 5000).

https://castov.com/api/mock/418

Frequently Asked Questions

What does HTTP Status 418 mean?
An April Fools' joke from RFC 2324 (Hyper Text Coffee Pot Control Protocol); the server refuses to brew coffee because it is a teapot.
Why am I getting a 418 status code?
Some APIs and bot-protection layers return 418 deliberately to reject automated or unwanted requests.
How do I fix a 418 I'm a teapot error?
If you receive 418 from a real API, your request was likely flagged as a bot. Add a proper User-Agent and respect rate limits.
How can I test how my app handles a 418 response?
Send a request to https://castov.com/api/mock/418 — it returns a real 418 I'm a teapot response with CORS enabled. Add ?delay=2000 to simulate a slow server.

Other 4xx status codes

Browse the full HTTP status codes directory or troubleshoot terminal errors in the Error Fix Encyclopedia.