The Google Ads API enforces limits on API operations, such as the number of operations that can be sent in a single mutate request. The table below summarizes some of the important limits and quotas to be aware of. Request Type, Limitation, and Error Code Paginated requests 10,000 rows per page` [INVALID_PAGE_SIZE](https://developers.google.com/google-ads/api/reference/rpc/v15/RequestErrorEnum.RequestError invalid%5Fpage%5Fsize) Operations with Basic Access 15,000 API operations per day [RESOURCE_EXHAUSTED](https://developers.google.com/google-ads/api/reference/rpc/v15/QuotaErrorEnum.QuotaError
resource%5Fexhausted) Mutate requests 10,000 operations per request [TOO_MANY_MUTATE_OPERATIONS](https://developers.google.com/google-ads/api/reference/rpc/v15/RequestErrorEnum.RequestError
too%5Fmany%5Fmutate%5Foperations) Planning Service requests 1 QPS [RESOURCE_EXHAUSTED](https://developers.google.com/google-ads/api/reference/rpc/v15/QuotaErrorEnum.QuotaError
resource%5Fexhausted) Conversion Upload Service requests 2,000 conversions per request [TOO_MANY_CONVERSIONS_IN_REQUEST](https://developers.google.com/google-ads/api/reference/rpc/v15/ConversionUploadErrorEnum.ConversionUploadError
too%5Fmany%5Fconversions%5Fin%5Frequest) Billing and Account Budget Service requests 1 operation per mutate request [TOO_MANY_MUTATE_OPERATIONS](https://developers.google.com/google-ads/api/reference/rpc/v15/RequestErrorEnum.RequestError
too%5Fmany%5Fmutate%5Foperations) `
Daily API operation limitsDaily API usage limits are based on the number of made per developer token. API operations are the total sum of get requests and mutate operations. The limits for daily API operations depends on the access level of the developer token. The Access Levels and Permissible Use guide outlines the specific API operation limits for each access level. Requests that violate these limits are rejected with the error: . gRPC limitationsAll of the Google Ads API client libraries use gRPC for generating requests and responses. By default, gRPC has a message size of 4 MB, but our client libraries set the max message size to 64 MB in order to increase efficiency. Responses must not exceed this limit. For example, a search request that includes a lot of fields may generate a response that exceeds 64 MB in size. To avoid this limit, you can reduce the number of selected fields, reduce the page size, or use streaming. For mutates, send fewer operations per request. Requests that violate this limitation will not generate a`GoogleAdsError`, but will generate a`429 Resource Exhausted` gRPC error. Refer to the list of gRPC error codes and messages. Mutate requestsIn addition to counting against the user’s daily operation quota, a mutate request cannot contain more than 10,000 operations per request. Requests that violate this limitation are rejected with the error: . Additional limits and considerations for specific services and request types are outlined below. Search requestsA `[RESOURCE_EXHAUSTED](https://developers.google.com/google-ads/api/reference/rpc/v15/QuotaErrorEnum.QuotaError resource%5Fexhausted) 0 or [RESOURCE_EXHAUSTED](https://developers.google.com/google-ads/api/reference/rpc/v15/QuotaErrorEnum.QuotaError
resource%5Fexhausted) 1 request counts as one operation against the user's daily operation quota. One [RESOURCE_EXHAUSTED](https://developers.google.com/google-ads/api/reference/rpc/v15/QuotaErrorEnum.QuotaError
resource%5Fexhausted) `1 request counts as one API operation irrespective of the number of batches.
Paginated requestsPaginated requests (for example, requests that contain a valid` [RESOURCE_EXHAUSTED](https://developers.google.com/google-ads/api/reference/rpc/v15/QuotaErrorEnum.QuotaError resource%5Fexhausted) `3) are not counted against a user's daily operation quota. However, pagination requests that contain an expired or invalid page token will generate an exception and will count against the daily operation quota.Requests that are paginated, such as search requests, are also subject to the` [RESOURCE_EXHAUSTED](https://developers.google.com/google-ads/api/reference/rpc/v15/QuotaErrorEnum.QuotaError resource%5Fexhausted) `4 limitation and are rejected if it violates this limit, with the error: .For more details on pagination, refer to Paging through results. Other types of requestsA request that is not a `[RESOURCE_EXHAUSTED](https://developers.google.com/google-ads/api/reference/rpc/v15/QuotaErrorEnum.QuotaError resource%5Fexhausted) 6, [RESOURCE_EXHAUSTED](https://developers.google.com/google-ads/api/reference/rpc/v15/QuotaErrorEnum.QuotaError
resource%5Fexhausted) 7, [RESOURCE_EXHAUSTED](https://developers.google.com/google-ads/api/reference/rpc/v15/QuotaErrorEnum.QuotaError
resource%5Fexhausted) 0, or [RESOURCE_EXHAUSTED](https://developers.google.com/google-ads/api/reference/rpc/v15/QuotaErrorEnum.QuotaError
resource%5Fexhausted) `1 request counts as one operation against the user's daily operation quota.A few examples of such requests include: Requests that return API exceptionsRequests that are rejected with a` [TOO_MANY_MUTATE_OPERATIONS](https://developers.google.com/google-ads/api/reference/rpc/v15/RequestErrorEnum.RequestError too%5Fmany%5Fmutate%5Foperations) `6 still count against the user's daily operation quota.Requests that fail but don't return a` [TOO_MANY_MUTATE_OPERATIONS](https://developers.google.com/google-ads/api/reference/rpc/v15/RequestErrorEnum.RequestError too%5Fmany%5Fmutate%5Foperations) `6, such as from an error at the network level, won't count against the user's daily operation quota since the requests would never reach the service. An example of this is a network connectivity failure.
Planning servicesDue to cost and complexity, the Planning service methods listed below are subject to separate limits from other types of requests. - Limited to 1 request per second per CID or developer token:
Requests that violate these limitations are rejected with the error: .
- 1 QPS is calculated as 60 requests per 60 seconds.
Keep in mind these limits when creating a keyword plan. Keyword Plan Object Maximum Number` [RESOURCE_EXHAUSTED](https://developers.google.com/google-ads/api/reference/rpc/v15/QuotaErrorEnum.QuotaError resource%5Fexhausted) 2 per account 10,000 [RESOURCE_EXHAUSTED](https://developers.google.com/google-ads/api/reference/rpc/v15/QuotaErrorEnum.QuotaError
resource%5Fexhausted) 3 per [RESOURCE_EXHAUSTED](https://developers.google.com/google-ads/api/reference/rpc/v15/QuotaErrorEnum.QuotaError
resource%5Fexhausted) 2 200 [RESOURCE_EXHAUSTED](https://developers.google.com/google-ads/api/reference/rpc/v15/QuotaErrorEnum.QuotaError
resource%5Fexhausted) 5 per [RESOURCE_EXHAUSTED](https://developers.google.com/google-ads/api/reference/rpc/v15/QuotaErrorEnum.QuotaError
resource%5Fexhausted) 2 10,000 [RESOURCE_EXHAUSTED](https://developers.google.com/google-ads/api/reference/rpc/v15/QuotaErrorEnum.QuotaError
resource%5Fexhausted) 7 (negative keywords) 1,000 [RESOURCE_EXHAUSTED](https://developers.google.com/google-ads/api/reference/rpc/v15/QuotaErrorEnum.QuotaError
resource%5Fexhausted) 8 per [RESOURCE_EXHAUSTED](https://developers.google.com/google-ads/api/reference/rpc/v15/QuotaErrorEnum.QuotaError
resource%5Fexhausted) `2 1
Conversion upload service
- Limited to 2,000 call or click conversions per request:
Requests that violate these limits are rejected with the error: .
Conversion adjustment upload service
- Limited to 2,000 conversion adjustments per request:
Requests that violate these limits are rejected with the error: .
Billing and account budget services
- Mutates can only be made against accounts configured for monthly invoicing.
Requests that violate this limitation are rejected with the error: .
- Only 1 operation is permitted for mutate requests.
Requests that violate this limitation are rejected with the error: .
- You should wait at least 12 hours between budget order changes to the same account. Making changes before 12 hours have elapsed may result in unrecoverable failures which can only be resolved by your Google Ads account representative.
Invitations to customer accountsNew users can be invited to existing client accounts with the` [TOO_MANY_CONVERSIONS_IN_REQUEST](https://developers.google.com/google-ads/api/reference/rpc/v15/ConversionUploadErrorEnum.ConversionUploadError too%5Fmany%5Fconversions%5Fin%5Frequest) `7. Because this functionality sends invitation emails to other users, it has the potential to be misused, and thus there are limitations to its behavior:
- Users cannot receive more than one pending invitation for the same client account. If a subsequent request is made to send an invitation to a user that already has a pending invitation, this error is returned: .
- Client accounts cannot have more than 70 invitations pending at one time. If a request is sent that causes this value to be exceeded, this error is returned: .
User dataUser data is managed with the` [TOO_MANY_MUTATE_OPERATIONS](https://developers.google.com/google-ads/api/reference/rpc/v15/RequestErrorEnum.RequestError too%5Fmany%5Fmutate%5Foperations) 0 and the [TOO_MANY_MUTATE_OPERATIONS](https://developers.google.com/google-ads/api/reference/rpc/v15/RequestErrorEnum.RequestError
too%5Fmany%5Fmutate%5Foperations) 1. In a given create/remove [TOO_MANY_MUTATE_OPERATIONS](https://developers.google.com/google-ads/api/reference/rpc/v15/RequestErrorEnum.RequestError
too%5Fmany%5Fmutate%5Foperations) `2 operation, each set of should be specific to a single user.To enforce this, an or error is returned when there are more than 20 `[TOO_MANY_MUTATE_OPERATIONS](https://developers.google.com/google-ads/api/reference/rpc/v15/RequestErrorEnum.RequestError too%5Fmany%5Fmutate%5Foperations) 3 in a [TOO_MANY_MUTATE_OPERATIONS](https://developers.google.com/google-ads/api/reference/rpc/v15/RequestErrorEnum.RequestError
too%5Fmany%5Fmutate%5Foperations) `2 set.
Other types of limitsA repeated field, such as a list of operations, that has too many items in a request can incur the error: . This same error message can also be due to other issues. If you encounter this limitation and are making requests that use a repeated field, try reducing the number of items in the repeated field by deploying a list of operations in a mutate request. When making a GAQL query, the maximum number of items within an `[TOO_MANY_MUTATE_OPERATIONS](https://developers.google.com/google-ads/api/reference/rpc/v15/RequestErrorEnum.RequestError too%5Fmany%5Fmutate%5Foperations) `9 clause is 20,000. If you exceed that limit, a error is returned. |