The Twitter Ads API has enabled account-level rate limiting for a selection of endpoints which were previously constrained by having user-level rate limiting. These changes apply only to GET (read actions) and are intended to enable our partners to scale the number of accounts they manage with their systems.
User-level refers to the Twitter handle used to authenticate with the Ads API (such as @twitter_ads_api_dev_01) which may have access to multiple ad accounts. Previously, that single user token had to split up the rate limit quota amongst the accounts the user token had access to.
For supported endpoints, now account-level rate limited endpoints will rate limit at the ad account level, and the only rate limit at the user token level will be a large global quota to protect the integrity of the Twitter service.
Now, account-level rate limited endpoints will return new HTTP response headers to indicate the account-level rate limit, limit remaining and reset time values:
For endpoints limited at the account level, the previously available rate limit headers will continue to be returned and will indicate the global quota limit.
Developers should implement support for detecting account-level rate limits, and when found leverage it instead of the global quota. Please see the rate limiting best practices (below) for more guidance on maximizing efficiency of syncing data from the Twitter Ads API.
We have enabled account-level rate limits on following resources of the Ads API:
|Resource||Number of GET requests*|
|Scheduled Promoted Tweets||2,000|
|Web Event Tags||2,000|
* Per 15 minutes per ads account
To ensure the Ads API is scaling to meet the needs of your advertisers we have 5x increased the rate limit (to 10,000 requests) on campaigns, line items, targeting criteria, and promoted Tweets.
Note that individual show requests (to fetch a single entity) shares the same rate limit pool as index operations. It is recommended to follow best practices as listed on our rate limiting guide to maximize efficiency of syncing data from our platform.
Additional endpoints may be modified to use account-level rate limiting or higher rate limits in the future. Partners should avoid hard coding rate limit values in their codebase and instead read the response headers dynamically. Please enable logic in your code to check for the existence of the account-level rate limit headers specified above and, when found, assume the account-level rate limit takes precedence.
We are excited to learn how account synchronization and elevated rate limits contributes to an improved advertiser experience. Please continue to send us your feedback and any success stories from these changes.
Twitter Ads API team