501 Not Implemented
The server does not support the functionality required to fulfill the request, typically because the HTTP method is unrecognized.
Defined in RFC 9110 §15.6.2
What 501 means
HTTP 501 Not Implemented tells the client that the server does not support the functionality needed to fulfill the request, most often because it does not recognize the HTTP method or request feature at all. Per RFC 9110, this is distinct from a request that is valid but temporarily unavailable: a 501 means the server, as currently built, is fundamentally unable to handle this kind of request, regardless of retries. It is one of the least common status codes in practice because modern web servers and frameworks support the small set of standard methods, such as GET, POST, PUT, and DELETE, that almost all traffic uses.
In practice 501 shows up when a client sends an HTTP method the server has never implemented, such as PATCH on an old API that only added it years after launch, or a custom or WebDAV method like PROPFIND hitting a server with no WebDAV module. It can also appear when a reverse proxy or CDN edge worker receives a method it deliberately blocks, or when an API gateway routes to a backend that has not yet shipped support for a newly documented endpoint. Unlike 405 Method Not Allowed, which implies the resource exists but rejects this specific method, 501 says the server itself lacks the capability.
Because 501 is rare, seeing it unexpectedly is usually a strong signal of a client bug, such as a typo in the HTTP verb or a library defaulting to an unsupported method, or a server that is older or more minimal than the client assumes, such as a static file server receiving an API-style request. Load balancers and CDNs sometimes generate a synthetic 501 themselves when they cannot map a request to any known handler, in which case the fix lives in routing rules rather than application code.
Common causes
- The client sends an HTTP method, such as PATCH, TRACE, or CONNECT, that the server or framework has never implemented.
- A WebDAV or custom verb like PROPFIND or MKCOL reaches a server with no WebDAV module or extension loaded.
- An API gateway or reverse proxy routes to a backend service that has not yet shipped support for a documented but unbuilt endpoint.
- A minimal or embedded HTTP server, such as a lightweight IoT or dev server, only implements GET and POST and rejects everything else.
How to fix a 501
If you are the client (browser user or API caller)
- Confirm the HTTP method matches what the API documentation actually supports before assuming the endpoint is broken.
- Check the client library or SDK version, since older clients sometimes default to a legacy verb the server no longer expects.
- If integrating with a third-party API, check its changelog for method support before building around a newly announced feature.
If you run the server
- Implement the missing method explicitly, or return a more specific status such as 404 or 405 if the method will never be supported.
- Update routing tables in the reverse proxy or API gateway so new methods reach a backend that actually handles them.
- Document supported methods clearly in the API reference and reject unsupported ones with a helpful error body rather than a bare 501.
Example
PROPFIND /calendar/events/ HTTP/1.1
Host: files.example.com
HTTP/1.1 501 Not Implemented
Content-Type: text/plain
Allow: GET, POST, PUT, DELETE
This server does not support the PROPFIND method.Try it live
Our free status responder returns a real HTTP 501 you can point tests, monitors or a browser at.
GET https://mcp.httpstatus.com/status/501