Saltar al contenido principal
Piloterr
Volver al blog
12 de noviembre de 2026

Custom Search JSON API de Google cierra en 2027: migra a Google Search

En resumen: la Custom Search JSON API de Google está cerrada a nuevos clientes y deja de funcionar para usuarios existentes el 1 de enero de 2027. Si tu app o pipeline envía una consulta y lee resultados de Google en JSON de toda la web, Google Search en Piloterr mantiene el patrón: query in, SERP estructurada out. La mayoría de filtros gl / hl / lr mapean 1:1. Para cargas SERP-only a volumen, el mismo equipo ofrece Autom.dev, una API SERP dedicada con el mismo estilo de parámetros.

Migrar son unas pocas líneas, no un rewrite.

Qué se apaga

Google indica en la overview de Custom Search JSON API:

  • La API no está disponible para nuevos clientes.
  • Los clientes existentes pueden usarla hasta el 1 de enero de 2027.
  • Hasta entonces, el precio se mantiene: 100 consultas gratis al día, luego 5 $ por 1.000 consultas, con tope de 10k consultas al día.

Para buscar hasta unas 50 dominios, Google apunta a Vertex AI Search (a veces Agent Search). Para resultados de toda la web, no hay producto self-serve de Google, solo un formulario de interés.

Fuente: Google for Developers: Custom Search JSON API.

Elige el reemplazo según lo que buscas de verdad

Custom Search cubría varios trabajos. No comparten un solo sucesor.

Para qué usas Custom SearchQué usar en su lugar
Buscador en tu propio sitioProgrammable Search Element de Google, o site search (Algolia, Typesense, Meilisearch)
Un conjunto de dominios o tu corpus en Google CloudGoogle Agent Search / Vertex AI Search (ruta «~50 dominios»)
Resultados de toda la web en JSON para app, agente o pipelineGoogle Search en Piloterr, o Autom.dev si solo necesitas SERP
Respuestas generadas con citas (Google AI Mode)Google AI Mode, opcionalmente con búsqueda orgánica
SEO SERP profundo (ads, AI Overviews, muchas páginas)Google Search con paginación page, más Images / Autocomplete si hace falta
El mismo patrón de query en Bing, Brave, Yahoo, DuckDuckGo (o failover multi-motor)Autom.dev: Google más Bing, Brave, Yahoo, DuckDuckGo, Baidu en un stack SERP

El resto de esta guía es el caso JSON de toda la web: hoy llamas a customsearch/v1 con «Search the entire web» activado. Los ejemplos de código usan Piloterr; Autom.dev es la misma idea con otro host cuando el SERP basta.

¿Piloterr o Autom.dev?

Autom.dev es nuestro subproducto centrado en SERP. Misma familia que Piloterr, pensado para equipos cuyo trabajo son los resultados de búsqueda: tracking de rankings SEO, agentes que solo necesitan JSON SERP, multi-motor a volumen. La forma del endpoint es familiar: https://api.autom.dev/v1/google/search, x-api-key, query / gl / hl / tbs / page. Ver la doc Autom Google Search. El pricing es especializado SERP (créditos pay-per-use, sin techo tipo CSE de 10k/día).

Elige Piloterr para quedarte en la familia Google: Google Search, Images, Autocomplete, AI Mode.

Elige Autom.dev para Google y otros motores (Bing, Brave, Yahoo, DuckDuckGo, Baidu) en una sola cuenta, o pricing SERP-only a volumen.

Mismo equipo. Mismo patrón de migración desde Custom Search. Superficie distinta según si te quedas Google-only o multi-motor.

Qué obtienes con Google Search de Piloterr

El mismo contrato que ya construiste: enviar una query, recibir resultados ordenados en JSON. Frente a Custom Search:

Custom Search JSON APIGoogle Search Piloterr
DisponibilidadCerrada a nuevos; fin 1 ene 2027Abierta
SetupAPI key + Programmable Search Engine (cx)Una x-api-key
Coste100 gratis/día, luego 5 $ / 1k, tope 10k/día1 crédito por request
Tope diario10k consultasPlanes por créditos, sin techo tipo CSE de 10k/día
País / idiomagl, lr, hlMismos nombres: gl, hl, lr, más cr
Resultados localesNivel paísPaís + location / uule opcional (ciudad)
Filtro de sitiositeSearch / siteSearchFilterOperadores Google en query (site:, -site:, …)
Filtro de fechadateRestrict (d7, w1, …)tbs (qdr:d, qdr:w, qdr:m, qdr:y)
PaginaciónLimitadapage para siguientes páginas
PayloadItems orgánicos + metaOrgánicos, knowledge graph, related searches, pagination
AuthParámetro keyHeader x-api-key

Docs: Google Search API · Referencia API. GET y POST están soportados.

Cómo pasar de Custom Search a Piloterr

Sigues enviando una query y leyendo JSON. Tras remapear unos campos, el código que consume títulos y links sigue funcionando.

  1. Crea una cuenta en app.piloterr.com y copia tu API key.
  2. Mapea parámetros de request y campos de response con las tablas de abajo.
  3. Apunta la llamada HTTP a https://api.piloterr.com/v2/google/search.

Mapeo de parámetros de request

