Rate limits
What each advertising platform tolerates, what this gateway allows underneath it, and why a call is sometimes made to wait.
Every advertising API has a quota, and going past it does not fail politely. Meta blocks the ad account. Google Ads returns RESOURCE_EXHAUSTED for every customer of the same developer token at once. Pinterest throttles the whole application for the rest of the day.
So the gateway keeps its own ceilings underneath the platforms' own, and refuses a call before it can do that damage. A refusal here costs you nothing. Reaching the platform's limit costs you the account for an hour.
Three scopesLink to this section
| Scope | Protects | Window |
|---|---|---|
| Ad account | Your own account, which is what the platform blocks. | Rolling hour |
| Organisation | Your neighbours, on the quotas every customer shares. | Rolling hour |
| Application | Everyone, on quotas counted per developer token or per app. | Hour or day |
What each platform allows, and what we allowLink to this section
Requests, not tool calls. One tool call is worth several requests.
| Source | Per ad account, per hour | Per organisation, per hour | Application |
|---|---|---|---|
| Meta Ads | 180 | 600 | not shared |
| Pinterest Ads | 100 | 200 | 800 per day |
| Google Ads | 300 | 900 | 12000 per day |
| TikTok Ads | 600 | 1800 | 20000 per hour |
| Search Console | 600 | 1800 | not shared |
| Google Analytics 4 | 400 | 1200 | not shared |
The platform limit behind each numberLink to this section
Meta AdsLink to this section
300 + 40 x active ads per ad account per hour for management calls, and 600 + 400 x active ads for insights, on the Development tier. Both are rolling one hour windows.
Going past it: Error 80000, 80003, 80004 or 80014, and the ad account is blocked until the window rolls.
Pinterest AdsLink to this section
Trial access allows 1,000 requests per day for the whole application. Standard access raises this to 100 requests per second per user, with 1,000 per minute on ads reads and 300 per minute on ads analytics.
Going past it: Requests are throttled for the rest of the day.
Google AdsLink to this section
15,000 API operations per day per developer token on Basic access, shared by every customer of this gateway. Keyword planning is additionally capped at 1 request per second per customer.
Going past it: RESOURCE_EXHAUSTED, for every customer at once, until the day rolls over.
TikTok AdsLink to this section
10 queries per second, 600 per minute and 864,000 per day per developer app on the Basic level, shared by every customer of this gateway.
Going past it: Code 40100. A per-minute breach suspends calls for five minutes, a per-day breach until 00:00 UTC.
Search ConsoleLink to this section
1,200 queries per minute per site and per user for Search Analytics. URL Inspection is capped at 600 per minute and 2,000 per day per site, which no plan lifts.
Going past it: A quotaExceeded error until the window rolls.
Google Analytics 4Link to this section
40,000 core tokens per property per hour, 14,000 per project per property per hour, and 10 concurrent requests per property. Ten server errors per hour on a project and property pair block every request to that property.
Going past it: Quota exhausted, and on the error quota, a full block on the property.
How a call is countedLink to this section
A tool call is almost never one request. Clients paginate, cross several endpoints, and a health check makes a handful by design. So a call is charged an estimated cost rather than one, and the estimate is deliberately pessimistic: a report costs more than a list.
| Kind of tool | Charged as |
|---|---|
list_accounts, *_list_* | 1 request |
| Most reads and writes | 2 requests |
| Health checks | 4 requests |
| Reports and insights | 5 requests |
| Detectors and monitors, which read a lot to answer once | 6 requests |
When you are refusedLink to this section
- The refusal names the scope that ran out, the number, and when it resets.
- A refused call does not consume your monthly allowance.
- Nothing queues. The gateway refuses rather than holding a request open, because a client that waits looks broken to the person using it.
- Narrowing the date range is usually the fastest fix: a smaller report is fewer requests.