In this blog post, I discuss the use of HTTP response status codes and the potential issues with duplicating them in the response body, as well as how RFC7807 provides a solution for conveying application-specific errors. Sometimes, I see APIs where the error response looks like this (HTTP header and body): HTTP/1.1 400 Bad Request Content-Type: application/json { "status": 400, "message": "Foo is blank" } The HTTP response status code is duplicated in the body of the response.