Rate Limit Tiers
Your rate limit is determined by the Google plan associated with your workspace. Limits apply per API key and are measured in two windows: requests per minute (burst) and requests per day (total volume).| Plan | Requests per minute | Requests per day |
|---|---|---|
| Free | 60 | 1,000 |
| Pro | 600 | 50,000 |
| Enterprise | 6,000 | Unlimited |
Rate Limit Headers
Every API response — including successful ones — includes headers that tell you exactly where you stand against your current rate limit window. Monitor these headers in your integration to proactively throttle requests before hitting a429 error.
| Header | Description |
|---|---|
X-RateLimit-Limit | Your request limit per minute |
X-RateLimit-Remaining | Requests remaining in current window |
X-RateLimit-Reset | Unix timestamp when window resets |
X-RateLimit-Remaining reaches zero, the next request will be rejected with a 429 Too Many Requests response until the window resets at the time indicated by X-RateLimit-Reset.
Handling 429 Errors
When your integration receives a429 response, you should pause and retry the request after waiting for the rate limit window to reset. The most robust approach is exponential backoff — each failed attempt waits progressively longer before retrying, which naturally spaces out requests and avoids hammering the API.
- JavaScript
- Python
X-RateLimit-Reset header first and wait until the window actually resets, falling back to exponential backoff when the header is unavailable. Always enforce a maximum retry count to prevent infinite loops if the API is unexpectedly unavailable.