AnswerLine Start free

Rate limits

Rate limit

Requests are counted per account in a one-second window; X-RateLimit-Limit is your limit. Short bursts up to one second's worth are admitted. Over the limit you get 429 RATE_LIMIT_EXCEEDED without Retry-After; it clears within a second.

A 429 SERVICE_OVERLOADED is different: the API shed the request under load before reading your limits, so nothing was admitted, nothing was charged, and the response carries neither X-RateLimit-* nor the other limit headers. It does carry Retry-After in whole seconds — wait at least that long before retrying.

Concurrency

Plans do not cap how many requests run at once — send the volume you need and the API paces it against each engine's rate limits. An async task beyond what the engines take waits in your queue; a synchronous call that cannot start fails at once with 429 CONCURRENT_LIMIT_EXCEEDED and details.limit.

Accounts take turns for capacity, so another account's large batch does not hold up yours.

Queue capacity

Async submissions are checked against your queue capacity. A task or batch that would overflow it is rejected whole with 429 QUEUE_LIMIT_EXCEEDED, whose details carry queuedCount, batchSize, maxQueueSize and remainingCapacity. Watch the queue with GET /v1/async/status and drop tasks that have not started with DELETE /v1/async/queue (see managing the queue).

Headers

HeaderSent onMeaning
X-RateLimit-LimitEvery response your limits were read forRequests allowed per one-second window.
X-RateLimit-RemainingEvery response your limits were read forNumber of requests remaining in the current window.
X-Request-IdEvery responseThe request's id (see request ids).
Retry-After429 SERVICE_OVERLOADEDWhole seconds to wait before retrying.
X-Concurrent-LimitMonitor responsesConcurrency slots available to the account (uncapped on every plan).
X-Concurrent-CurrentMonitor responsesSlots in use.
X-Concurrent-RemainingMonitor responsesSlots free.
X-Credits-RemainingMonitor responsesYour credit balance.
X-Credits-ChargedMonitor responsesCredits this request was charged.
X-Latency-MsMonitor responsesServer-side processing time in milliseconds, excluding network transit.

Reading limits in code

The SDKs retry 429s with jittered backoff on their own. To throttle before hitting a limit, read the headers from a response's metadata with the low-level request method:

TypeScript

const { data, meta } = await client.request("POST", "/v1/monitor/chatgpt", { prompt: "iPhone 17 or Galaxy S26?", country: "US" });
console.log(meta.concurrentRemaining, meta.rateLimitRemaining, meta.creditsCharged);

Python

data, meta = client.request("POST", "/v1/monitor/chatgpt", {"prompt": "iPhone 17 or Galaxy S26?", "country": "US"})
print(meta.concurrent_remaining, meta.rate_limit_remaining, meta.credits_charged)