Updated API Rate Limits
Overview
Following an internal review of the performance of the API, we are updating the API rate limits to separate limits per endpoint.
Previously, a single API rate limit was defined as "sustained calls of over 100 requests per minute on any endpoint" and was controlled via direct disabling of the API key responsible. Following our recent announcement regarding API Rate Limit Responses, we will no longer disable API keys in this way.
Who will be affected by this change?
This change will affect any users directly using the API. We've taken the precaution of monitoring usage across all customers over the last few months to understand if any will be affected by these changes. The handful of customers that are exceeding some of these limits have been approached directly so that they can resolve any issues before we roll out the changed limits.
Details
We are moving from a single limit across all endpoints to separate limits by endpoint to better reflect the load placed on the system by each call. These limits have been set based on extensive performance tests and are designed to minimise the impact on API users. These changes will further improve the robustness of the system for all users. The limits are outlined in the table below and are with respect to a time period of 1 minute (60000ms):
Methods | Endpoint | Calls Limit |
POST | api/aqs/query | 120 |
POST | api/aqs/join | 120 |
POST | api/aqs/statistics | 120 |
POST | api/bulk/generic | 20 |
PUT POST DELETE | api/design | 50 |
PUT POST DELETE | api/designInterface | 50 |
* | api/file (See Note 1 below) | 100 |
GET | api/item | 300 |
GET |
| 300 |
PUT POST DELETE | api/item | 150 |
GET | api/item/*/graph | 100 |
GET | api/item/*/parents | 300 |
POST | api/item-log/item/*/reconstruct | 100 |
GET | api/item-log/item/* | 200 |
GET | api/item-log/design/* | 200 |
GET | api/layer/*/*/*/*/network | 2000 |
GET | api/layer/*/*/*/*/cluster | 5000 |
GET | api/layer/*/*/*/*/basic | 2000 |
* | api/route/* | 50 |
GET | api/oauth-reply | 100 |
POST | api/oauth-token-login | 100 |
POST | api/sync | 120 |
PUT POST DELETE | api/workflow | 50 |
PUT POST DELETE | api/workflow/*/action | 50 |
PUT POST DELETE | api/workflow-action-group | 50 |
PUT POST DELETE | api/workflow-action-group/*/action | 50 |
POST | api/(workflow|workflow-action-group)/*/action/parameters | 10 |
* | api/(budget|change-component|defect|inspection|job|project|team|work-unit) | 100 |
POST | api/extended/bulk | 20 |
All other endpoints not specified above | 1000 |
Note 1 - This exclude the api/file/bulk-download/{id}/file
endpoint which starts a background task.
Note that for many endpoints, the call limit per minute will be increased - in some cases allowing up to 10 to 50 times more traffic. For those endpoints where the limit has been reduced to below the previous value of 100, the functions delivered by the endpoints are computationally heavier but with the expectation that these endpoints would also be used less frequently (e.g. workflows and bulk generic).
Expected Release Dates
Staging: 25th February 2022
Live: 31st March 2022