Last updatedDec 16, 2019

Rate Limits

Limits

To help prevent strain on Trello’s servers, our API imposes rate limits per API key for all issued tokens. There is a limit of 300 requests per 10 seconds for each API key and 100 requests per 10 second interval for each token. Additionally, there is a limit on requests to /1/members/ of 100 requests per 900 seconds. If a request exceeds the limit, Trello will return a 429 error along with a message corresponding to which limit was exceeded.

Rate Limit Errors

When a rate limit has been exceeded, Trello will return a response with a status code of 429 and an error message. The error message should be used to determine whether the key or token limit was exceeded.

For instance, the API token rate limit will return the following JSON response:

1
2
3
4
{
  "error": "API_TOKEN_LIMIT_EXCEEDED",
  "message": "Rate limit exceeded"
}

And the API key rate limit will return the following JSON response:

1
2
3
4
{
  "error": "API_KEY_LIMIT_EXCEEDED",
  "message": "Rate limit exceeded"
}

Special Route Limits

We have special limits around endpoints that include user account information. This allows us to make sure that consumers are using these resources responsibly. The three routes with special limits are: /1/members, /1/membersSearch, and /1/search. The much stricter limits on these routes mean that third-party developers should use these resources sparingly.

A single request to /1/members will count against the members limit, the key limit, and the token limit. However, requests to nested resources under the endpoint will not count against the route-specific limit. For instance, a request to /1/members/me/boards/ will not count as a request against the limit for /1/members/.

If you are trying to load a lot of members, the best way to get the information you need is to use the nested resource route for the object the members belong to. For instance, if you want all members on a board? Use /1/boards/:id/members. If you want all members on a team? Use /1/organizations/:id/members.

Working With Rate Limits

Trello's platform includes webhooks as an alternative to regularly polling Trello. By registering a webhook on a Trello object, Trello will reach out to you to notify you of events as they happen.

Additionally, Trello's API includes robust nested resources. For instance, if you want to get all of the data about cards on a board, instead of iterating through all of the card IDs and making individual GET requests to 1/cards/{cardId}, you can get all of the same information from the cards nested resource within the board (1/boards/{boardId}/cards?filter=visible). You can read more about nested resources here.

Rate Limits In Headers

Rate limit information is also returned in headers of the response from Trello. The headers include the following information for both token and key rate limits: the time interval of the limit (in milliseconds), the limit's max, and the remaining request count for the given interval.

Your application should use the information contained in these headers to stay within the rate limit.

For example, a single request within an interval:

1
curl -I 'https://api.trello.com/1/members/me?key={yourKey}&token={yourToken}'

Returns the following headers:

1
2
3
4
5
6
7
8
9
10
HTTP/2 200
[...]
x-rate-limit-api-token-interval-ms: 10000
x-rate-limit-api-token-max: 100
x-rate-limit-api-token-remaining: 99
x-rate-limit-api-key-interval-ms: 10000
x-rate-limit-api-key-max: 300
x-rate-limit-api-key-remaining: 299
[...]
date: Wed, 17 Jan 2018 20:59:00 GMT