AnswerLine Start free

Docs /

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 could not take the request right now, 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

No account has a fixed concurrency cap: send the volume you need. An async task that cannot start now waits in your queue. A synchronous call that cannot start now fails at once with 429 CONCURRENT_LIMIT_EXCEEDED and details.limit, so use async for large volumes. The one fixed limit is /v1/monitor/google/goto, at 4 calls per account at once; more are refused with the same error.

Another account's large batch does not hold up yours.

Queue capacity

Your queue holds 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 (no fixed 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:

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);