Rate Limiting
¶ How rate limiting works
To ensure optimal performance for all users, the Ads API implements rate limiting on a per-user, per-ad-account, and per-integrator basis. This means your request limits may be tied to the user you’re calling on behalf of, to the specific ad account you’re accessing, or to your integrator application.
¶ Understanding your limits
Rate limits vary by endpoint and are designed to support typical usage patterns while preventing abuse.
¶ When you hit a limit
If you exceed your rate limit, you’ll receive a 429 Too Many Requests response. The response will include information about when you can make requests again.
¶ Current limits
Rate limits are subject to change. Three kinds of limits apply: per-user limits, per-ad-account limits, and per-integrator limits (limits that apply across all users for your integration). Most endpoints are limited per ad account. Get Ad Accounts is the exception: because it is the endpoint you call to discover which ad accounts a user can access, it is limited per user. The current limits are:
| Endpoint | Per user | Per ad account | Per integrator |
|---|---|---|---|
| Get Ad Accounts | 30 / min | — | 200 / min |
| Get Stores | — | 30 / min | — |
| Get Campaigns | — | 30 / min | — |
| Get Ad Groups | — | 30 / min | — |
| Get Ads | — | 30 / min | — |
| Create Campaigns | — | 5 / min | — |
| Create Ad Groups | — | 5 / min | — |
| Create Ads | — | 5 / min | — |
| Update Campaigns | — | 5 / min | — |
| Update Ad Groups | — | 5 / min | — |
| Update Ads | — | 5 / min | — |
| Generate Report (async) | — | 100 / day | 60 / min, 10 / sec |
| Get Report Status (async) | — | 1 / sec | 180 / min, 30 / sec |
| Sync Report | — | — | 120 / min, 20 / sec |
| Get Products (catalog) | — | 100 / day | — |