A Custom Search JSON API alternative before the 1 January 2027 shutdown
x402serps is a pay-per-call web and image search API for apps and AI agents. Each search costs $0.004, paid with USDC over x402 (no account) or with prepaid card credits. Results come from a third-party search provider and are returned as clean JSON.
| x402serps | Custom Search JSON API | |
|---|---|---|
| Available to new customers | Yes | No (closed to new customers) |
| End date | None announced | Existing customers must transition by 1 January 2027 |
| Price | $0.004 per search | $5 per 1,000 queries after 100 free a day (existing customers only) |
| Daily cap | None on paid calls | Up to 10,000 queries a day |
| Setup | No account with x402; or card credits | Programmable Search Engine ID + API key |
| Result types | Web, news, images, places, shopping, scholar, videos | Web and image |
| MCP server for agents | Yes | No |
Competitor details are from their public pricing and docs as of November 2026 and may change; check their sites for current terms.
What Google announced
Google's own documentation says: "The Custom Search JSON API is closed to new customers" and "Existing Custom Search JSON API customers have until January 1, 2027 to transition to an alternative solution." Google points site-restricted search users to Vertex AI Search. Source: developers.google.com/custom-search/v1/overview (checked 3 November 2026).
Parameter mapping
| Custom Search JSON API | x402serps /api/v1/search |
|---|---|
| q | q |
| num (max 10) | num (up to 100, billed per 10) |
| start | page |
| gl / hl | gl / hl |
| dateRestrict | freshness or dateFrom/dateTo |
| searchType=image | POST /api/v1/images |
| siteSearch | add site:example.com to q |
| items[].title / link / snippet | results[].title / url / snippet |
Why x402serps
No Programmable Search Engine to configure and no API key to request: an x402-aware client pays $0.004 per call in USDC on Base or Solana. If you prefer a card, buy a credit pack and send Authorization: Bearer xs_... . The same API also returns news, places, shopping, scholar and video results, and every endpoint is exposed as an MCP tool.
What's different
x402serps searches the whole web through a third-party search provider; it does not restrict results to a list of sites the way a Programmable Search Engine can. To limit results to one site, add site:example.com to your query.
How it works
The Custom Search JSON API has been closed to new customers, and Google says existing customers have until 1 January 2027 to move to another solution. If your code calls the customsearch/v1 endpoint with a key and a search engine ID (cx), you need a replacement before then.
x402serps returns the same kind of data an agent or script usually takes from Custom Search: an ordered list of organic results, each with a title, URL and snippet. There is no search engine ID to configure and no daily quota. The request is one POST with a q parameter; country (gl), language (hl), result count (num, up to 100) and pagination (page) map closely onto the Custom Search parameters you already use.
Migration is usually a few lines: change the URL, send q in a JSON body, and read results[] instead of items[]. The link field becomes url and htmlSnippet is dropped in favour of a plain-text snippet.
Request and response: /api/v1/search
POST /api/v1/search costs $0.004 per call. Send the parameters as a JSON body.
curl -X POST https://x402serps.com/api/v1/search \
-H "content-type: application/json" \
-H "X-Trial: 1" \
-d '{"q":"x402 protocol","num":10,"gl":"us"}'Example response (values shortened; field names are exactly what the API returns):
{
"query": "x402 protocol",
"provider": "primary",
"results": [
{
"position": 1,
"title": "x402",
"url": "https://x402.org/",
"snippet": "x402 is an open payment standard that lets clients pay for APIs and content over HTTP..."
},
{
"position": 2,
"title": "coinbase/x402: A payments protocol for the internet",
"url": "https://github.com/coinbase/x402",
"snippet": "x402 is a chain-agnostic protocol built around the HTTP 402 Payment Required status code..."
}
]
}Use cases
- Replacing a site or web search box. Keep a server-side search feature working after the Custom Search shutdown date without rebuilding it.
- Agents that need fresh web facts. Give an LLM tool call up-to-date results without managing quotas.
- SEO and rank checks. Track positions for a keyword in a country with gl and page.
- Research scripts. Batch many queries; each is priced independently at $0.004.
Paying for calls
Every call is priced on its own. With x402, an unpaid request returns HTTP 402 with the exact amount, asset and recipient for USDC on Base or Solana; your client signs a payment and repeats the same request, and results come back once the payment settles. No account or API key is involved. If you would rather pay by card, buy a credit pack on the pricing page and send Authorization: Bearer xs_.... Cached repeat queries cost half for credit keys, and failed calls are not charged. Paid calls have no per-minute rate limit.
FAQ
How do Custom Search parameters map to x402serps?
q stays q, num stays num (up to 100 here instead of 10), start becomes page (1 to 10), gl and hl work the same, and dateRestrict maps to freshness or dateFrom/dateTo.
Can I restrict results to one site?
Yes. Put site:example.com in the query, the same way you would in a search box. There is no separate search engine ID.
What does a search cost?
$0.004 per call for up to 10 results, paid by x402 or card credits.
Do I need an account or API key?
No. With x402 the payment travels with the request, so there is nothing to sign up for. An API key (xs_...) is only used if you choose to prepay with a card.
Which chains and tokens are accepted?
USDC on Base mainnet and Solana mainnet, using the x402 exact scheme. Testnets are not accepted.
Is there a free trial?
Yes. Send the header X-Trial: 1 on search, news, single-URL extract and the vertical endpoints. Trial calls are limited per network and to 10 a minute.
Try it free
Add the header X-Trial: 1 for free trial calls (limited per network and to 10 a minute). Paid calls (x402 or a credit key) have no per-minute rate limit.
curl -X POST https://x402serps.com/api/v1/search -H "X-Trial: 1" -H "content-type: application/json" -d '{"q":"site:example.com pricing"}'Pricing · Docs · MCP · Integrations · Help