| Status code | 405 |
|---|---|
| Status text | Method Not Allowed |
| Category | 4xx Client Error |
| Response has body | Usually |
| Specification | RFC 9110 |
What does 405 Method Not Allowed mean?
The endpoint exists but does not support the HTTP method you used. 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 405?
Sending POST to a read-only endpoint, or PUT where the API expects PATCH.
How to fix a 405 Method Not Allowed
Read the Allow response header — it lists the methods the endpoint accepts. Send an OPTIONS request to discover them.
Reproduce a 405 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/405 — you will
see the 405 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
400 Bad Request
The server could not understand the request because it is malformed.
401 Unauthorized
The request lacks valid authentication credentials. Despite the name, this means unauthenticated.
402 Payment Required
The request cannot be processed until payment is made.
403 Forbidden
The server understood the request and knows who you are, but refuses to authorise it.
404 Not Found
The server cannot find the requested resource.
406 Not Acceptable
The server cannot produce a response matching the client's Accept header.
405 Method Not Allowed FAQ
What is the difference between 405 and 404?
404 means nothing exists at the URL. 405 means the resource exists but does not accept the method you used, for example a POST to an endpoint that is read-only.
How do I find out which methods an endpoint allows?
Read the Allow header on the 405 response, which lists them. Sending an OPTIONS request to the same URL returns the same list on servers that support it.
Why do I get 405 on a POST that should work?
Often the URL is slightly wrong. A redirect may have turned the POST into a GET, a trailing slash may route to a different handler, or the request reached a static file server that only serves GET and HEAD.
See also
- HTTP methods — What each method is for, and which ones a resource has to support.
References
- RFC 9110, 405 Method Not Allowed — The specification that defines this status code.
- MDN: 405 Method Not Allowed — MDN's reference page for this status code.