Developers

Rate limits

How many requests a member can send, the headers that count them and what to do at the limit.

Overview

Each workspace member can make 2,500 requests an hour, counted across all of that member's keys, and no more than 10 in one second.

Rate limit headers

A 200 answer carries three headers, and so does a 403 ip-not-allowed. No other error carries them.

HeaderMeaning
X-RateLimit-Requests-LimitRequests allowed per hour
X-RateLimit-Requests-RemainingRequests left in the current hour
X-RateLimit-Requests-ResetWhen the hour ends, in UTC epoch milliseconds
curl -s -o /dev/null -D - https://attia.app/api/v1/jobs \  -H "Authorization: Bearer $ATTIA_API_KEY" | grep -i x-ratelimit
x-ratelimit-requests-limit: 2500x-ratelimit-requests-remaining: 2487x-ratelimit-requests-reset: 1791637200000

Over the limit

Over the limit, the API answers 429 with the code rate-limited and a Retry-After header in seconds. Wait that long before the next request.

HTTP/2 429content-type: application/problem+jsonretry-after: 37

Stay under the limit

Page with the largest limit you can use, up to 100, and poll with updated_since instead of reading every item again. Pagination shows both.