Migration guide

Google Custom Search JSON API alternative, before the 1 January 2027 shutdown

Google's Custom Search JSON API is closed to new customers today and is discontinued on 1 January 2027, in Google's own published words. Every current user has to move. This page is the migration: what Google said, what breaks and when, a parameter by parameter map, a runnable before and after, a price table where every figure carries its source, and the cases where something other than Neurobird is the better replacement.

Every price and every quotation on this page was read at the vendor's own page on 29 August 2026 and is linked in place. Vendors change prices. Treat this as the dated snapshot it is, and check the link before you budget against it.

The dates

Is the Google Custom Search JSON API being discontinued?

Yes.
1 Jan 2027.

This is not a rumour off a forum. It is a dated sentence in the pricing section of Google's own API overview, and a second sentence in the note at the top of the same page. Both are quoted verbatim below.

2027
1 January, the discontinuation date Google publishes for the Custom Search JSON API
0
new customers accepted. The API is closed to signups already, so a new project cannot start here at all
$5
per 1,000 queries, Google's published rate, against $2 per 1,000 at Neurobird
10k
queries a day, the hard ceiling on the departing API. 100,000 searches take ten days minimum
Primary sources

What Google actually said about the Custom Search JSON API

Three quotations, each copied from the page it appears on and re-checked against the fetched document. Links go to the source, not to a summary of it.

"The following pricing applies only to existing Custom Search JSON API customers until the service discontinuation on January 1, 2027. This API is not available for new customers. Custom Search JSON API provides 100 search queries per day for free. If you need more, you may sign up for billing in the API Console. Additional requests cost $5 per 1000 queries, up to 10k queries per day."
Google, Custom Search JSON API overview, Pricing section. developers.google.com/custom-search/v1/overview Read 29 August 2026.
"The Custom Search JSON API is closed to new customers. Vertex AI Search is a favorable alternative for searching up to 50 domains. Alternatively, if your use case necessitates full web search, contact us to express your interest in and get more information about our full web search solution. Existing Custom Search JSON API customers have until January 1, 2027 to transition to an alternative solution."
Google, Custom Search JSON API overview, note at the head of the page. developers.google.com/custom-search/v1/overview Read 29 August 2026.
"The Custom Search Site Restricted JSON API endpoints will cease serving traffic on January 8, 2025. Beginning on January 8, 2025, all Custom Search Site Restricted JSON API customers must begin their transition to Google Cloud's Vertex AI Search to maintain access to their site search functionality."
Google, Programmable Search Engine Blog, December 2023. programmablesearchengine.googleblog.com Read 29 August 2026. Note that this sibling API has already stopped; it is a different product from the Custom Search JSON API, and its date has passed.

What is not covered by that wording. Google's discontinuation sentence names the Custom Search JSON API specifically. I did not find an equivalent dated sentence for the Programmable Search Engine control panel or for the on-page search element you can embed in a website, so this page makes no claim about those. Treat them as out of scope here rather than as confirmed safe, and check Google's docs for your own product before you plan around it.

Timeline

What breaks when the Google Custom Search API shuts down

Two dates matter, one of which is already in the past. A third constraint, the daily cap, bites long before either.

Dates as published by Google, read 29 August 2026.
DateWhat happensWhere it says so
8 January 2025 Passed. The Custom Search Site Restricted JSON API stopped serving traffic. Google directed those customers to Vertex AI Search, since renamed Agent Search. Programmable Search Engine Blog, December 2023
Today The Custom Search JSON API is closed to new customers. An existing key keeps working. A new project cannot obtain access at all. Custom Search JSON API overview, note
1 January 2027 The Custom Search JSON API is discontinued. Existing customers have until this date to transition. Custom Search JSON API overview, Pricing and note
Every day, now The paid tier is capped at 10,000 queries per day, and num is capped at 10 results per call with a hard ceiling of 100 results per query. Overview, and the cse.list reference

That last row is the one people forget. Google's cse.list reference states: "Also note that the maximum value for num is 10", and "The JSON API will never return more than 100 results, even if more than 100 documents match the query, so setting the sum of start + num to a number greater than 100 will produce an error." If your integration pages through start to collect 30 results, that is three billed calls under the old API and one call under most replacements, including this one. Source, read 29 August 2026.

Sourced comparison

Google Custom Search API alternatives compared, per 1,000 searches

Every figure below was read at the vendor's own pricing or documentation page on 29 August 2026. The verbatim sentence each number came from is in the numbered list under the table, with its link.

