Docs
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-Key so the retry cannot create a duplicate. See Retrying safely.

Other limits

Endpoints that are called without an API key have their own limits:

WhatLimitDetails
Inbound webhooks60 requests per minute per webhook URL, and 300 per minute per calling IP addressOver the limit: 429
Booking API: creating a booking30 requests per minute per IP address, and 10 per minute per booking linkOver the limit: 429 with Retry-After
Booking API: rescheduling or cancelling30 requests per minute per IP addressOver the limit: 429 with Retry-After
MCP server: registering a new OAuth client10 registrations per hour per IP addressOver 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.