501 Not Implemented
The server does not support the functionality required to fulfil the request, typically an unrecognised request method.
At a glance
- Status code
- 501 Not Implemented
- Class
- 5xx, server error, the request looked fine and the server failed
- Defined in
- RFC 9110
- Cacheable by default
- yes
- Response body
- Optional.
In detail
501 is about the server lacking a capability entirely, not about this resource declining a method. That distinction is what separates it from 405.
Correct for a method the server does not implement at all, such as PATCH on a stack that never added it. Wrong for a method the server knows but this URL does not allow, which is 405 with an Allow header.
As a client, do not retry. The capability is missing and will stay missing until someone deploys it.
Examples
HTTP/1.1 501 Not Implemented
Content-Length: 0Things that catch people out
- 501 is cacheable by default, which is unusual for a 5xx and easy to forget when the feature is later shipped.
- Proxies return 501 for request methods they refuse to forward, so the origin may support the method perfectly well.
Try it: HTTP Request Builder
Build a request with any method, headers and body, send it, and read the status line the server returns.
HTTP Request Builder
LOCAL · Browser-OnlyBuild and test HTTP requests with custom headers and body
Authentication
Headers
Generate Code
curl -X GET 'https://api.example.com/endpoint' \
-H 'Content-Type: application/json'Showing a sample URL. Enter your endpoint above to update the snippet.
Related HTTP status codes
All http status codes →405 Method Not Allowed
The URL exists but does not support the method you used. The Allow header lists the methods it does support.
500 Internal Server Error
The server hit an unexpected condition and cannot say anything more specific. It is the catch-all for unhandled exceptions.
505 HTTP Version Not Supported
The server refuses the major HTTP version used in the request line.
502 Bad Gateway
A proxy or load balancer got an invalid response from the upstream server it was relaying to. The failure is behind the thing that answered you.
503 Service Unavailable
The server is temporarily unable to handle the request, because it is overloaded or deliberately down for maintenance. The condition is expected to clear.
504 Gateway Timeout
A proxy gave up waiting for the upstream server to answer. The upstream may still be working on the request.
Tools for this
- HTTP Request Builder Free online HTTP request builder - build and test HTTP requests with custom headers and body
- HTTP Headers Checker Free online HTTP headers checker - view HTTP response headers for any URL