418 I'm a teapot

The server refuses to brew coffee because it is, permanently, a teapot. An April Fools' joke that became a reserved status code.

Last updated . How this page is checked.

Status code418
Status textI'm a teapot
Category4xx Client Error
Response has bodyUsually
SpecificationRFC 2324

What does 418 I'm a teapot mean?

The server refuses to brew coffee because it is, permanently, a teapot. An April Fools' joke that became a reserved status code. It belongs to the 4xx Client Error class, which means the request contains bad syntax or cannot be fulfilled. Something about the request needs to change.

When do APIs return 418?

Almost never from a real API. It was defined in 1998 by RFC 2324, the Hyper Text Coffee Pot Control Protocol, and survives as an in-joke. A few services return it on purpose to turn away requests they would rather not explain, such as automated traffic.

How to fix a 418 I'm a teapot

There is nothing standard to fix. If a real service answers 418, treat it as a refusal: check whether your client is being blocked as a bot, and read the response body or the service's documentation for the reason.

Reproduce a 418 response

The fastest way to understand a status code is to trigger one and read the full response. Open the API tester and send a request to https://httpbin.org/status/418 — you will see the 418 status along with every response header the server sent. Comparing those headers against a working request is often what reveals the cause.

When you are debugging a real endpoint, check the response headers as carefully as the body, and confirm you are using the right HTTP method for the operation.

Related 4xx status codes

418 I'm a teapot FAQ

Is 418 I'm a teapot a real status code?

It comes from RFC 2324, an April Fools' joke from 1998 describing a coffee pot control protocol. It is not part of HTTP, but the code is reserved so that nothing else can be assigned to it.

Why do some servers actually return 418?

As an in-joke, and sometimes as a deliberate way to reject requests the operator does not want to explain, such as automated traffic. It carries no standard meaning, so treat it as a refusal.

Should my API use 418?

No. Clients and intermediaries have no defined behaviour for it. If you are refusing a request, use the code that says why: 403 for not allowed, 429 for too many requests, 400 for a bad request.

References