Provider Per 1,000 searches Full page content Grounded answer Free tier 100,000 searches
Neurobird Search $2 basic, $4 advanced, $6 advanced with answer Included, no extra credit Included at $6, quotes verified 1,000 credits a month, no card $200 basic
Serper $1.00 on the $50 pack, $0.30 on the $3,750 pack 1 No, links and snippets No 2,500 free queries, no card $100
Parallel Search $1 Turbo and Fast, $5 Basic and Advanced, per 1,000 with 10 results 2 Compressed excerpts Separate Responses API, from $10 per 1,000 5,000 requests a month $100 on Turbo
Google Custom Search JSON API $5 3 No No 100 queries a day $500, and at least 10 days at the daily cap
Brave Search API $5 4 No Separate Answers plan $5 in credits a month $500
Exa $7 per 1,000 search requests 5 Contents billed at $1 per 1,000 pages Answer at $5 per 1,000 requests $20 at signup, $10 a month $700 before contents
Tavily $8 basic, $16 advanced, at $0.008 per credit 6 Yes, via include_raw_content Yes, via include_answer 1,000 credits a month, no card $800 basic
Anthropic web search tool $10 7 Inside the model Inside the model Not stated on the page read $1,000 plus token costs

The honest reading of this table. Neurobird is not the cheapest number in it. Serper and Parallel are cheaper per raw search, and neither returns the page. The defensible claim is narrower and checkable: the cheapest search that includes the full page content, which is the thing an agent has to have before it can answer anything. If all you need is a ranked list of ten links, buy the ranked list of ten links.

  1. Serper: "50k credits ($1.00/1k)" through "12.5M credits ($0.30/1k)", with "Get 2,500 free queries" and "No credit card required". Serper describes itself as "The World's Fastest and Cheapest Google Search API". serper.dev
  2. Parallel: Search API table lists Turbo and Fast at "$1" and Basic and Advanced at "$5" per 1,000 requests with 10 results, additional results "$1" per 1,000, and the page header states "Run up to 5,000 requests per month for free". parallel.ai/pricing
  3. Google: "Additional requests cost $5 per 1000 queries, up to 10k queries per day", and "Custom Search JSON API provides 100 search queries per day for free". developers.google.com/custom-search/v1/overview
  4. Brave: "$5 per 1,000 requests" and "Includes $5 in free credits every month". brave.com/search/api/
  5. Exa: "$7 / 1k requests" for Search, "$1 / 1k pages" for Contents and "$5 / 1k requests" for Answer, with "New accounts get $20 in free credits (around 2,800 searches) and the Free Tier adds $10 in credits every month". Note that Exa's base price "covers the first 10 results in a request; every result above 10 adds $1 / 1k results". docs.exa.ai/reference/pricing
  6. Tavily: "Pay-as-you-go: $0.008 per credit", "Free: 1,000 credits/month", with basic search at "1 API credit" and advanced at "2 API Credits". Tavily's monthly plans are listed at "$0.0075 - $0.005 per credit", so a committed plan lands between $5 and $7.50 per 1,000 basic searches rather than $8. docs.tavily.com/documentation/api-credits
  7. Anthropic: "Web search is available on the Claude API for $10 per 1,000 searches, plus standard token costs for search-generated content." docs.claude.com
  8. Neurobird Search: $2 per 1,000 credits at the entry pack, falling to $1 per 1,000 at one million credits. A basic search is one credit, an advanced search is two, a grounded answer adds one. Free tier is 1,000 credits a month on every key. search.neurobird.com/#pricing
  9. Linkup was left out of this table on purpose. Its per call rates are published inside a component that did not render to text when I fetched the page, so I could not verify a number at source. Rather than repeat a figure from somewhere else, the row is absent.
The diff

How to migrate from Google Custom Search to a replacement API

The Custom Search JSON API is a GET with query parameters returning items[]. Neurobird Search is a POST with a JSON body returning results[]. The edit is mechanical. Here is the whole of it.

Before Google Custom Search JSON API
import requests

r = requests.get(
    "https://www.googleapis.com/customsearch/v1",
    params={
        "key": GOOGLE_API_KEY,
        "cx":  SEARCH_ENGINE_ID,
        "q":   "reciprocal rank fusion",
        "num": 10,          # 10 is the hard maximum
    },
    timeout=30,
).json()

for item in r.get("items", []):
    print(item["title"])
    print(item["link"])
    print(item["snippet"])  # a snippet, never the page

# Want results 11 to 30? Three more billed
# calls with &start=11, 21, 31, and the API
# stops entirely at 100 results.
After Neurobird Search
import requests

r = requests.post(
    "https://search.neurobird.com/search",
    headers={"Authorization": f"Bearer {NEUROBIRD_KEY}"},
    json={
        "query": "reciprocal rank fusion",
        "max_results": 10,   # up to 30 in one call
        "include_raw_content": "markdown",
        "include_answer": True,
        "verify_quotes": True,
    },
    timeout=90,
).json()

