Quota and throttling
GA4's Data API meters usage with token buckets per property, charging more tokens for larger and more complex queries. Concurrent requests are also capped. Pipelines that fan out too many or too-expensive queries exhaust the quota and get throttled with quota errors, so an export can fail partway and leave a gap. This page explains the quota model and how to stay under it.
The token quota model
The GA4 Data API does not meter by a simple request count alone. Each property has token buckets (per hour and per day, plus concurrent-request and per-project caps), and each query consumes a number of tokens proportional to its cost — more rows, more dimensions, longer date ranges, and sampling all increase the charge. Property responses expose remaining quota so callers can adapt.
Avoiding throttling
When a bucket is empty, further requests return a quota/resource-exhausted error until it refills. A naive pipeline that issues many wide queries back-to-back can exhaust the hourly bucket and then fail, leaving a partial export.
Mitigations: read the returned quota fields and back off; narrow date ranges and dimensions to spend fewer tokens; spread heavy jobs over time; and prefer the BigQuery export for very large pulls so the Data API quota is not the bottleneck.
- Per-property hourly/daily token buckets plus concurrency caps
- Cost scales with rows, dimensions, range, and sampling
- Empty bucket → quota errors until refill
- Back off using returned quota fields; use BigQuery for big pulls
How it appears in analytics and logs
Intermittent quota/throttle errors from the Data API mean token buckets are exhausted by query volume or complexity, not that the data is missing.
Diagnostic use case
Explain why a scheduled GA4 export started returning quota errors after adding more queries or more complex reports.
What WebmasterID can help detect
WebmasterID provides first-party data access with predictable limits, so routine reporting does not contend with a vendor's per-property token budget.
Common mistakes
- Firing many wide queries without reading remaining quota.
- Assuming a quota error means data loss rather than throttling.
- Using the Data API for bulk pulls better served by BigQuery export.
Privacy and accuracy notes
Quota is an access-control mechanism, unrelated to personal data. This page is educational, not legal advice.
Related pages
- API export limits
Programmatic exports through the GA4 Data API are bounded: a single response returns up to a fixed number of rows, and each query is limited in how many dimensions and metrics it may combine. Pulls that ignore these limits truncate without obviously failing, producing partial datasets that look complete. This page explains the row and field caps and the pagination that avoids silent truncation.
- Partial data and freshness
Data freshness is how recently the data behind a report was processed. The current day and the most recent hours are partial: not every event has arrived or been processed, so totals are understated and shapes incomplete. GA4 exposes freshness expectations and shows real-time data separately. This page explains partial-data pitfalls and how to read freshness.
- Sampling in explorations
GA4's Explore module samples differently from standard reports. When an exploration's query exceeds an event-count quota for the date range, GA4 analyses a representative subset and scales the results, flagging the sampling level. Deep, wide, or long-range explorations are most exposed. This page explains when Explorations sample and how to read the sampling indicator.
- MCP analytics
Predictable access without per-property token budgets.
Sources and verification notes
Last reviewed 2026-06-24. Facts are checked against primary/official sources where available; uncertain specifics are marked “Data not yet verified” rather than guessed.