Aller au contenu principal
Piloterr
Retour au blog
12 novembre 2026

Custom Search JSON API Google s'arrête en 2027 : migrer vers Google Search

En bref : l'API Custom Search JSON de Google est fermée aux nouveaux clients et s'arrête pour les utilisateurs existants le 1er janvier 2027. Si votre app ou pipeline envoie une requête et lit des résultats Google en JSON sur le web entier, Google Search sur Piloterr garde le même schéma : requête en entrée, SERP structurée en sortie. La plupart des filtres gl / hl / lr se mappent 1:1. Pour du SERP à volume uniquement, la même équipe propose Autom.dev, une API SERP dédiée avec le même style de paramètres.

La migration tient en quelques lignes, pas en une réécriture.

Ce qui s'arrête

Google indique sur la page overview de Custom Search JSON API :

  • L'API n'est plus disponible pour les nouveaux clients.
  • Les clients existants peuvent l'utiliser jusqu'au 1er janvier 2027.
  • Jusque-là, le pricing reste le même : 100 requêtes gratuites par jour, puis 5 $ pour 1 000 requêtes, plafonné à 10k requêtes par jour.

Pour chercher jusqu'à environ 50 domaines, Google oriente vers Vertex AI Search (parfois présenté comme Agent Search). Pour des résultats sur le web entier, il n'y a pas de produit Google self-serve. Google propose seulement un formulaire d'intérêt.

Source : Google for Developers: Custom Search JSON API.

Choisir le bon remplacement selon ce que vous cherchez vraiment

Custom Search couvrait plusieurs jobs. Ils n'ont pas tous le même successeur.

Ce pour quoi vous utilisez Custom SearchQuoi utiliser à la place
Une barre de recherche sur votre propre siteProgrammable Search Element de Google, ou un outil de site search (Algolia, Typesense, Meilisearch)
Un ensemble de domaines connus ou votre corpus dans Google CloudGoogle Agent Search / Vertex AI Search (la voie « ~50 domaines »)
Résultats web entiers en JSON pour une app, un agent ou un pipelineGoogle Search sur Piloterr, ou Autom.dev si vous n'avez besoin que du SERP
Réponses générées avec citations (Google AI Mode)Google AI Mode, éventuellement couplé à la recherche organique
Travail SEO SERP poussé (ads, AI Overviews, plusieurs pages)Google Search avec pagination page, plus Images / Autocomplete si besoin
Même schéma de requête sur Bing, Brave, Yahoo, DuckDuckGo (ou failover multi-moteurs)Autom.dev : Google plus Bing, Brave, Yahoo, DuckDuckGo, Baidu sur une stack SERP

Le reste de ce guide concerne le cas JSON web entier : vous appelez aujourd'hui customsearch/v1 avec « Search the entire web » activé. Les exemples de code utilisent Piloterr ; Autom.dev suit la même logique avec un autre host quand le SERP suffit.

Piloterr ou Autom.dev ?

Autom.dev est notre sous-produit orienté SERP. Même famille que Piloterr, conçu pour les équipes dont le job, c'est les résultats de recherche : suivi de positions SEO, agents qui n'ont besoin que du JSON SERP, multi-moteurs à volume. La forme d'endpoint est familière : https://api.autom.dev/v1/google/search, x-api-key, query / gl / hl / tbs / page. Voir la doc Autom Google Search. Le pricing est spécialisé SERP (crédits à l'usage, pas de plafond type CSE à 10k/jour).

Choisissez Piloterr pour rester dans la famille Google : Google Search, Images, Autocomplete, AI Mode.

Choisissez Autom.dev pour Google et d'autres moteurs (Bing, Brave, Yahoo, DuckDuckGo, Baidu) sur un seul compte, ou un pricing SERP only à volume.

Même équipe. Même schéma de migration depuis Custom Search. Surface différente selon que vous restez Google-only ou multi-moteurs.

Ce que vous obtenez avec Google Search Piloterr

Le même contrat que vous avez déjà codé : envoyer une requête, recevoir des résultats classés en JSON. Comparé à Custom Search :

