cd /news/ai-agents/google-s-custom-search-json-api-shut… · home › topics › ai-agents › article
[ARTICLE · art-164256] src=dev.to ↗ pub= topic=ai-agents verified=true sentiment=· neutral

Google's Custom Search JSON API shuts down on 1 January 2027. Here's how I'd migrate

Google's Custom Search JSON API is being discontinued on January 1, 2027, with new customers already unable to sign up, prompting a developer behind the 1ToolRing search tool to publish a migration guide. The guide compares three replacement paths — SERP APIs that return Google's own results, non-Google search APIs such as Brave, Exa and Tavily, and 1ToolRing's pay-per-call service — and notes that 1ToolRing's Google organic results tool cost $0.0026 per call on November 5, 2026, about $2.65 per 1,000 searches versus $5 per 1,000 on the Custom Search JSON API after its free 100 queries a day. The developer also flags that Programmable Search Engine site restrictions have no direct equivalent in a plain Google results API, and that 1ToolRing is available as a remote MCP server for agents like Claude Code and Cursor.

by read3 min views2 publishedNov 5, 2026

Disclosure: I build 1ToolRing, one of the options below. The other options are real alternatives and I say where they fit better.

If your app, script or AI agent calls https://www.googleapis.com/customsearch/v1, it has a deadline. Google's overview page for the Custom Search JSON API now says the pricing applies "only to existing Custom Search JSON API customers until the service discontinuation on January 1, 2027" and that "this API is not available for new customers" (Google, checked 5 Nov 2026).

So new projects can't sign up at all, and existing ones have until the end of the year.

Per the same page: 100 queries a day are free, then $5 per 1,000 queries, capped at 10,000 queries a day. Each query needs a Programmable Search Engine ID (cx) plus an API key, and results come back as JSON in the OpenSearch 1.1 format.

Write down three things before you pick a replacement:

A SERP API that returns Google's own results. You send a keyword, you get the parsed Google results page as JSON. This is the closest swap if you need "what Google shows" rather than "some good web results". Several vendors sell this, usually per request or on a monthly plan.

A search API that isn't Google. Brave Search API runs its own index, and Exa and Tavily are search APIs built for AI agents. None of them return Google's results page. They're a good fit when you want web results for an AI agent and don't care that the ranking isn't Google's. Check their pricing pages, since plans differ a lot.

1ToolRing (mine). One key and a prepaid balance for Google search results plus keyword data, Maps places, e-commerce prices and exchange rates. You pay per call, the price is shown before each run, and failed calls aren't charged. It's in early access right now, so new accounts are approved in batches.

For Google organic results, the 1ToolRing tool dataforseo/serp/google-organic cost $0.0026 per call for one page of 10 results on 5 Nov 2026. That works out to about $2.65 per 1,000 searches, against $5 per 1,000 on the Custom Search JSON API after its free 100 a day. There is no free daily quota on 1ToolRing; approved accounts get a small starter balance once. The live price is always shown before a run, so check it rather than trusting a blog post's number.

Before, with the Custom Search JSON API:

curl "https://www.googleapis.com/customsearch/v1?key=YOUR_GOOGLE_KEY&cx=YOUR_ENGINE_ID&q=coffee+shops+jakarta"

After, with 1ToolRing over REST:

curl -X POST https://api.1toolring.com/api/v1/tools/run \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tool":"dataforseo/serp/google-organic","input":{"body":{"keyword":"coffee shops jakarta","language_code":"en"}}}'

The answer comes back with the results under output.items (each with a rank, title and URL) and the amount charged under cost, in both USD and IDR. Your parsing code needs to change from Google's items[].link to the new field names, and there's no cx to manage anymore.

One thing that doesn't carry over: a Programmable Search Engine lets you restrict results to a list of sites in its settings. A plain Google results API has no such config, so if you relied on that, test how you'll filter before you switch.

If the thing calling search is Claude Code, Cursor, Codex or ChatGPT, you can skip the REST code. 1ToolRing is also a remote MCP server, so the agent can find the search tool, read its price and run it itself. In Claude Code:

claude mcp add --transport http 1toolring https://mcp.1toolring.com/mcp

Then run /mcp, choose Authenticate and approve in the browser. Or paste set up 1ToolRing - https://1toolring.com/llms.txt into the agent and it does the setup.

customsearch/v1, including cron jobs and old scripts. The full comparison table, with Google's numbers quoted and dated, is at 1toolring.com/compare/google-custom-search, and the Google search tool prices are on 1toolring.com/tools/google-search.

── more in #ai-agents 4 stories · sorted by recency
── more on @google 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/google-s-custom-sear…] indexed:0 read:3min 2026-11-05 · —