HTTP 418 I'm a Teapot
HTTP 418 I'm a Teapot originates from RFC 2324, the Hyper Text Coffee Pot Control Protocol — an April Fools' joke from 1998. It is not part of the core HTTP specification, but the code number 418 is reserved by IANA so it will not be reused. Some sites and APIs return it deliberately as a humorous or bot-deterrent refusal; it has no defined production semantics.
What this means
418 I'm a Teapot comes from RFC 2324, the Hyper Text Coffee Pot Control Protocol (HTCPCP), published as an April Fools' joke. In the joke protocol, a teapot asked to brew coffee responds 418 because it is, in fact, a teapot. RFC 7168 later extended the joke to teapots handling tea.
The code is explicitly not part of standard HTTP. IETF discussions reserved 418 in the IANA registry so it cannot be assigned a real meaning, preserving the joke and preventing collisions.
How it shows up in practice
Despite being a joke, some real services return 418 on purpose: as an Easter egg, to mark an endpoint that is intentionally not implemented, or as a lightweight signal that a request was refused (sometimes to discourage bots). Because it has no agreed semantics, clients should not build retry logic around it.
For crawl diagnostics, treat a 418 as an intentional unavailability. If you control the server and did not configure it, investigate the framework or middleware that emitted it, because it is never produced by accident from standard stacks.
- Defined by the joke RFC 2324 (HTCPCP), extended by RFC 7168
- Reserved by IANA so the number is never reassigned
- No standard semantics — do not build retry logic on it
How it appears in analytics and logs
A 418 means a server chose to return the teapot code, usually as a joke, an Easter egg, or an intentional rejection of automated requests. It carries no standard semantics, so a crawler should treat the resource as unavailable rather than retry on a schedule.
Diagnostic use case
Recognise a 418 as a deliberate, non-standard, often joking response — not a real protocol error your client should treat as meaningful.
What WebmasterID can help detect
WebmasterID records the status returned to crawler fetches, so a 418 appears as a non-standard refusal in bot-intelligence, helping you spot endpoints that intentionally reject automated clients.
Common mistakes
- Treating 418 as a standard error code with defined retry semantics.
- Returning 418 in production expecting clients to understand it.
- Assuming a 418 indicates a server fault rather than a deliberate response.
Privacy and accuracy notes
A 418 is a protocol curiosity with no visitor identity attached. WebmasterID records crawler fetch statuses without linking them to any person.
Related pages
- HTTP 403 Forbidden and blocked crawlers
403 Forbidden means the server understood the request but refuses to authorize it, and authenticating will not help. For crawlers, a 403 often signals over-blocking — a WAF, bot-management rule, or IP filter rejecting legitimate crawlers and quietly removing pages from being indexed.
- HTTP 501 Not Implemented
501 Not Implemented means the server does not support the functionality required to fulfil the request — typically an HTTP method it does not recognise or handle at all. It is a server-side error distinct from 405, where the resource exists but rejects a specific method. For crawlers it is an uncommon, server-level failure.
- HTTP status code cheat sheet for crawlers
This cheat sheet maps the five HTTP status classes to what they mean for crawlers and indexing. It is a quick reference for reading server logs and Search Console crawl data: which codes index normally, which redirect, which signal client errors, and which are server failures crawlers will retry. The aim is to interpret status codes through a crawl-and-index lens rather than a generic one.
- Bot intelligence
See which endpoints intentionally refuse automated clients, recorded server-side.
Sources and verification notes
Last reviewed 2026-06-24. Facts are checked against primary/official sources where available; uncertain specifics are marked “Data not yet verified” rather than guessed.