403 errors and surprise billing charges. This page explains each tier, shows you how to track your consumption, and shares concrete patterns for getting more out of every query you do spend.
Usage tiers at a glance
The table below summarizes the two standard tiers available to all developers:The 10,000 queries/day ceiling is a per-project limit, not a per-key limit. If you have multiple API keys in the same project, they all share the same daily quota pool. Create separate Cloud projects if you need isolated quotas for different products.
Free tier
The free tier gives you 100 queries per day without requiring a payment method. This is well-suited for development and testing. The quota resets at midnight Pacific Time each day. If you exceed 100 queries on the free tier, the API returns a403 error with reason: rateLimitExceeded for the remainder of that day. No overages are charged — requests are simply rejected until the quota resets.
Paid tier
Enable billing on your Google Cloud project to access up to 10,000 queries per day. You are charged $5 per 1,000 queries for every query beyond the first 100 free queries. The first 100 remain free even after billing is enabled. Example daily cost calculations:How to check your current usage
Monitor your daily consumption directly in the Google Cloud Console so you can catch unexpectedly high usage before it becomes a problem.1
Open the Custom Search API metrics page
Go to Google Cloud Console → APIs & Services → Dashboard. Click Custom Search API in the list of enabled APIs.
2
View the Traffic chart
The Traffic chart on the Overview tab shows requests per second over the selected time window. Use the time selector (top right) to view today’s total, the last 7 days, or a custom range.
3
Check quota consumption
Click the Quotas tab. You’ll see a row for Queries per day showing your limit and how much you’ve consumed in the current 24-hour window.
4
Set up a budget alert
Navigate to Billing → Budgets & alerts and create a budget scoped to the Custom Search API. Set alert thresholds at 50%, 90%, and 100% of your expected monthly spend so you get email notifications before hitting limits.
How to request a quota increase
If your application needs more than 10,000 queries per day, you can request an increase through the Cloud Console. Google reviews these requests and typically responds within 2 business days.1
Navigate to Quotas
Go to APIs & Services → Custom Search API → Quotas.
2
Click Edit Quotas
Select the checkbox next to Queries per day and click the Edit quotas pencil icon.
3
Enter the new limit and justification
Set your desired daily query limit and provide a brief description of your use case — for example, the type of application, expected user base, and why you need the higher limit.
4
Submit the request
Click Submit request. Google will send a decision to the email address associated with your Cloud project.
There is no guaranteed ceiling on quota increases for the Custom Search JSON API, but very large volumes (hundreds of thousands of queries per day) typically require direct engagement with Google Cloud sales. Use the same quota request flow as a starting point, and a Google representative will follow up.
Best practices for staying within limits
Cache repeated queries
The single most effective way to reduce quota consumption is to avoid making the same API call twice. Cache query results using a fast key-value store (Redis, Memcached, or even an in-memory dictionary for low-traffic applications) and serve cached results for a configurable TTL:Use num to request only what you need
Each request costs exactly one query against your quota regardless of how many results you request. Requesting num=1 and num=10 both consume one query. However, if your feature only displays three results, there is no benefit to requesting 10 — keep num aligned with what you actually render to simplify parsing and reduce payload size.
Paginate only when users request it
Lazy-load additional pages of results instead of fetching all pages upfront. A user who searches and finds what they need on page 1 should not cost you 10 queries. Fetch the next page only when the user clicks “Next” or scrolls to load more.Deduplicate queries at the application layer
If multiple concurrent users search for the same term at nearly the same time, a request coalescing pattern ensures only one API call is made while all users receive the same result:Filter at the API level, not in code
Use parameters likesiteSearch, fileType, dateRestrict, exactTerms, and safe to narrow results before they reach your application. Every result you filter out in code after the fact is a wasted result slot — and wasted quota if you need additional pages to fill your UI.
Implement exponential backoff for retries
If your application retries failed requests, use exponential backoff with jitter to avoid compounding quota pressure. A naive immediate retry on a429 or 500 error doubles your quota consumption without helping the user:
Quota reset and billing cycle
The daily quota is based on calendar days in Pacific Time, not rolling 24-hour windows. A query made at 11:59 PM PT and one made at 12:01 AM PT the next day count against different days’ quotas.