First, what are status codes?
For each HTTP request, there is an HTTP response generated.
There are some standard ‘status codes’ indicating if the server understood the request.
Common ones are 200 (Ok), 404 (Page not found), 500 (Internal server error) and so on.
While developing API’s sometimes they are not designed to be used by anyone other that the product’s own front end.
They can therefore become a bit sloppy in generating HTTP responses, since the front end code is going through the response body anyway.
This ‘might’ work for a handful of people, it’s generally not a great practice, and certainly makes things harder for API automation.
On that note, for automation folks even if the status codes are not used correctly, still do verify them.
Links to resources on understanding HTTP messages and responses.