Page Summary
-
The Data API has three request quota categories: Core, Realtime, and Funnel.
-
Quotas apply to Analytics Properties and are measured in tokens, concurrent requests, and server errors.
-
Token consumption in API requests is influenced by factors such as the number of rows, columns, filter complexity, and date range.
-
Daily quotas refresh at midnight PST, and hourly quotas refresh within an hour.
-
You can specify
"returnPropertyQuota": truein an API request to see the current property quota token status.
The following limits and quotas apply to the Data API.
How quotas apply
All requests to the Google Analytics Data API v1 require a Google Cloud project and are subject to the quotas outlined on this page. Quotas are consumed regardless of the method used to identify the calling project, including:
- Requests authenticated with OAuth 2.0 credentials.
- Requests authenticated using only an API key.
API keys are used to associate a request with a specific Google Cloud project for quota and billing purposes. All API calls made using credentials or an API key from your project will count against your project's and the Google Analytics property's applicable quotas.
Quota categories
The Data API has three request quota categories: Core, Realtime, and Funnel. API requests to Core methods charge Core quotas. API requests to Realtime methods charge Realtime quotas. Each request consumes only one kind of quota.
| Quota category | API methods |
|---|---|
| Core | runReport, runPivotReport, batchRunReports, batchRunPivotReports, runAccessReport, getMetadata, checkCompatibility, createAudienceExports |
| Realtime | runRealtimeReport |
| Funnel | runFunnelReport |
Analytics property quotas
All requests consume property quotas.
| Quota Name | Standard Property Limit | Analytics 360 Property Limit |
|---|---|---|
| Core Tokens Per Property Per Day | 200,000 | 2,000,000 |
| Core Tokens Per Property Per Hour | 40,000 | 400,000 |
| Core Tokens Per Project Per Property Per Hour | 14,000 | 140,000 |
| Core Concurrent Requests Per Property | 10 | 50 |
| Core Server Errors Per Project Per Property Per Hour | 10 | 50 |
| Realtime Tokens Per Property Per Day | 200,000 | 2,000,000 |
| Realtime Tokens Per Property Per Hour | 40,000 | 400,000 |
| Realtime Tokens Per Project Per Property Per Hour | 14,000 | 140,000 |
| Realtime Concurrent Requests Per Property | 10 | 50 |
| Realtime Server Errors Per Project Per Property Per Hour | 10 | 50 |
| Funnel Tokens Per Property Per Day | 200,000 | 2,000,000 |
| Funnel Tokens Per Property Per Hour | 40,000 | 400,000 |
| Funnel Tokens Per Project Per Property Per Hour | 14,000 | 140,000 |
| Funnel Concurrent Requests Per Property | 10 | 50 |
| Funnel Server Errors Per Project Per Property Per Hour | 10 | 50 |
- Concurrent requests are measured by the number of requests being simultaneously executed. To reduce your request concurrency, wait for previous requests to complete before sending additional requests.
- Server Errors are 500 and 503 codes. Server Errors quotas are only charged when a request results in a server error. When the Server Errors quotas are exhausted for a project and property pair, all requests to the property from the project are blocked.
- Each request consumes quota for both Tokens Per Property Per Hour and Tokens Per Project Per Property Per Hour. This means that one property must be accessed by more than 3 projects before the "Tokens Per Property Per Hour" quota could be exhausted before the "Tokens Per Project Per Property Per Hour" quota.
Properties are allowed 120 potentially thresholded requests per hour. The
dimensions userAgeBracket, userGender, brandingInterest, audienceId, and
audienceName are potentially thresholded. Thresholds are applied to prevent
anyone viewing a report from inferring the demographics or interests of
individual users.
Property tokens quota
Tokens are consumed with each request to the Google Analytics Data API v1. The number of tokens charged depends on the request's complexity. While most requests will charge 10 or fewer tokens, more complex requests will consume more.
Factors that influence token consumption
The exact token cost for a request is determined at the time of execution, making precise pre-calculation challenging. The cost is influenced by a combination of factors related to the request itself and the underlying data in the Google Analytics property. These factors can result in higher costs:
- Number of rows: Requesting a larger number of rows.
- Number of dimensions and metrics: Including a greater number of dimensions and metrics.
- Filter complexity: Employing complex filter expressions.
- Date range length: Querying over longer date periods.
- Data cardinality: Dimensions with high cardinality (many unique values,
such as
pagePath, custom dimensions) can significantly increase token cost. - Property event volume: Queries on properties with a higher volume of events may consume more tokens than the same query on a property with less data.
Monitoring token usage
The most effective way to determine the token cost for your specific API calls
is to include the parameter "returnPropertyQuota": true in the request body.
The API response will then include the PropertyQuota object, which details the
tokens consumed by that specific request and the remaining quota balances.