- 60 requests per minute.
- 10,000 requests per UTC day. The count resets at 00:00 UTC.
Headers
Every response that reaches a route carries:
The headers track only the per-minute budget. The daily count isn’t reported until you reach it. A
401, the 403 for an account with no agent access and the daily-limit 429 don’t carry them: the first two never reach a route, and the headers on the third would say requests remain.
Over the per-minute limit
A request past the per-minute budget gets429 with a Retry-After: 60 header and the X-RateLimit-* headers, instead of the route’s normal response. Allocait sends the same response when it can’t read the budget, so a 429 can come without a burst on your side.
Retry-After interval (60 seconds), then retry. To use fewer requests, check whether the endpoint has a bulk form. Several routes accept an array of up to 500 items (positions, rules, Input entries), so one request can replace many.
Over the daily limit
A request past the daily budget gets429 with Retry-After set to the number of seconds until 00:00 UTC.
Per-route caps
Two write routes also cap how many records an account can file, whatever the request budget:
Past a cap, the route returns
429 with error_code: DAILY_LIMIT_EXCEEDED. The cap frees up as the oldest record in the window turns 24 hours old. This 429 carries no Retry-After: a minute doesn’t clear it, so don’t retry on a timer.
MCP batches
The MCP server doesn’t accept JSON-RPC batches. A request body that is a JSON array gets400 with JSON-RPC error -32600, before it counts against either budget. Send one message per request.
Related
- API errors: the
429among the other status codes. - Error codes:
DAILY_LIMIT_EXCEEDEDand the rest. - Webhooks: events sent to you instead of polled.