Ads API Rate Limit Increase

We’d like to understand how to increase the rate limits for the Ads API. We’re accessing the ‘accounts’ endpoint, let me know if there’s additional information we can supply you with to expedite this request.

Hello. Curious to know a bit more about your use case. The GET accounts endpoint has a limit of 2,000 requests per 15 minutes, if I recall correctly. Are you making more requests than that in that time period? If so, why? That data doesn’t change that often.

We need to back-state the last 30 days of data at a campaign level. Here’s our back of the envelope math on the amount of requests needed:
1 request to Get Account endpoint

  • 1 request x (number of campaigns created after 2018-01-01)
  • 2 requests to Analytics end point x (number of adIDs created after 2018-01-01)
So approximately, (1 account + 20 campaigns + (100 ads x 2) ) x 30 days = 6690 requests. Also we’d like to mention this is one of our smaller products and in order to scale our spend on Twitter Ads efficiently we will frequently be making larger Ads API requests. Let me know if you need more details we’re happy to provide them!

Thanks for these details.
Let me try to clarify. In general, each resource has it’s own rate limit. When making requests to GET accounts and GET accounts/:account_id/campaigns, for example, each have distinct limits.
Let’s say you have 100 ads you’re trying to fetch data for. (In this case, the entity IDs in the analytics request would be the IDs for each promoted_tweets entity (the ID for each object in the GET accounts/:account_id/promoted_tweets response).) A few things to note:

  • Both the synchronous and asynchronous endpoints accept 20 entity IDs.
  • Synchronous requests can handle a 7 day window and asynchronous requests can handle up to 90 days.
Now, let’s say you want to use the synchronous endpoint, you would group the 100 IDs into batches of 20. Then, accounting for the date range, each batch would need 5 requests. This means it would take 25 requests using the synchronous endpoint. The rate limit is 250 per 15 minutes. If you want to use the asynchronous endpoint, you would, again, group the 100 IDs into batches of 20. Then, because the date range is not an issue, each batch would only need to be requested once. This means it would take 5 requests (job creates) using the asynchronous endpoints. If you need to fetch data for each placement, then you multiple the above by 2. I hope this helps clarify.