The server is temporarily unable to handle the request — overloaded, or down for maintenance. Often accompanied by Retry-After.
Defined in RFC 9110 §15.6.4 — 503 Service Unavailable · MDN reference
Planned maintenance, a deploy in progress, a dependency that is down, or a load shedder deliberately turning traffic away to protect what is left.
Unlike a 500, a 503 is explicitly retryable. Test that your client treats them differently instead of collapsing both into "error".
Retry with backoff, and honour Retry-After when the server sends one — a 503 with a Retry-After is a server telling you precisely when to come back, and ignoring it is how a recovering service is pushed back over. Fail open or degrade gracefully where the call is not essential.
2 endpoints in this playground answer with 503. Every one is free, needs no signup, and can be called from the browser or with curl.
GET https://funapi.dev/api/protocol/v1/maintenance — Always, with a Retry-After header. Good retry/backoff practice. (Protocol Lab API) Open & run this endpointGET https://funapi.dev/api/faults/v1/target — Configured outage (Fault Injection API) Open & run this endpointAll HTTP status codes · All 39 mock REST APIs · Getting started guide
Last updated