go2llm API documentation

529 overloaded_error on Anthropic: what it means and why go2llm rarely shows it

A 529 with overloaded_error means Anthropic's own API is temporarily overloaded — that's the vendor's own wording, not a problem with your key, your balance, or a specific request. go2llm doesn't have this status at all: the gateway sits in front of several routes to the model and can switch to a working one before the first byte of a response comes back, so a go2llm client usually never sees anything like a 529 — only a 502 or 503, and only once no working route is left.

Written 2026-09-22.

What the error looks like on Anthropic

The direct API at api.anthropic.com returns status 529 with this body:

{
  "type": "error",
  "error": {
    "type": "overloaded_error",
    "message": "Overloaded"
  },
  "request_id": "req_011CSHoEeqs5C35K2UUqR7Fy"
}

Anthropic's own docs put it plainly: "529 errors can occur when the API experiences high traffic across all users" — the overload is shared across every API user, not a limit tied to your account. Source: platform.claude.com/docs/en/api/errors, checked 2026-09-22.

Claude Code, hitting a 529 from the direct API, typically prints a short error in the terminal and ends the current request — the same as it does for any other 5xx from the vendor.

What actually causes it

Anthropic's infrastructure is overloaded across every customer

The only cause Anthropic names officially is a traffic spike across the whole API, not your own request volume. Anthropic is explicit that a sudden jump in your own traffic is more likely to trigger a 429 from acceleration limits than a 529 — these are two different protection mechanisms, and they don't share a cause.

go2llm's own error table has no 529 code

go2llm's list of error codes skips 529 entirely. When a request to a provider fails, the gateway returns 502 upstream_unavailable; when the product is paused or nothing is left to route to, it returns 503 product_paused or 503 no_eligible_route. The codes and the wording differ, but underneath they cover the same situation Anthropic's 529 describes: no answer from the model right now.

Why one overloaded route often goes unnoticed on go2llm

go2llm can switch to a compatible fallback route for the same model on eligible error classes, as long as the response hasn't started — before the first byte, or before the first valid SSE event. Inside that window the switch happens silently and the client gets a 200 instead of an error. Once the response has started, there's no more switching: a stream that begins and then breaks is a separate situation, not the same thing as a 529 from the vendor. Anthropic's direct API has no such fallback, by construction — it's one piece of infrastructure, and a 529 there reaches the client directly.

Fixing it

If you talk to api.anthropic.com directly. Anthropic's own advice is to retry with exponential backoff. The official SDKs already do this: two attempts by default, exponential backoff, honoring the retry-after header when it's present. A manual retry should follow the same shape:

import random, time
import httpx

def call_anthropic_with_retry(payload, api_key, max_attempts=3, base=1.0, cap=16.0):
    with httpx.Client(timeout=60.0) as client:
        for attempt in range(max_attempts):
            r = client.post(
                "https://api.anthropic.com/v1/messages",
                headers={
                    "x-api-key": api_key,
                    "anthropic-version": "2023-06-01",
                    "content-type": "application/json",
                },
                json=payload,
            )
            if r.status_code != 529:
                return r
            if attempt == max_attempts - 1:
                return r
            delay = min(cap, base * (2 ** attempt))
            time.sleep(delay * (0.5 + random.random() / 2))

If you'd rather not think about 529 at all. Point the same client at go2llm — the same two variables as always:

export ANTHROPIC_BASE_URL=https://go2llm.tech
export ANTHROPIC_AUTH_TOKEN=YOUR_API_KEY
export ANTHROPIC_MODEL=claude-sonnet-5
claude

That doesn't make Anthropic's own overload disappear — if every route eligible for your request is overloaded, go2llm still returns a 502 or 503 carrying the same meaning as the vendor's 529. The difference is that up to that point, the gateway gets a shot at switching quietly, which a direct connection to one vendor doesn't have by design.

Telling 529 apart from similar errors

529 overloaded_error is not the same thing as 429 rate_limit_error. A 429 comes from limits on your own organization or key — quota, RPM, a spend cap. A 529 comes from load on the API as a whole and has nothing to do with your account. Both are safe to retry outright, but 429 carries an extra rule: don't ramp up request volume sharply, because Anthropic separately warns that a sudden spike from one account can hit acceleration limits and produce a 429 even while the formal quota is untouched.

go2llm's closest equivalent code is 503 no_eligible_route — no permitted route was available for the request right now. 429 rate_limit and 429 quota on go2llm are a separate story: the 20 RPM per-key ceiling and the dollar balance, not infrastructure load.

Related errors

FAQ

Can go2llm return a 529? No. go2llm's own error table doesn't include it — the gateway is limited to the codes it generates itself: 400–405, 409, 413, 429, 502, 503. The same underlying situation, a model that's unavailable right now, shows up on go2llm as 502 upstream_unavailable or 503 no_eligible_route.

Does the missing 529 mean overloads never happen? No — it means some single-route overloads get absorbed by automatic switching before the first byte of a response, and the rest surface under other codes (502, 503) carrying the same "try again shortly" logic. None of this guarantees full availability: that still depends on the upstream providers.

Should you retry a 529 forever? No. Anthropic's official SDKs cap automatic retries at two attempts by default. If the error is still there after a few backoff attempts, that's sustained overload rather than a short spike — either wait longer or move to a route with automatic fallback.


Get a key and make your first request in 3 minutes → go2llm.tech. Per-model prices are on the pricing page, setup steps are in the docs.