The status code families
The first digit of a status code is its family (1xx informational responses are rare in APIs), and clients act on it even when they don't know the exact code. 2xx: it worked. 3xx: look elsewhere (a redirect, or 304 Not Modified, 'your cached copy is still good'). 4xx: the client made a mistake; sending the same request again usually won't help (429 is the exception: wait, then retry). 5xx: the server failed; the same request may work later.
That split decides retries. A client should not retry a 400 unchanged, but can retry a 503 after a pause. Returning 200 with {"error": …} in the body breaks this: monitoring counts it as a success, and generic clients won't retry or report it.
Load balancers and API gateways mark a backend unhealthy based on its 5xx rate. An API that returns 200 for every error hides its own outages from them.
Which responses may a client reasonably retry later without changing the request? (Choose two.)
Select 2, then check.