for hit in r["results"]:
    print(hit["title"])
    print(hit["url"])
    print(hit["content"])      # passages, query aligned
    print(hit["raw_content"])  # the whole page, no extra credit

print(r["answer"])
for q in r["quotes"]:
    print(q["verified"], q["url"], q["text"])

The whole key story. There is no cx. The Custom Search JSON API needs a Programmable Search Engine created and configured in a control panel before it will answer anything. There is nothing to configure here, and the key moves from a URL parameter to an Authorization: Bearer header, which is where a credential belongs. A key with 1,000 free credits a month comes from one unauthenticated POST:

curl -X POST https://search.neurobird.com/keys
# -> {"api_key": "nbs-...", "credits": 1000}

Google Custom Search parameters mapped to Neurobird

Custom Search JSON API Neurobird Search Note
qquerySame meaning. Up to 2,000 characters.
keyAuthorization: Bearer headerOut of the URL, into a header.
cxNothingNo search engine to create or configure.
nummax_resultsGoogle caps num at 10. This caps at 30, in one call.
startNothingNo paging. Google's total is capped at 100 results across all pages.
dateRestrict=d7days: 7, or time_range: "week"Both forms accepted.
siteSearch + siteSearchFilter=iinclude_domains: ["a.com"]A list, not a single site.
siteSearch + siteSearchFilter=eexclude_domains: ["b.com"]A list, not a single site.
lr=lang_jalanguage: "ja"ISO 639-1 code.
gl=uscountry: "us"Same idea.
hl, safe, filter, c2coffNo equivalentInterface language and Google's own filters do not carry over.
searchType=imageNo equivalentinclude_images returns images found on result pages, which is a different thing from an image index. If you run image search, this is not your replacement.
fileType, rights, sort, exactTerms, orTerms, linkSiteNo equivalentThese are Google index operators. Nothing outside Google offers them faithfully.

Response fields mapped

Custom Search JSON API Neurobird Search Note
items[]results[]Same position in the payload.
items[].titleresults[].titleIdentical.
items[].linkresults[].urlRename only.
items[].snippetresults[].contentGoogle returns a fixed snippet. This returns the passages of the page that match the query.
items[].displayLinkresults[].domainRename only.
Nothingresults[].raw_contentThe full extracted page, at no extra credit.
Nothingresults[].score, results[].enginesFusion score, and which engines found the result.
Nothinganswer, quotes[]A grounded answer, with each quote checked against its source text and marked verified true or false.
NothingtimingsMilliseconds per stage, so you can attribute latency from outside.
searchInformation.totalResultsNo equivalentNo corpus count is reported, because there is no owned index to count.
queries.nextPageNo equivalentAsk for more results in the one call instead.
Be honest about it

Which Google Custom Search replacement is right for you

Four different things were bundled into that one API. Which replacement you want depends entirely on which of them you were actually using. In two of the four cases below, the answer is not Neurobird.

You need Google's own index

Use Serper, not this

If your product depends on Google's ranking specifically, because you are comparing against Google positions or reproducing Google results, no independent index will match it. Serper resells Google SERP results and calls itself "The World's Fastest and Cheapest Google Search API", at $1.00 per 1,000 on its $50 pack falling to $0.30 per 1,000 on its $3,750 pack, with 2,500 free queries and no card.

Neurobird fuses several engines and does not reproduce Google's ordering. If Google's ordering is the product, say so and go there. serper.dev

You search your own sites

Google names Agent Search

If your Programmable Search Engine was restricted to your own domains, Google's own recommendation is in the note quoted above: "Vertex AI Search is a favorable alternative for searching up to 50 domains." Vertex AI Search is being renamed Agent Search.

Be clear eyed about the cost of that path. Google's migration guide requires a Cloud project, Enterprise edition features turned on, a data store built from URL patterns, and states that "with a couple of exceptions, Agent Search requires OAuth 2.0" where the old API used an API key. It also warns that advanced features "requires domain verification and incurs additional indexing costs". It is a heavier product, not a swap. Migration guide

You need an independent index

Brave owns a crawl

Brave Search API runs its own index rather than reselling anyone's, lists "$5 per 1,000 requests" with "$5 in free credits every month", and states it is SOC 2 Type II attested with a Zero Data Retention option. If procurement is going to ask about attestations and data residency, that is a real answer and this project does not have one yet.

What you get back is results, not pages. You still write the fetching, extraction and ranking yourself. brave.com/search/api

You are feeding an LLM

This is the case Neurobird is for