Custom Search JSON APIGoogle Search Piloterr
DisponibilitéFermée aux nouveaux ; fin le 1er janv. 2027Ouverte
SetupClé API + Programmable Search Engine (cx)Une x-api-key
Modèle de coût100 gratuites/jour, puis 5 $ / 1k, plafond 10k/jour1 crédit par requête
Plafond journalier10k requêtesPlans à crédits, pas de plafond type CSE à 10k/jour
Pays / languegl, lr, hlMêmes noms : gl, hl, lr, plus cr
Résultats locauxNiveau paysPays + location / uule optionnel (ville)
Filtre sitesiteSearch / siteSearchFilterOpérateurs Google dans query (site:, -site:, …)
Filtre datedateRestrict (d7, w1, …)tbs (qdr:d, qdr:w, qdr:m, qdr:y)
PaginationLimitéepage pour les pages suivantes
PayloadItems organiques + metaRésultats organiques, knowledge graph, related searches, pagination
AuthParamètre keyHeader x-api-key

Docs : Google Search API · Référence API. GET et POST sont tous les deux supportés.

Comment passer de Custom Search à Piloterr

Vous envoyez toujours une requête et lisez du JSON. Après avoir remapé quelques champs, le code qui consomme titres et liens continue de fonctionner.

  1. Créez un compte sur app.piloterr.com et copiez votre clé API.
  2. Mappez les paramètres de requête et les champs de réponse avec les tableaux ci-dessous.
  3. Pointez l'appel HTTP vers https://api.piloterr.com/v2/google/search.

Mapping des paramètres de requête

Paramètre PiloterrRôleÉquivalent Custom Search
queryChaîne de recherche (requis). Opérateurs Google supportésq
glBiais pays (us, fr, uk, …)gl
hlLangue UI / résultatshl
lrRestreindre à une/des langue(s), ex. lang_frlr
crRestreindre à un/des pays, ex. countryFRPlus proche : filtres pays / config moteur
tbsRécence : qdr:h, qdr:d, qdr:w, qdr:m, qdr:ydateRestrict
location / uuleSERP au niveau villePas d'équivalent CSE direct
google_domaingoogle.com, google.fr, …Locale / domaine du moteur
pageNuméro de page de résultatsPartiel / limité en CSE
safeSafeSearch active / offsafe
Header x-api-keyAuthkey
Non requiscx (ID du moteur)

L'include/exclude siteSearch passe dans la requête : site:example.com coffee ou -site:pinterest.com coffee.

Mapping des champs de réponse

Custom SearchGoogle Search Piloterr
items[].titleorganic_results[].title
items[].linkorganic_results[].link
items[].snippetorganic_results[].snippet
items[].displayLinkorganic_results[].domain
items[].formattedUrlorganic_results[].displayed_link
searchInformation.totalResultssearch_information.total_results
organic_results[].position, knowledge_graph, related_searches, pagination

Python : avant et après

Avant : Custom Search JSON API :

Python
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": "fr",
        "hl": "fr",
        "lr": "lang_fr",
        "num": 10,
    },
    timeout=30,
)
for item in resp.json().get("items", []):
    print(item["title"], item["link"])

Après : Google Search Piloterr :

Python
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": "fr",
        "hl": "fr",
        "lr": "lang_fr",
    },
    timeout=30,
)
for result in resp.json().get("organic_results", []):
    print(result["position"], result["title"], result["link"])

Ce qui change vraiment :

  • L'URL de l'endpoint
  • L'auth passe de key (+ cx) au header x-api-key
  • q → query
  • items → organic_results (des champs comme title et link restent familiers)
  • gl / hl / lr gardent les mêmes valeurs

GET fonctionne de la même façon si vous préférez la query string à un body JSON.

Sur Autom.dev, le swap est le même principe : droppez cx, envoyez query + gl / hl, authentifiez avec x-api-key, et pointez vers https://api.autom.dev/v1/google/search (library). Les champs de réponse restent dans le style organic_results.

Au-delà de Google : Bing, Brave, Yahoo, DuckDuckGo

Custom Search était Google-only. Beaucoup de pipelines veulent aujourd'hui un second index pour la redondance, la couverture géo ou le SEO multi-moteurs. Sur Autom.dev, le même schéma requête → JSON marche sur plusieurs moteurs :

Sur Piloterr, restez côté Google avec AI Mode, Images et Autocomplete sur la même clé API que Google Search.

