# Rate limits

> What each advertising platform tolerates, what this gateway allows underneath it, and why a call is sometimes made to wait.

[Documentation](https://www.getmcpads.com/docs) / [Concepts](https://www.getmcpads.com/docs/concepts/discovery)

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 scopes

| 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 |

> **Note** The application scope exists because Google Ads counts per developer token, and TikTok and Pinterest count per app. On those three, every customer of this gateway draws from the same bucket, and without a ceiling one organisation could cut the service for all.

## What each platform allows, and what we allow

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 number

### Meta Ads

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 Ads

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 Ads

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 Ads

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 Console

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 4

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 counted

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 refused

- 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.

> **Warning** Two limits are set by the platform and no plan here lifts them. Meta allows four budget changes per ad set per hour, then blocks changes for an hour. Search Console allows 2,000 URL inspections per property per day.

---

This page as HTML: https://www.getmcpads.com/docs/concepts/rate-limits
Every page under /docs is available as Markdown: append `.md`, or send `Accept: text/markdown`.
