HTTP Errors

What Is the 503 Status Code? (503 Service Unavailable)

What Is a 503 Error (Service Unavailable)? — conceptual illustration
On this page

HTTP 503 Service Unavailable means the server can't handle your request right now — usually because it's overloaded, under maintenance, or deliberately turning traffic away at its outer edge. Think of it as a shop with a "back in 5 minutes" sign on the door. For scrapers, a 503 most often means a CDN (the network of edge servers that sits in front of a website) or a bot-detection layer chose to drop your request instead of passing it to the real server — or that an upstream service is being rate-limited. A proper 503 includes a `Retry-After` header telling you when to try again.

Quick facts

Status code503
Category5xx Server Error
Common causes (general)Server overload, scheduled maintenance, upstream timeouts
Common causes (scraping)Cloudflare "Just a moment" challenge, WAF interstitials, edge throttling
Right responseHonor Retry-After, exponential backoff, escalate if persistent

Why 503s happen

A 503 comes from one of two places. The first is the real server genuinely struggling: it's overloaded, restarting, mid-deployment, or its database timed out. These 503s are temporary and fix themselves within seconds or minutes. The second — the one scrapers see all the time — is bot detection. Cloudflare historically returned 503 alongside its "Checking your browser…" interstitial (a holding page shown while it inspects you); modern Cloudflare uses 403 for outright blocks and saves 503 for protecting capacity, but the old pattern still shows up. Akamai, AWS WAF, and Imperva also return 503 in various managed-block setups. The quickest way to tell the two apart: read the response body. A vendor-branded page means bot detection; a plain "Service Unavailable" or your own server's error template means real overload.

How scrapers should respond to 503

Treat 503 as worth retrying — but not blindly. If a `Retry-After` header is present, wait exactly that long. Otherwise use exponential backoff with jitter, meaning you double the wait each time and add a small random offset so many retries don't all fire at once: 2s, 4s, 8s, 16s, capping at a few minutes. If the body shows a bot-detection interstitial, retrying as the same "person" won't help — rotate your proxy (use a different exit IP) and refresh your fingerprint (the bundle of browser traits sites use to recognize you) before trying again. If 503s come in bursts and then recover, that's probably genuine origin overload and your retries will eventually get through. If your scraper gets 503s constantly but a normal browser doesn't, you're being blocked, not throttled.

Avoiding 503s in the first place

Spread your requests out over time. Set concurrency limits (how many requests run at once) per-domain rather than globally — pointing 50 parallel workers at a single site reliably triggers 503s even on sturdy servers. Reuse TCP/TLS connections: a single HTTP/2 connection can carry many requests, and opening a fresh connection for every request is both slower and more obviously bot-like (TLS is the encryption layer behind https). Cache aggressively — if you scraped a page in the last 24 hours, don't fetch it again. And keep monitoring: a sudden jump in 503s from a target that was stable usually means it just rolled out new rate limits or a new bot-detection rule, and your strategy needs to adapt.

Related terms

What Is the 429 Status Code (429 Error)?
HTTP 429 Too Many Requests is the status code a server returns when a client has sent more requests in a given window than the server's rate…
What Is the 403 Status Code (403 Forbidden Error)?
HTTP 403 Forbidden means the server understood your request but refuses to answer it. The difference from 401 is simple: 401 means "we don't…
What Is Cloudflare Error 1015?
Cloudflare error 1015 "You are being rate limited" means a website is blocking you because you sent too many requests too quickly. The site …
What Is Anti-Bot Detection?
Anti-bot detection is the set of techniques websites use to tell automated traffic apart from real human visitors — and then block, challeng…
What Is a 520 Error?
HTTP 520 is a non-standard Cloudflare status code meaning the origin server returned a response Cloudflare cannot interpret. Cloudflare is a…
What Is the 405 Status Code (405 Method Not Allowed)?
HTTP 405 Method Not Allowed means the page exists, but it won't accept the HTTP method (the verb, like GET or POST) you used to ask for it. …
What Is the 422 Status Code (422 Unprocessable Entity)?
HTTP 422 Unprocessable Entity means the server understood your request perfectly but refused to act on it because the data inside failed a v…
What Is Rate Limiting?
Rate limiting is a control that caps how many requests a single client can make to a server within a fixed time window. A site might allow 6…
What Are Request Retries?
Request retries are the practice of automatically re-sending an HTTP request that failed, instead of giving up on the first error. Networks …

Concept map

How 503 Status Code (503 Service Unavailable Error) connects

The terms most directly tied to this one. Hover a node to see its neighbours, click to preview, drag to rearrange.

0 terms · 0 connections
You are here · HTTP Errors
Building map…

Frequently asked questions

Is a 503 always temporary?

By definition, yes — 503 means "come back later." In practice, the bot-detection kind sticks around until you change something about how your scraper presents itself, so it isn't temporary the way the spec assumes.

What's the difference between 503 and 502?

502 Bad Gateway means a proxy passed along a broken response it got from an upstream server. 503 means the server itself is refusing to serve right now. Both are 5xx errors and both are worth retrying, but a 502 usually points to a more serious upstream problem.

Should I treat 503 as success-eventually or as failure?

Treat it as eventual success on the first 2–3 retries, then as failure after that. Most production scrapers retry 3–5 times with backoff, then mark the URL as failed and move on. Failing fast keeps the queue moving.

Does a 503 count against my scraping API quota?

It depends on the provider. Most credit you back for upstream 503s, charge you for transient ones, and usually charge you when the 503 was caused by bot detection. Read the provider's billing docs — this is one of the bigger sources of surprise charges.

Last updated: 2026-05-31