Developers
Rate limits
How many requests an APROS API key can make per minute, what happens when it goes over, and how to retry.
Each API key can make 600 requests per minute.
How the limit works
- The limit is counted per key. Two keys have two separate limits.
- The minute is a fixed window: it starts with the key's first request and resets 60 seconds later. Within one window, the 601st request and every request after it are refused.
- Every request made with a valid key counts, whatever the endpoint and whatever its outcome, including requests that the MCP server makes with your key.
- The API does not send the remaining budget in response headers. If you run close to the limit, count your own requests.
When you go over
The API answers 429 Too Many Requests with a Retry-After header: the number of seconds until
the window resets.
HTTP/1.1 429 Too Many Requests
Retry-After: 23
Content-Type: application/json
{ "error": "API key rate limit exceeded", "code": "RATE_LIMITED" }Wait that many seconds, then send the request again. Nothing was done for a refused request, so retrying it is safe.
# -i prints the response headers, including Retry-After
curl -i "https://<your-workspace>.apros.app/api/leads" \
-H "Authorization: Bearer $APROS_API_KEY"Stay under the limit
- Read lists with the largest page size the endpoint allows (usually 100) instead of fetching records one by one. See Pagination.
- Spread bulk jobs over time rather than sending everything at once.
- Cache data that changes rarely, such as stages, units or currencies.
- When you retry a create after a timeout, send an
Idempotency-Keyso the retry cannot create a duplicate. See Retrying safely.
Other limits
Endpoints that are called without an API key have their own limits:
| What | Limit | Details |
|---|---|---|
| Inbound webhooks | 60 requests per minute per webhook URL, and 300 per minute per calling IP address | Over the limit: 429 |
| Booking API: creating a booking | 30 requests per minute per IP address, and 10 per minute per booking link | Over the limit: 429 with Retry-After |
| Booking API: rescheduling or cancelling | 30 requests per minute per IP address | Over the limit: 429 with Retry-After |
| MCP server: registering a new OAuth client | 10 registrations per hour per IP address | Over the limit: 429 with Retry-After |
Plan limits, such as how many records your plan allows, are not rate limits. Reaching one answers
403 with the code QUOTA_EXCEEDED. See Errors.