If the caller is an agent or a RAG pipeline, a list of ten links and a snippet is the beginning of the work, not the end of it. Neurobird runs the rest of the path in the same call: fan out across engines, fuse the rankings, open the pages, rank the passages inside them, and write an answer whose every quote is matched back against its source before the response is returned.

$2 per 1,000 basic searches, full page content at no extra credit, 1,000 free credits a month, and a key issued by one POST with no signup form. Take a key

Two more reasons to pick something else, stated plainly. First, latency. Measured medians on the current single server deployment are about 15 seconds for a basic search with an answer, about 22 seconds at standard depth and about 28 seconds at advanced depth, because the upstream engines and the answer model account for nearly all of it. Serper advertises Google results "in 1-2 seconds", and Parallel publishes about 200 milliseconds for its Turbo tier. If you are rendering a search box for a human being, those are the right products and this one is not. Streaming softens it here but does not erase it: ranked links reach the client at roughly 5 seconds and the answer starts writing at roughly 11 seconds.

Second, image search. The Custom Search JSON API had searchType=image. There is no equivalent here, and pretending otherwise would waste your afternoon.

Questions

Google Custom Search JSON API shutdown, answered

Is the Google Custom Search JSON API being discontinued?

Yes. Google's overview page for the API states, in its pricing section: "The following pricing applies only to existing Custom Search JSON API customers until the service discontinuation on January 1, 2027. This API is not available for new customers." A note at the head of the same page adds: "Existing Custom Search JSON API customers have until January 1, 2027 to transition to an alternative solution." Read at developers.google.com/custom-search/v1/overview on 29 August 2026.

What is the best alternative to the Google Custom Search JSON API?

It depends which property of the old API you relied on. For Google's own index and ranking, Serper at $1.00 per 1,000 falling to $0.30. For search restricted to your own sites, Google names Agent Search, formerly Vertex AI Search. For an independent index with SOC 2 attestation, Brave at $5 per 1,000. For an agent that needs the page text and not just links, Neurobird Search at $2 per 1,000 basic searches with full page content included at no extra credit. All figures read at each vendor's own page on 29 August 2026.

How much does a Google Custom Search API replacement cost per 1,000 searches?

Google's published rate is "Additional requests cost $5 per 1000 queries, up to 10k queries per day". Against that, on prices published by each vendor on 29 August 2026: Serper $1.00 falling to $0.30, Parallel Search $1 on Turbo and Fast, Neurobird Search $2 basic, Brave $5, Exa $7 per 1,000 search requests, Tavily $8 basic at the pay as you go rate, and the Anthropic web search tool $10 plus token costs. The full table with the source sentence behind every figure is above.

Can I migrate from Google Custom Search without rewriting my code?

Not without an edit, because the shapes genuinely differ: a GET with query parameters returning items[] against a POST with a JSON body returning results[]. The edit is small and mechanical, and it is written out in full above. key becomes an Authorization: Bearer header, cx disappears, q becomes query, num becomes max_results, and items[].link becomes results[].url. The paging loop goes away, because one call returns up to 30 results where Google capped num at 10 and total results at 100.

Does the shutdown affect Programmable Search Engine too?

The sentence Google publishes is specific to the Custom Search JSON API. A sibling product has already stopped: Google's Programmable Search Engine Blog states "The Custom Search Site Restricted JSON API endpoints will cease serving traffic on January 8, 2025." I found no equivalent dated sentence for the Programmable Search Engine control panel or its on-page search element, so this page makes no claim about them.

Is there a search API with a free tier and no credit card?

Neurobird Search issues 1,000 credits every month on a key created by a single unauthenticated POST to https://search.neurobird.com/keys. No signup form, no email address, no card, and every feature works on the free tier including grounded answers and quote verification. Serper advertises "Get 2,500 free queries" and "No credit card required". Tavily's docs state "You get 1,000 free API Credits every month. No credit card required." Google's departing API offered "100 search queries per day for free".

How fast is Neurobird Search compared with a SERP API?

Slower, and it is worth saying so before you integrate. Measured medians on the current single server deployment are about 15 seconds for a basic search with an answer, about 22 seconds at standard depth and about 28 seconds at advanced depth. A SERP API that returns links only is in the 1 to 2 second range, because it is doing a fraction of the work. Streaming returns ranked links at about 5 seconds and starts writing the answer at about 11 seconds, and every response carries per stage timings so you can see where the time went. If a human is waiting on the response, buy a SERP API.

Get started

Web search API with a free tier and no credit card

1,000 free.
No card.

One POST issues a key with 1,000 credits a month. No email, no form, no onboarding call. Point your migrated code at it and see whether the results are good enough before you spend anything. If they are not, you have lost a click.