Parámetro PiloterrQué haceEquivalente Custom Search
queryCadena de búsqueda (obligatorio). Soporta operadores Googleq
glSesgo de país (us, es, fr, …)gl
hlIdioma de UI / resultadoshl
lrRestringir a idioma(s), p. ej. lang_eslr
crRestringir a país(es), p. ej. countryESMás cercano: filtros de país / config del motor
tbsRecencia: qdr:h, qdr:d, qdr:w, qdr:m, qdr:ydateRestrict
location / uuleSERP a nivel ciudadSin equivalente CSE directo
google_domaingoogle.com, google.es, …Locale / dominio del motor
pageNúmero de página de resultadosParcial / limitado en CSE
safeSafeSearch active / offsafe
Header x-api-keyAuthkey
No hace faltacx (ID del motor)

El include/exclude de siteSearch pasa a la query: site:example.com coffee o -site:pinterest.com coffee.

Mapeo de campos de response

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: antes y después

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

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

Qué cambia de verdad:

  • URL del endpoint
  • Auth de key (+ cx) al header x-api-key
  • q → query
  • items → organic_results (campos como title y link siguen familiares)
  • gl / hl / lr mantienen los mismos valores

GET funciona igual si prefieres query string a body JSON.

En Autom.dev el swap es la misma idea: quita cx, envía query + gl / hl, autentica con x-api-key y apunta a https://api.autom.dev/v1/google/search (library). Los campos de response siguen el estilo organic_results.

Más allá de Google: Bing, Brave, Yahoo, DuckDuckGo

Custom Search era solo Google. Muchos pipelines quieren hoy un segundo índice por redundancia, cobertura geo o SEO multi-motor. En Autom.dev el mismo patrón query → JSON funciona en varios motores:

En Piloterr, quédate en Google con AI Mode, Images y Autocomplete en la misma API key que Google Search.

Migra antes del 1 de enero de 2027

Custom Search JSON API para a principios de 2027. Google no ofrece un reemplazo self-serve JSON de toda la web. Si tu código ya hace «query → resultados JSON», puedes pasar a Google Search (o Autom.dev para SERP-only / multi-motor) cambiando el endpoint, quitando cx y renombrando unos campos.

¿Necesitas dimensionar créditos o validar un mix de queries en prod? Empieza por la docs de Google Search, compara con el pricing de Autom.dev, o abre una conversación desde el sitio.

FAQ

¿Cuándo cierra la Custom Search JSON API de Google?

Google la discontinua el 1 de enero de 2027. Ya está cerrada a nuevos clientes; los existentes pueden usarla hasta esa fecha.

¿Hay una API oficial de Google para toda la web?

No self-serve. Las opciones documentadas cubren búsqueda de sitio / dominios limitados (Agent Search / Vertex AI Search) y grounding enterprise. Para resultados programáticos de toda la web, Google remite a un formulario de interés.

¿Cuál es la mejor alternativa a Custom Search JSON API?

Depende del trabajo. Site search → producto de site search. Hasta ~50 dominios en Google Cloud → Agent Search / Vertex AI Search. JSON de toda la web para apps y pipelines → una API SERP como Google Search de Piloterr. SERP-only a volumen (incluidos motores más allá de Google) → Autom.dev.

¿Piloterr o Autom.dev: cuál?

Misma empresa. Piloterr cubre la familia SERP de Google (Search, Images, Autocomplete, AI Mode). Autom.dev es el subproducto SERP para Google más Bing, Brave, Yahoo, DuckDuckGo y Baidu, con pricing por volumen. Si solo necesitas resultados Google en JSON, ambos valen. Si necesitas otros motores o failover multi-motor, usa Autom.dev.

¿Sigo necesitando un Programmable Search Engine (cx)?

No. Google Search de Piloterr y Autom.dev solo necesitan tu API key y un query.

¿Google Search de Piloterr soporta paginación?

Sí. Pasa page (1, 2, …). Custom Search era mucho más limitado; los jobs SERP multipágina son una razón habitual para dejar CSE pronto.

¿Cómo filtro por fecha tras migrar?

Sustituye dateRestrict por tbs: último día qdr:d, semana qdr:w, mes qdr:m, año qdr:y. Los rangos de calendario exactos de CSE no mapean 1:1; las ventanas relativas cubren la mayoría de casos de monitoring.

Más para leer

Guías y noticias sobre web scraping, proxies y extracción de datos.

Web Scraping

Web scraping para automoción: seguir precios de coches y piezas en AutoScout24, Mobile.de, Leboncoin y Autodoc

Cómo las plataformas de pricing automovilístico usan APIs de scraping para vigilar anuncios de coches de ocasión en AutoScout24, Mobile.de y Leboncoin, y precios de piezas en las más de 30 tiendas nacionales de Autodoc. Diseño del pipeline, ejemplos de API y un script en Python.

Josselin Liebe
Josselin Liebe
Leer
Web Scraping

Web scraping para brand protection: cazar falsificaciones en AliExpress, Alibaba y Amazon

Cómo las plataformas de brand protection usan APIs de scraping para detectar anuncios falsificados, capturar evidencias del vendedor y vigilar las republicaciones en AliExpress, Alibaba, Amazon y otros marketplaces. Diseño del pipeline, ejemplos de API y un script en Python.

Josselin Liebe
Josselin Liebe
Leer
Web Scraping

Migración desde NetNut: qué hacer tras el cierre de la red

Google tomó medidas contra la red de proxies NetNut/Popa junto al FBI y Lumen. Cómo replantear tu stack de scraping sin gestionar proxies por tu cuenta.

Josselin Liebe
Josselin Liebe
Leer

¿Listo para empezar?

Tu API de web scraping está a un clic. Comienza con +500 créditos, sin infraestructura que configurar, sin proxies que gestionar y sin necesidad de tarjeta de crédito.

  • +500 créditos
  • Sin tarjeta de crédito
  • Todos los endpoints incluidos