Should a RESTful API return 400 or 404 when passed an invalid id

Justin picture Justin · Aug 19, 2014 · Viewed 47.1k times · Source

When building a RESTful API and a user provides an id of resource that does not exist, should you return 404 Not Found or 400 Bad Request.

For example:

https://api.domain.com/v1/resource/foobar

Where foobar does not exist.

Answer

Manoj picture Manoj · Aug 19, 2014

I would return 404 in case of resource does not exist(means the url path is wrong) and i will return 400 only if the rest call is made with some invalid data (@PathParam) for example
https://api.domain.com/v1/profile/test@email : here i am trying to get profile of email id, but the email itself is wrong, so I will return 400.
https://api.domain.com/v1/profile1111/[email protected] will return 404 because the url path is invalid.