| Status code | 404 |
|---|---|
| Status text | Not Found |
| Category | 4xx Client Error |
| Response has body | Usually |
| Specification | RFC 9110 |
What does 404 Not Found mean?
The server cannot find the requested resource. 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 404?
A typo in the path, a missing API version prefix, a resource that was deleted, or an ID that belongs to a different account.
How to fix a 404 Not Found
Check the path character by character, including the version segment such as /v1/ and whether the API expects a trailing slash. Confirm the resource ID exists and is visible to your credentials — some APIs deliberately return 404 instead of 403 for resources you cannot see, to avoid leaking their existence.
Reproduce a 404 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/404 — you will
see the 404 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.
405 Method Not Allowed
The endpoint exists but does not support the HTTP method you used.
406 Not Acceptable
The server cannot produce a response matching the client's Accept header.
404 Not Found FAQ
What is the difference between 404 and 410?
404 says the server has nothing at this URL and makes no promise about the future. 410 Gone says the resource existed and was removed on purpose, so clients and search engines should stop asking for it.
Why does my API return 404 for a URL that exists?
Check the exact path, including a trailing slash, the API version prefix and the HTTP method. Some APIs also return 404 instead of 403 when you lack access, to avoid revealing that the resource exists.
What is a soft 404?
A page that tells the visitor it was not found while the server answers 200 OK. Search engines flag it because the status code and the content disagree. A missing resource should return a real 404.
See also
- 410 Gone — The resource was deliberately removed and will not come back.
References
- RFC 9110, 404 Not Found — The specification that defines this status code.
- MDN: 404 Not Found — MDN's reference page for this status code.