--- title: "Google Custom Search JSON API in 2026: pricing, limits and the January 2027 shutdown" category: "guides" url: https://keirolabs.cloud/blog/google-custom-search-api --- ## The 60-second version **The Google Custom Search JSON API returns Google results for a Programmable Search Engine as JSON: 100 queries a day free, then $5 per 1,000, capped at 10,000 queries a day.** It is closed to new customers, and existing customers have until **January 1, 2027** to move off it ([Google's overview page](https://developers.google.com/custom-search/v1/overview)). - **Price:** 100 free queries a day, then $5 per 1,000, up to 10,000 a day. - **Results:** 10 per request, at most 100 per query. - **Needs:** an API key and a search engine ID (`cx`). - **Status:** no new signups; existing keys stop on January 1, 2027. - **Google's suggested replacement:** Vertex AI Search, an enterprise product over your own corpus with monthly minimums, not a drop-in. ## How the Custom Search JSON API works **One GET request with your key, your engine ID and a query returns up to 10 results as JSON.** ```bash curl "https://www.googleapis.com/customsearch/v1?key=$GOOGLE_API_KEY&cx=$SEARCH_ENGINE_ID&q=serp+api+pricing" ``` | Parameter | What it does | |---|---| | `key` | API key from Google Cloud console | | `cx` | Programmable Search Engine ID | | `q` | The query | | `num` | Results per page, 1 to 10 | | `start` | Index of the first result (1, 11, 21 … up to 91) | | `searchType=image` | Image results instead of web | | `gl`, `lr` | Country and language | | `dateRestrict` | Recency, e.g. `d7` for the past week | The response's `items` array holds each result's `title`, `link`, `snippet` and page metadata. Because pages hold 10 results and `start` stops at 91, **one query yields at most 100 results across 10 paid requests.** ## How much does the Custom Search JSON API cost? **The first 100 queries each day are free; after that it is $5 per 1,000 queries, with a hard cap of 10,000 queries a day.** | Daily volume | Monthly cost (30 days) | |---|---| | 100 queries | $0 | | 1,000 queries | about $135 | | 10,000 queries (the cap) | about $1,485 | The 10,000-a-day cap means about 300,000 queries a month at most, on any budget. Anything bigger was never possible on this API. ## Getting a Custom Search API key **If you already have access:** create a key in the Google Cloud console under APIs and Services, and copy your engine ID from the Programmable Search Engine control panel. Restrict the key to the Custom Search API and to your server's IP addresses. **If you are a new customer:** you can no longer enable the JSON API for a new project. Google closed it to new customers ahead of the January 1, 2027 shutdown, so tutorials that walk you through "enable Custom Search API" do not work for new accounts. ## What changes on January 1, 2027? **Existing integrations stop.** After the deadline, requests to the JSON API will no longer return results, and Google has also been removing the free "search the entire web" option from Programmable Search Engine itself. If your product calls `customsearch/v1`, the migration needs to ship before the end of 2026. ## Is Vertex AI Search a replacement? **Not for most Custom Search users.** Vertex AI Search is Google's enterprise semantic search over **your own content**. Per [Google's configurable pricing docs](https://cloud.google.com/generative-ai-app-builder/docs/enable-configurable-pricing), it has subscription minimums of around 1,000 queries per minute and 50 GiB of storage, with per-query fees between roughly $1.50 and $4 per 1,000 depending on the edition. It does not return public Google web results as JSON. If your app sends a query and expects ranked web results back, Vertex is a different product, not a migration target. ## Google Custom Search API alternatives **Three kinds of service replace it.** A SERP API returns Google's own results by scraping them. An independent index (Brave) returns its own web results. A search API built for agents returns results plus page content. | Alternative | Type | Price per 1,000 | Free start | |---|---|---|---| | **Keirolabs** | Search API (SERP $0.10; search with page content from $0.25) | $0.10 to $0.25 | 1,250 credits a month, no card | | Serper | Google SERP API | $1.00 to $0.30 | 2,500 queries, one time | | DataForSEO | Google SERP API, queue or live | $0.60 to $2.00 | Trial deposit | | Brave Search API | Independent web index | $5.00 | $5 credit a month | | SerpApi | Google and 40+ engines | $25 down to $1.96 | 250 searches a month | Full prices and sources are in [cheapest SERP API](/blog/cheapest-serp-api) and [SerpApi pricing](/blog/serpapi-pricing). **Choose by what your code needed from Custom Search:** - **Google's exact ranking** (rank tracking, ad checks): a SERP API. Know the risk: Google sued SerpApi in December 2025 over scraping its results ([the crackdown](/blog/search-api-crackdown-2026-serpapi-lawsuit-bing-shutdown)). - **Good web results for an app or agent:** a search API with its own supply. Brave and Keirolabs do not depend on scraping Google. - **Search across a fixed list of sites** (the original Programmable Search use case): any of these with `site:` operators or domain filters. ## Migrating a Custom Search integration **Most integrations read `items[].title`, `items[].link` and `items[].snippet`. Map those three fields and the rest of your code is unchanged.** ```python import os, requests def search(q: str, n: int = 10) -> list[dict]: r = requests.post( "https://api.keirolabs.cloud/api/v2/search/lite", headers={"Authorization": f"Bearer {os.environ['KEIRO_API_KEY']}"}, json={"query": q}, timeout=30, ) r.raise_for_status() # same shape your Custom Search code expects return [{"title": h["title"], "link": h["url"], "snippet": h.get("snippet", "")} for h in r.json()["results"][:n]] ``` At $5 per 1,000 on Custom Search, a 100,000-query month cost about $485 after the free tier. On Keirolabs it costs $30 on the Essential plan, which covers 125,000 `/search/lite` searches, and there is no daily cap. For the bigger picture of what replaced Google's official APIs, read [Google Search API in 2026](/blog/google-search-apis-2026).