よく設計されたREST APIは、ステータスコードでリクエストの結果を明確に伝えます。取得成功には200 OK、リソース作成には201 Created(新しいURLはLocationヘッダー)、返すべき本文がない成功(例: 削除)には204 No Contentを使います。
クライアントエラーは4xxで区別します。不正な文法には400 Bad Request、認証が必要なら401 Unauthorized、権限がないなら403 Forbidden、リソースがないなら404 Not Found、状態の競合には409 Conflict、検証失敗には422 Unprocessable Content、リクエスト過多には429 Too Many Requestsが標準的です。
サーバーエラーは5xxで知らせます。予期しない例外には500 Internal Server Error、過負荷・メンテナンスには503 Service Unavailableを使い、可能ならRetry-Afterヘッダーも一緒に送ります。何より、同じ状況には常に同じコードを一貫して返すことがAPIの使いやすさを左右します。