AnswerLine Start free

Rate limits

Request rate

There is no per-account request rate limit: send as many requests a second as you need. X-RateLimit-Limit and X-RateLimit-Remaining are still sent for clients that read them. Both are deprecated and always 100000, which means no limit. When one address sends too many unknown API keys, it gets 429 RATE_LIMIT_EXCEEDED with Retry-After in whole seconds.

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

There is no concurrency cap on any account: 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. /v1/monitor/google/goto runs at most 4 calls per account at once; more are refused with 429 CONCURRENT_LIMIT_EXCEEDED.

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

Queue capacity

No fixed count limits your queue. It holds what fits in your share of the queue's space: about 100,000 tasks of a typical prompt at a time, more of shorter ones. A task or batch that does not fit is rejected whole with 429 QUEUE_LIMIT_EXCEEDED. Its details carry queuedCount (tasks waiting now), batchSize, maxQueueSize (what your queue holds of tasks this size) and remainingCapacity (how many more fit). 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 forDeprecated. Always 100000: there is no per-account request rate limit.
X-RateLimit-RemainingEvery response your limits were read forDeprecated. Always 100000, the same as X-RateLimit-Limit: nothing counts down.
X-Request-IdEvery responseThe request's id (see request ids).
Retry-After429 SERVICE_OVERLOADED; 429 RATE_LIMIT_EXCEEDED after too many unknown keysWhole seconds to wait before retrying.
X-Concurrent-LimitMonitor responsesConcurrency slots available to the account (there is no concurrency cap).
X-Concurrent-CurrentMonitor responsesSlots in use.
X-Concurrent-RemainingMonitor responsesSlots free.
X-Credits-RemainingMonitor responsesUS dollars you can still spend: the balance less what open tasks hold back.
X-Credits-ChargedMonitor responsesDollars this request was charged (0 when a free request covered it).
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 watch running calls and your balance, 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.creditsRemaining, meta.creditsCharged);

Python

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