Migrer avant le 1er janvier 2027

Custom Search JSON API s'arrête début 2027. Google n'offre pas de remplaçant self-serve JSON pour le web entier. Si votre code fait déjà « requête → résultats JSON », vous pouvez passer à Google Search (ou Autom.dev pour du SERP only / multi-moteurs) en changeant l'endpoint, en abandonnant cx, et en renommant quelques champs.

Besoin d'estimer les crédits ou de valider un mix de requêtes prod ? Partez des docs Google Search, comparez avec le pricing Autom.dev, ou ouvrez une conversation depuis le site.

FAQ

Quand l'API Custom Search JSON de Google s'arrête-t-elle ?

Google l'arrête le 1er janvier 2027. Elle est déjà fermée aux nouveaux clients ; les clients existants peuvent l'utiliser jusqu'à cette date.

Existe-t-il une API Google officielle pour le web entier ?

Pas en self-serve. Les options documentées couvrent la recherche de site / domaines limités (Agent Search / Vertex AI Search) et le grounding entreprise. Pour des résultats programmatiques sur le web entier, Google renvoie vers un formulaire d'intérêt.

Quelle est la meilleure alternative à Custom Search JSON API ?

Ça dépend du job. Site search → un produit de site search. Jusqu'à ~50 domaines dans Google Cloud → Agent Search / Vertex AI Search. JSON web entier pour apps et pipelines → une API SERP comme Google Search Piloterr. SERP only à volume (y compris d'autres moteurs que Google) → Autom.dev.

Piloterr ou Autom.dev : lequel ?

Même société. Piloterr couvre la famille SERP Google (Search, Images, Autocomplete, AI Mode). Autom.dev est le sous-produit SERP pour Google plus Bing, Brave, Yahoo, DuckDuckGo et Baidu, avec un pricing volume. Si vous n'avez besoin que de résultats Google en JSON, les deux conviennent. Si vous voulez d'autres moteurs ou un failover multi-moteurs, partez sur Autom.dev.

Ai-je encore besoin d'un Programmable Search Engine (cx) ?

Non. Google Search Piloterr et Autom.dev ne demandent que votre clé API et un query.

Google Search Piloterr gère-t-il la pagination ?

Oui. Passez page (1, 2, …). Custom Search était bien plus limité ; les jobs SERP multi-pages sont une raison fréquente de quitter CSE tôt.

Comment filtrer par date après migration ?

Remplacez dateRestrict par tbs : dernier jour qdr:d, semaine qdr:w, mois qdr:m, année qdr:y. Les plages calendaires exactes de CSE ne se mappent pas 1:1 ; les fenêtres relatives couvrent la plupart des cas de monitoring.

À lire aussi

Guides et actualités sur le scraping web, les proxies et l'extraction de données.

Scraping web

Web scraping automobile : suivre les prix des voitures et des pièces sur AutoScout24, Mobile.de, Leboncoin et Autodoc

Comment les plateformes de pricing automobile utilisent les API de scraping pour surveiller les annonces de véhicules d'occasion sur AutoScout24, Mobile.de et Leboncoin, et les prix des pièces sur les 30+ boutiques nationales d'Autodoc. Pipeline, exemples API et script Python.

Josselin Liebe
Josselin Liebe
Lire
Scraping web

Web scraping et brand protection : traquer la contrefaçon sur AliExpress, Alibaba et Amazon

Comment les plateformes de brand protection utilisent les API de scraping pour détecter les contrefaçons, documenter les vendeurs et surveiller les remises en ligne sur AliExpress, Alibaba, Amazon et d'autres marketplaces. Pipeline, exemples API et script Python.

Josselin Liebe
Josselin Liebe
Lire
Scraping web

Migrer depuis NetNut : que faire après la neutralisation du réseau

Google a pris des mesures contre le réseau de proxies NetNut/Popa, avec le FBI et Lumen. Comment repenser votre stack scraping sans gérer de proxies vous-même.

Josselin Liebe
Josselin Liebe
Lire

Prêt à commencer ?

Votre API de scraping web est à un clic. Commencez avec +500 crédits, sans infrastructure à gérer, sans proxies à configurer, et sans carte bancaire.

  • +500 crédits
  • Aucune carte bancaire requise
  • Tous les endpoints inclus