Kurz gesagt: Googles Custom Search JSON API ist für neue Kunden geschlossen und endet für bestehende Nutzer am 1. Januar 2027. Wenn deine App oder Pipeline eine Query schickt und Google-Ergebnisse als JSON vom gesamten Web liest, hält Google Search auf Piloterr dieses Muster: Query rein, strukturierte SERP raus. Die meisten Filter gl / hl / lr mapen 1:1. Für reine SERP-Workloads bei Volumen liefert dasselbe Team Autom.dev, eine dedizierte SERP-API mit demselben Parameterstil.
Die Migration sind ein paar Zeilen Code, kein Rewrite.
Was abgeschaltet wird
Google schreibt auf der Overview-Seite der Custom Search JSON API:
- Die API ist für neue Kunden nicht verfügbar.
- Bestehende Kunden können sie bis zum 1. Januar 2027 nutzen.
- Bis dahin bleibt die Preisgestaltung gleich: 100 kostenlose Queries pro Tag, danach 5 $ pro 1.000 Queries, maximal 10k Queries pro Tag.
Für die Suche in bis zu etwa 50 Domains verweist Google auf Vertex AI Search (in manchen Docs auch Agent Search). Für Ergebnisse aus dem gesamten Web gibt es kein Self-Serve-Produkt von Google, nur ein Interest-Form.
Quelle: Google for Developers: Custom Search JSON API.
Die richtige Alternative hängt davon ab, was du suchst
Custom Search deckte mehrere Jobs ab. Sie haben nicht denselben Nachfolger.
| Wofür du Custom Search nutzt | Was du stattdessen nutzt |
|---|---|
| Suchfeld auf deiner eigenen Website | Googles Programmable Search Element oder Site-Search (Algolia, Typesense, Meilisearch) |
| Bekannte Domains oder eigener Corpus in Google Cloud | Google Agent Search / Vertex AI Search (Pfad „~50 Domains“) |
| Web-weite Ergebnisse als JSON für App, Agent oder Pipeline | Google Search auf Piloterr, oder Autom.dev wenn du nur SERP brauchst |
| KI-Antworten mit Zitaten (Google AI Mode) | Google AI Mode, optional mit organischer Suche |
| Tiefes SEO-SERP (Ads, AI Overviews, viele Seiten) | Google Search mit page-Pagination, plus Images / Autocomplete bei Bedarf |
| Dasselbe Query-Muster auf Bing, Brave, Yahoo, DuckDuckGo (oder Multi-Engine-Failover) | Autom.dev: Google plus Bing, Brave, Yahoo, DuckDuckGo, Baidu auf einem SERP-Stack |
Der Rest dieses Guides gilt für den Fall Web-weites JSON: du rufst heute customsearch/v1 mit aktiviertem „Search the entire web“ auf. Code-Samples nutzen Piloterr; Autom.dev ist dieselbe Idee mit anderem Host, wenn SERP reicht.
Piloterr oder Autom.dev?
Autom.dev ist unser SERP-fokussiertes Sub-Produkt. Dieselbe Familie wie Piloterr, für Teams deren Job Suchergebnisse sind: SEO-Rank-Tracking, Agents die nur SERP-JSON brauchen, Multi-Engine-Lookup bei Volumen. Endpoint-Form ist vertraut: https://api.autom.dev/v1/google/search, x-api-key, query / gl / hl / tbs / page. Siehe die Autom Google Search Docs. Pricing ist SERP-spezialisiert (Pay-per-Use-Credits, keine CSE-artige 10k/Tag-Wand).
Wähle Piloterr, wenn du in der Google-Familie bleibst: Google Search, Images, Autocomplete, AI Mode.
Wähle Autom.dev, wenn du Google und andere Engines (Bing, Brave, Yahoo, DuckDuckGo, Baidu) auf einem Account willst, oder SERP-only Volumen-Pricing.
Dasselbe Team. Dasselbe Migrationsmuster von Custom Search. Andere Surface, je nachdem ob du Google-only oder Multi-Engine-SERP brauchst.
Was du mit Piloterr Google Search bekommst
Derselbe Vertrag, den du schon gebaut hast: Query senden, gerankte Ergebnisse als JSON zurück. Im Vergleich zu Custom Search:
| Custom Search JSON API | Piloterr Google Search | |
|---|---|---|
| Verfügbarkeit | Geschlossen für Neue; Ende 1. Jan. 2027 | Offen |
| Setup | API-Key + Programmable Search Engine (cx) | Ein x-api-key |
| Kostenmodell | 100 gratis/Tag, dann 5 $ / 1k, hartes 10k/Tag-Limit | 1 Credit pro Request |
| Tageslimit | 10k Queries | Credit-Pläne, kein CSE-artiges 10k/Tag-Ceiling |
| Land / Sprache | gl, lr, hl | Gleiche Namen: gl, hl, lr, plus cr |
| Lokale Ergebnisse | Länderebene | Land + optional Stadt location / uule |
| Site-Filter | siteSearch / siteSearchFilter | Google-Operatoren in query (site:, -site:, …) |
| Datumsfilter | dateRestrict (d7, w1, …) | tbs (qdr:d, qdr:w, qdr:m, qdr:y) |
| Pagination | Eingeschränkt | page für weitere Ergebnis-Seiten |
| Payload | Organische Items + Meta | Organische Ergebnisse, Knowledge Graph, Related Searches, Pagination |
| Auth | Query-Param key | Header x-api-key |
Docs: Google Search API · API-Referenz. GET und POST werden unterstützt.
So wechselst du von Custom Search zu Piloterr
Du sendest weiter eine Query und liest JSON. Nach dem Remapping weniger Felder läuft der Code, der Titel und Links verarbeitet, weiter.
- Account unter app.piloterr.com anlegen und API-Key kopieren.
- Request-Parameter und Response-Felder mit den Tabellen unten mappen.
- Den HTTP-Call auf
https://api.piloterr.com/v2/google/searchzeigen.
Mapping der Request-Parameter
| Piloterr-Parameter | Funktion | Custom-Search-Äquivalent |
|---|---|---|
query | Suchstring (pflicht). Unterstützt Google-Operatoren | q |
gl | Länderbias (us, fr, uk, …) | gl |
hl | UI- / Ergebnissprache | hl |
lr | Auf Sprache(n) einschränken, z. B. lang_de | lr |
cr | Auf Land/Länder einschränken, z. B. countryDE | Am nächsten: Länderfilter / Engine-Config |
tbs | Aktualität: qdr:h, qdr:d, qdr:w, qdr:m, qdr:y | dateRestrict |
location / uule | SERP auf Stadtebene | Kein direktes CSE-Äquivalent |
google_domain | google.com, google.de, … | Locale / Domain der Engine |
page | Ergebnis-Seitennummer | Teilweise / begrenzt in CSE |
safe | SafeSearch active / off | safe |
Header x-api-key | Auth | key |
| Nicht nötig | cx (Search-Engine-ID) |
Site-Include/Exclude aus siteSearch gehört in die Query: site:example.com coffee oder -site:pinterest.com coffee.
Mapping der Response-Felder
| Custom Search | Piloterr Google Search |
|---|---|
items[].title | organic_results[].title |
items[].link | organic_results[].link |
items[].snippet | organic_results[].snippet |
items[].displayLink | organic_results[].domain |
items[].formattedUrl | organic_results[].displayed_link |
searchInformation.totalResults | search_information.total_results |
organic_results[].position, knowledge_graph, related_searches, pagination |
Python: vorher und nachher
Vorher: Custom Search JSON API:
import os
import requests
resp = requests.get(
"https://www.googleapis.com/customsearch/v1",
params={
"key": os.environ["GOOGLE_API_KEY"],
"cx": os.environ["SEARCH_ENGINE_ID"],
"q": "best coffee shops",
"gl": "de",
"hl": "de",
"lr": "lang_de",
"num": 10,
},
timeout=30,
)
for item in resp.json().get("items", []):
print(item["title"], item["link"])
Nachher: Piloterr Google Search:
import os
import requests
resp = requests.post(
"https://api.piloterr.com/v2/google/search",
headers={"x-api-key": os.environ["PILOTERR_API_KEY"]},
json={
"query": "best coffee shops",
"gl": "de",
"hl": "de",
"lr": "lang_de",
},
timeout=30,
)
for result in resp.json().get("organic_results", []):
print(result["position"], result["title"], result["link"])
Was sich wirklich ändert:
- Endpoint-URL
- Auth von
key(+cx) zum Headerx-api-key q→queryitems→organic_results(Felder wietitleundlinkbleiben vertraut)gl/hl/lrbehalten dieselben Werte
GET funktioniert genauso, wenn du Query-Strings einem JSON-Body vorziehst.
Auf Autom.dev ist der Swap dieselbe Idee: cx weglassen, query + gl / hl senden, mit x-api-key authentifizieren und auf https://api.autom.dev/v1/google/search zeigen (Library). Response-Felder bleiben im organic_results-Stil.
Jenseits von Google: Bing, Brave, Yahoo, DuckDuckGo
Custom Search war Google-only. Viele Pipelines wollen heute einen zweiten Index für Redundanz, Geo-Coverage oder Cross-Engine-SEO. Auf Autom.dev funktioniert dasselbe Query-in / JSON-out-Muster über Engines hinweg:
- Bing Search
- Brave Search
- Yahoo Search
- DuckDuckGo Search
- Baidu Search, wenn du diesen Markt brauchst
- Oder
/v1/search: versucht Google, dann Brave, Bing, DuckDuckGo, Yahoo, Baidu bis organische Ergebnisse kommen
Auf Piloterr bleibst du Google-seitig mit AI Mode, Images und Autocomplete auf demselben API-Key wie Google Search.
Vor dem 1. Januar 2027 migrieren
Die Custom Search JSON API endet Anfang 2027. Google bietet keinen Self-Serve-Ersatz für Web-weites JSON. Wenn dein Code schon „Query → JSON-Ergebnisse“ macht, wechselst du zu Google Search (oder Autom.dev für SERP-only / Multi-Engine), indem du den Endpoint änderst, cx weglässt und ein paar Felder umbenennst.
Hilfe bei Credit-Sizing oder einem Prod-Query-Mix? Starte bei den Google-Search-Docs, vergleiche mit Autom.dev Pricing, oder öffne eine Konversation über die Site.
FAQ
Wann wird die Google Custom Search JSON API abgeschaltet?
Google stellt sie am 1. Januar 2027 ein. Sie ist bereits für neue Kunden geschlossen; bestehende Kunden können sie bis zu diesem Datum nutzen.
Gibt es eine offizielle Google-Search-API für das gesamte Web?
Nicht Self-Serve. Die dokumentierten Optionen decken Site- / begrenzte Domain-Suche (Agent Search / Vertex AI Search) und Enterprise-Grounding ab. Für programmatische Web-weite Ergebnisse verweist Google auf ein Interest-Form.
Was ist die beste Alternative zur Custom Search JSON API?
Kommt auf den Job an. Site Search → Site-Search-Produkt. Bis ~50 Domains in Google Cloud → Agent Search / Vertex AI Search. Web-weites JSON für Apps und Pipelines → eine SERP-API wie Piloterr Google Search. High-Volume-SERP-only (inkl. Engines jenseits von Google) → Autom.dev.
Piloterr oder Autom.dev: welches?
Dieselbe Firma. Piloterr deckt die Google-SERP-Familie ab (Search, Images, Autocomplete, AI Mode). Autom.dev ist das SERP-Sub-Produkt für Google plus Bing, Brave, Yahoo, DuckDuckGo und Baidu, mit Volumen-Pricing. Brauchst du nur Google-JSON-Ergebnisse, passen beide. Brauchst du andere Engines oder Multi-Engine-Failover, nimm Autom.dev.
Brauche ich noch eine Programmable Search Engine (cx)?
Nein. Piloterr Google Search und Autom.dev brauchen nur deinen API-Key und ein query.
Unterstützt Piloterr Google Search Pagination?
Ja. Übergib page (1, 2, …). Custom Search war hier deutlich eingeschränkter; Multi-Page-SERP-Jobs sind ein häufiger Grund, CSE früh zu verlassen.
Wie filtere ich nach dem Migration nach Datum?
Ersetze dateRestrict durch tbs: letzter Tag qdr:d, Woche qdr:w, Monat qdr:m, Jahr qdr:y. Exakte Kalenderbereiche aus CSE mappen nicht 1:1; relative Fenster decken die meisten Monitoring-Fälle ab.