Eine gut entworfene REST API vermittelt das Ergebnis einer Anfrage klar über Statuscodes. Verwende 200 OK für einen erfolgreichen Lesezugriff, 201 Created für das Anlegen einer Ressource (die neue URL im Location-Header) und 204 No Content für einen Erfolg ohne zurückzugebenden Rumpf (etwa beim Löschen).
Clientfehler werden mit 4xx unterschieden. Standard ist 400 Bad Request bei fehlerhafter Syntax, 401 Unauthorized, wenn Authentifizierung erforderlich ist, 403 Forbidden bei fehlender Berechtigung, 404 Not Found für eine nicht vorhandene Ressource, 409 Conflict bei einem Zustandskonflikt, 422 Unprocessable Content bei einem Validierungsfehler und 429 Too Many Requests bei zu vielen Anfragen.
Serverfehler werden mit 5xx signalisiert. Verwende 500 Internal Server Error für eine unerwartete Ausnahme und 503 Service Unavailable bei Überlastung oder Wartung und sende nach Möglichkeit den Retry-After-Header mit. Vor allem entscheidet es über die Benutzbarkeit einer API, für die gleiche Situation stets konsistent denselben Code zurückzugeben.