CONCURRENT_LIMIT[01]

CONCURRENT_LIMIT

Too many requests running at once for your plan. Wait a second and retry.

Code · HTTP status · Retryable?
CONCURRENT_LIMIT[429][Yes]

What this means

[02]

CONCURRENT_LIMIT caps how many requests your account can have running at once: Free 2, Starter 5, Growth 20, Scale 50, Enterprise 100. The cap is per account, not per key. Unlike RATE_LIMITED, it clears quickly: slots free up as your running requests finish.

When you'll see it

[03]

HTTP 429. Body always includes code: "CONCURRENT_LIMIT". Branch on code, never on the human-readable message — wording can change without notice; the code is the stable contract.

Example response

[04]
example response[json]
{
  "status": "error",
  "code": "CONCURRENT_LIMIT",
  "message": "Too many concurrent requests for your tier (5/5 in flight). Retry in a moment.",
  "in_flight": 5,
  "limit": 5,
  "retry_after": 1
}

How to handle

[05]

Back off and retry. The body always has `retry_after: 1` (seconds), plus `in_flight` and `limit`. Add some jitter so parallel workers don't all retry together. If you hit this often, cap your own concurrency at your plan's limit with a queue, or upgrade.

Suggested handling in a Node client:

if (data.code === 'CONCURRENT_LIMIT') {
  // All slots busy. retry_after is always 1 second; add jitter.
  await sleep(data.retry_after * 1000 + Math.random() * 500);
  return retry();
}
Code · Status · What it means
RATE_LIMITED[HTTP 429]

Free plan: this month's credits are used up. They reset at the start of the next UTC month.

TIMEOUT[HTTP 504]

The target site didn't respond within 15 seconds.

See the full error index for the complete catalog with the handling switch statement covering every code at once.