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.
What you're paying today
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:
- Roughly how many queries you run a month.
- Whether you search the whole web or only your own sites through the engine config.
- Which response fields your code actually reads. Most people only use title, link and snippet.
The options
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.
Cost, side by side
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.
What the code change looks like
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 an AI agent is the caller
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.
A migration checklist
- Find every place that calls
customsearch/v1, including cron jobs and old scripts. - Log a week of real queries so you know your volume and which fields you read.
- Pick a replacement and run both side by side for a few days.
- Update the response parsing and your error handling. A failed call on 1ToolRing costs nothing, so retries are cheap, but cap them anyway.
- Remove the Google key and engine once traffic is at zero, well before 1 January 2027.
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.
Top comments (0)