Google Custom Search API Alternative and Custom Search JSON API Replacement
Google switches the Custom Search JSON API off for everyone on January 1, 2027. Send the same query, country and results page to WebScrap instead and get the live Google results page back as JSON: position, title, URL, displayed link and snippet. No 10,000 a day cap, and each results page costs a flat 0.33 to 0.98 USD per 1,000 instead of 5 USD.
- Status
- ...
- Elapsed
- ... ms
- Exit country
- ...
- Browser used
- ...
This console sends a real request and shows you the real response. Five live fetches per session, and the sample targets run as often as you like.
The Custom Search JSON API ends on January 1, 2027
Google has closed the Custom Search JSON API to new customers and told existing ones to move by January 1, 2027. Since January 2026 new Programmable Search Engines can only search up to 50 named sites, not the whole web. If your product searches the open web, the self serve replacement is a SERP API that returns Google's live results as JSON.
That covers a lot of software that nobody thinks of as search software. Brand monitoring tools that check who ranks for a client's name. Lead research tools that look up a company's website from its name. Content tools that pull the top ten results before writing a brief. Compliance tools that search a person or a business for adverse news. Internal scripts that fact check a list of URLs. Many of them were built years ago on a free 100 queries a day and quietly grew into a paid line item.
Google's own suggestion, Vertex AI Search, is aimed at searching up to 50 domains. For anything wider it asks you to contact Google. If you need an answer this quarter, with a price you can read on a page, keep reading.
Your four options before the shutdown, compared
The right replacement depends on one question: what did your Custom Search engine actually search? Your own sites, a short list of trusted sites, or the whole web.
| Option | Best for | Where it falls short |
|---|---|---|
| Vertex AI Search | Search across your own site or up to 50 domains you name, with your own ranking controls | Not full web search by default. Broader web search means a conversation with Google sales, not a self serve key |
| Independent search APIs | Whole web results from a non Google index, often with generous developer tiers | A different index and ranking. If your users or your reports expect Google's order, the results will not match |
| SERP API specialists | Google results as JSON with many verticals (images, news, shopping) on one key | Priced per search in tiered bundles. Entry plans of the best known vendor work out at 15 to 25 USD per 1,000 searches |
| WebScrap | Whole web Google results as JSON at a flat rate, plus any other public page on the same key and plan | Not a site search product. If you only searched your own domain, Vertex AI Search or a hosted site search is the better buy |
What your Custom Search volume costs after the move
Custom Search charged 5 USD per 1,000 queries after the first 100 a day, and stopped at 10,000 queries a day. One Custom Search call returned at most 10 results, and so does one Google results page here, so the unit is the same. Months are counted as 30 days.
| Queries per day | Per month | Custom Search JSON API | WebScrap |
|---|---|---|---|
| 1,000 | 30,000 | 135 USD | 49 USD, Starter (50,000 included) |
| 5,000 | 150,000 | 735 USD | 149 USD, Growth (250,000 included) |
| 10,000, the old cap | 300,000 | 1,485 USD | 499 USD, Scale (1,500,000 included) |
| 40,000 | 1,200,000 | Not possible, above the daily cap | 499 USD, Scale |
The honest caveat: below about 3,000 queries a month, Custom Search was effectively free, and no paid plan beats free. Those teams are the ones hit hardest by the shutdown, and for them the question is whether 49 USD a month for 50,000 requests is worth keeping the feature alive. For anyone already paying Google, the move cuts the bill. The same plan also covers the pages behind the results, so fetching the top five URLs for each query is five more requests at the same rate, as the SERP API page explains.
Migration map from Custom Search parameters
Most integrations used a handful of parameters. Here is where each one goes. Requests are a POST to /v1/serp with your key in the header, documented on the API docs page.
| Custom Search | What it did | On WebScrap |
|---|---|---|
key and cx | API key plus the engine ID | One API key in the header. There is no engine to configure, the whole web is the default |
q | The search terms | query, any phrase including Google operators |
num and start | Up to 10 results, then an offset for the next 10 | page, starting at 1. start=11 becomes page=2 |
gl | Boost results from a country | country, which actually serves the search from that country, plus an optional US city |
hl and lr | Interface and result language | language |
siteSearch | Limit to one site | A site: operator in the query, several joined with OR |
searchType=image | Image results | Send the Google Images URL to /v1/scrape and describe the fields you want back. The Google Image Search API page maps every image filter |
items[] | title, link, displayLink, snippet | Organic results with position, title, URL, displayed link and snippet, plus ads and SERP features when present |
searchInformation | Total results estimate and search time | result_count and elapsed_ms in the response envelope |
The one field with no direct equivalent is pagemap, the structured data Custom Search attached to some results. If your code read thumbnails or metatags from it, fetch the result URL itself and ask for those fields by name with the AI web scraper. That is one extra request per result, and only for the results that need it.
How to switch in four steps before January 1, 2027
01
Find every call
Search your code and your cron jobs for googleapis.com/customsearch. Old scripts and forgotten integrations are the ones that break silently in January.
02
Wrap the client
Put one small function in front of search that maps q, gl and start to query, country and page. Every caller keeps working while the backend changes.
03
Run both side by side
For a week, send a sample of live queries to both and compare the top ten. Expect the order to shift slightly, because you now get the real google.com page for that location.
04
Cut over and delete the key
Switch the flag, remove the Custom Search key and engine ID from config, and set a usage alert on the new plan so a runaway loop cannot surprise you.
Who is migrating and why they pay
SaaS products with search inside
Lead enrichment, brand monitoring and research tools whose customers type a query and expect Google quality results back. The feature is part of what customers pay for, so it cannot just disappear in January.
AI agents and assistants
Teams that used Custom Search to ground a model in fresh web results. The replacement returns the same kind of result list, and the pages behind it on the same key.
SEO and content agencies
Top ten pulls for content briefs and client reports. For daily positions by city and device, the rank tracking API page has the cost arithmetic.
Compliance and due diligence
Adverse media and background checks that search a name plus risk terms. Pair them with Google News results for recent coverage.
Three mistakes teams make when they replace Custom Search
Scraping Google from their own server. It works for a day. Then the same address sends a few thousand searches and starts getting CAPTCHAs, or worse, a page that parses fine but holds no results. Your code reads that as "nothing found", which is a wrong answer rather than an error. A managed API rotates the exit address through a proxy pool and treats an empty page on a common query as a failed fetch, which is never billed.
Asking for 100 results in one call. Google stopped honoring num=100 in September 2025. Deep result lists now take one request per page of ten, so budget ten requests for a top 100. Custom Search never went past ten per call anyway, so most migrated code already paginates correctly.
Leaving the location to chance. Custom Search's gl parameter only boosted results from a country. A real Google page depends on where the search comes from. Set the country on every request, and a US city when local results matter, or the same query will return different pages depending on which data center your job happened to run in.
Google Custom Search API questions
Is the Google Custom Search API being discontinued?
Yes. Google closed the Custom Search JSON API to new customers and gave existing customers until January 1, 2027 to move to another solution. After that date the endpoint stops serving existing integrations too. New Programmable Search Engines are also limited to searching up to 50 named sites instead of the whole web.
What is the best alternative to the Google Custom Search API?
It depends on what you searched. If you only searched your own sites, Google's Vertex AI Search covers up to 50 domains. If you searched the whole web and need Google's results, use a SERP API that fetches the live Google results page and returns it as JSON. If any good web index will do, an independent search API is another option.
How much does the Google Custom Search API cost?
Google gives 100 queries a day free, then charges 5 USD per 1,000 queries, with a hard cap of 10,000 queries a day. On WebScrap one Google results page is one request at 0.98 USD per 1,000 on Starter, 0.60 on Growth and 0.33 on Scale, with no daily cap.
Can I still get a Google Custom Search API key?
Not for new projects. The Custom Search JSON API is closed to new customers, so a key created today does not unlock it. Existing keys keep working until January 1, 2027. A WebScrap key is issued when you create an account and covers Google search, Google News and any other public page.
Does the replacement return the same results as Custom Search?
Close, and often closer to what users see. Custom Search results came from a Programmable Search Engine and could differ from google.com. WebScrap fetches the actual Google results page for the country, language and device you set, so positions match what a searcher in that location sees, including ads and features if you want them.
Is there a daily limit on the replacement?
No daily cap. Custom Search stopped at 10,000 queries a day. WebScrap limits only your monthly volume and how many requests run at once: 5 concurrent on Starter, 50 on Growth and 200 on Scale. A Scale plan covers 1.5 million searches a month, about 50,000 a day.
How long does migrating off the Custom Search JSON API take?
For most codebases, a day or two. The request maps almost one to one: q becomes query, gl becomes country, start becomes page, and each result still has a title, URL, displayed link and snippet. The work is in tests and in any code that read Custom Search specific fields such as pagemap.
Can I restrict searches to certain sites like Custom Search did?
Yes. Put a site: operator in the query, for example site:irs.gov or several sites joined with OR, exactly as you would on google.com. For a fixed list of your own domains with your own ranking rules, Vertex AI Search is the closer product and may be the better buy.
Is Vertex AI Search a replacement for full web search?
Not by default. Google positions Vertex AI Search for searching up to 50 domains, and asks teams that need broader web search to contact Google about a separate full web offering. If your product searched the whole web through Custom Search, a SERP API is the self serve route.
Is it legal to use a SERP API instead of the official API?
Fetching public search results pages is widely done and SERP APIs are an established product category, but terms of service and your use of the data are your responsibility. Store results for analysis rather than republishing them wholesale, respect copyright in snippets, and get legal advice for resale products.
Move your search calls before the January deadline
Send a query and a country, get Google's live results as JSON. Flat 0.98 USD per 1,000 requests, falling to 0.33 on Scale, no daily cap, failed fetches never billed.