Limits

This page lists various quotas and limits specific to the AdSense Management API. These apply in addition to any product-specific limits (such as the number of channels per account) that apply to AdSense in general.

API-level quotas

All requests sent to the AdSense Management API count against general request-rate quotas, independent of the type of the request.

You can view your current usage for any of these quotas by using the Quotas page in the Google API Console. You can also set up usage alerting or additional monitoring; see the general Google Cloud Quotas overview documentation for more information.

Exceeding these quotas will cause the request to be rejected with an HTTP 429 Too Many Requests error. The error message will include details of which quota was exceeded.

Description Value Notes
Queries per minute for a single user and project 100 n/a
Queries per minute for all users using a single project 500 n/a
Queries per day 10,000 Daily quotas reset around midnight Pacific time.

Report size limits

Reports generated by the AdSense Management API have a maximum size that depends upon the output format:

  • JSON reports (e.g. as generated by the accounts.reports.generate method) are limited to a maximum of 100,000 rows. Reports larger than this will be truncated, but the response includes a totalMatchedRows field that includes the size of the full report, which can be used to identify whether truncation has occurred.
  • CSV reports (e.g. as generated by the accounts.reports.generateCsv method) are limited to a maximum of 1,000,000 rows. Reports larger than this will be truncated.

Report row quota

The AdSense Management API also applies limits to the total amount of reporting data that may be retrieved over daily and shorter periods in order to prevent abusive usage. Exceeding these limits will cause the request to be rejected with an HTTP 429 Too Many Requests error with an associated message of "Report row quota exceeded".

Other request limits

Various request parameters control how much data should be returned for a request (for example, page_size for requests that allow pagination, or the limit parameter for report generation requests). If these parameters are unspecified, the default value is always the maximum-allowed value. Specifying a higher value will cause the request to be rejected with an HTTP 400 Bad Request error.