Custom Search JSON API

Alternativa a Google Custom Search JSON API: migra antes del 1 de enero de 2027

Google ha cerrado la Custom Search JSON API a los nuevos clientes y la apagará para todos el 1 de enero de 2027. Semscraper recoge la página de resultados real de Google, renderizada en un navegador, hasta 10 páginas por palabra clave, unos 100 resultados según la consulta, con pago por uso mediante créditos prepago y sin suscripción.

  • La SERP real de Google, no un índice reducido
  • Hasta 10 páginas por palabra clave
  • 1.000 búsquedas de una página por 0,30 €
  • 1.000 SERP gratis
  • Sin tarjeta de crédito

Qué anunció Google, y cuándo

Según la documentación de Google (developers.google.com/custom-search/v1/overview y el centro de ayuda de Programmable Search Engine), consultada el 10 de octubre de 2026.

Desde el 20 de enero de 2026

Los nuevos motores de Programmable Search Engine están limitados a 50 dominios elegidos: la opción «Buscar en toda la Web» ya no se ofrece. Los motores existentes que la usan la conservan hasta el 1 de enero de 2027.

Cerrada a nuevos clientes

Un proyecto nuevo ya no puede activar la Custom Search JSON API. Para buscar en hasta 50 dominios, Google remite a Vertex AI Search; la búsqueda en toda la Web hay que solicitársela a Google.

1 de enero de 2027

Fin de la Custom Search JSON API para los clientes existentes. Toda aplicación que todavía la llame tendrá que haber migrado.

Para qué usos encaja Semscraper

Semscraper no es un clon exacto de Custom Search: es una API que recoge la página de Google tal como la ve un usuario. Sustituye bien algunos usos, no todos.

Sí: seguir Google

Seguimiento de posiciones, vigilancia de la competencia, estudios de SERP, AI Overviews: obtienes los resultados reales de google.es, google.com o de cualquier otro país, con ciudad y dispositivo incluidos.

Sí: alimentar herramientas y agentes

Datasets, enriquecimiento, agentes y pipelines RAG que necesitan lo que Google muestra de verdad. El procesamiento es asíncrono: cuenta con unos veinte segundos de recopilación por búsqueda, no con una respuesta instantánea.

No: la búsqueda interna de tu sitio

Un buscador que debe responder en una fracción de segundo sobre tus propias páginas requiere un motor de búsqueda para sitios, o Vertex AI Search, que Google ofrece para hasta 50 dominios.

Custom Search JSON API o Semscraper: las diferencias

CriterioCustom Search JSON APISemscraper
Origen de los resultadosTu motor de Programmable Search Engine. Incluso configurado para toda la Web, Google indica que solo cubre una parte de su índice y da prioridad a tus propios sitios.La página de resultados real de Google, renderizada en un navegador de verdad.
ContenidoUna lista de resultados web, sin las funciones de la Búsqueda de Google (Oneboxes, búsqueda universal).Cada bloque de la página: resultados orgánicos, anuncios, pack local, People Also Ask, AI Overviews con sus fuentes, y más.
Número de resultados10 por petición, 100 como máximo paginando (start + num no puede superar 100).Hasta 10 páginas de Google en una sola llamada, unos 100 resultados según la consulta.
País, idioma, ciudad, dispositivogl favorece los resultados de un país, hl fija el idioma de la interfaz, lr y cr filtran los documentos.Versión de Google (país e idioma), ciudad o coordenadas GPS, escritorio o móvil.
FuncionamientoSíncrono: la respuesta llega en la misma llamada.Asíncrono: creas las búsquedas (hasta 1.000 por llamada) y luego recuperas los resultados por ID o los recibes en una URL de callback. Unos veinte segundos de recopilación de mediana para una página, unos cincuenta para 10, más la espera en la cola de tu cuenta (medido en 12 millones de SERPs, 5,3 millones de una página y 260.000 de 10 páginas, del 12 de septiembre al 10 de octubre de 2026).
Precio100 consultas gratis al día, después 5 $ por cada 1.000, con un máximo de 10.000 al día.0,30 € por cada 1.000 búsquedas de una página, 2,10 € por cada 1.000 búsquedas de 10 páginas. Sin suscripción ni límite diario, y tu saldo no caduca nunca.
Búsqueda en dominios concretosSí, ahora es el único modo de los nuevos motores (50 dominios).No hay una lista de dominios guardada: el operador site: en la palabra clave limita una búsqueda a un dominio.
Búsqueda de imágenesSí (searchType=image).No. Solo se devuelve el bloque de Imágenes, cuando Google lo muestra en la página de resultados.

Adaptar los parámetros

Los parámetros no son intercambiables: así adaptas tus llamadas. Los operadores de Google pasan tal cual en la palabra clave.

Custom SearchSemscraper
qkeyword
gllocation, la versión de Google, que no es un código de país: gl=es pasa a location=es (google.es), gl=us pasa a location=en (google.com)
hllanguage, que forma un par válido con location: es/es, en/en, fr/fr...
num, startdepth, de 1 a 10 páginas de Google, todas devueltas por la misma llamada
siteSearchsite:ejemplo.es en la palabra clave
exactTermsComillas en la palabra clave
excludeTerms-palabra en la palabra clave
fileTypefiletype:pdf en la palabra clave
lr, crSin equivalente directo: elige la versión de Google y el idioma
searchType=imageSin equivalente
key, cxUna sola clave de API, enviada en la cabecera Authorization: Bearer

Migrar una llamada, paso a paso

La misma necesidad en Python: los 10 primeros resultados orgánicos de una consulta en google.es. La diferencia principal es el funcionamiento en dos tiempos: crear y luego recuperar.

Antes: Custom Search JSON API
import requests

r = requests.get("https://www.googleapis.com/customsearch/v1", params={
    "key": "GOOGLE_API_KEY",
    "cx": "SEARCH_ENGINE_ID",
    "q": "zapatillas running",
    "gl": "es",
    "hl": "es",
    "num": 10,
})
for item in r.json().get("items", []):
    print(item["link"], item["title"], item["snippet"])
Después: Semscraper
import time
import requests

API = "https://api.semscraper.com/v1/serp"
HEADERS = {"Authorization": "Bearer API_KEY"}

# 1. create the search (up to 1,000 keywords per call)
r = requests.post(API, headers=HEADERS, timeout=60, json=[{
    "search_engine": "google_search",
    "keyword": "zapatillas running",
    "location": "es",
    "language": "es",
    "device": "desktop",
    "depth": 1,
}])
r.raise_for_status()
ids = [row["id"] for row in r.json()["data"]]

# 2. fetch the results once ready (about 20 s of collection for a depth-1 search,
#    plus queue time), 10 minutes at most
deadline = time.time() + 600
while ids and time.time() < deadline:
    time.sleep(10)
    r = requests.get(API, headers=HEADERS, timeout=60,
                     params={"ids": ",".join(ids[:100]), "output": "json"})  # 100 IDs per call
    r.raise_for_status()
    for row in r.json()["data"]:
        if row["status"] != "done":
            continue
        ids.remove(row["id"])
        for block in row["results"]:
            if block["type"] == "organic":
                for item in block["items"]:
                    print(item["url"], item["title"], item["description"])

if ids:
    print("Still pending, fetch them later by ID:", ids)

El campo link pasa a ser url, snippet pasa a ser description. Además, cada resultado incluye su posición dentro de su bloque (rank_type), su posición en la página (rank_serp), su página de Google y su posición en píxeles. Para miles de palabras clave: créalas en lotes de 1.000, recupera los resultados en lotes de 100 ID o recíbelos en una URL de callback. Consulta la Bulk SERP API.

Cambia en cuatro pasos

Una migración se prepara: reserva unos días de pruebas antes de apagar la API antigua.

1. Probar

Lanza tus consultas representativas con las 1.000 SERP gratis que recibes al registrarte.

2. Adaptar

Parámetros (gl pasa a location), paso a llamadas asíncronas y campos de respuesta (link pasa a url, snippet pasa a description).

3. Comparar

Pertinencia, cobertura de resultados, plazos y consumo, sobre una muestra de tus consultas reales.

4. Cambiar

Pasa tu aplicación a Semscraper una vez validados los resultados, mucho antes del 1 de enero de 2027.

Lo que cuesta, con el mismo volumen

Precios públicos: Google consultado el 10 de octubre de 2026, Semscraper a la tarifa estándar, antes de los descuentos por recarga.

NecesidadCustom Search JSON APISemscraper
1.000 palabras clave, 1 página (unos 10 resultados)5 $ (1.000 consultas de pago, fuera de la cuota gratuita diaria)0,30 €
1.000 palabras clave, 10 páginas (unos 100 resultados)50 $ (10 consultas de pago por palabra clave, fuera de la cuota gratuita diaria)2,10 €
Más de 10.000 consultas al díaImposible: límite de 10.000 al díaSin límite diario

Si todavía no has usado las 100 consultas gratis del día, cuenta 4,50 $ y 49,50 $. La Custom Search JSON API ya no está disponible para nuevos clientes: estos precios solo se aplican a las cuentas existentes, hasta el 1 de enero de 2027. Precios detallados de Semscraper.

FAQ

Preguntas frecuentes

¿Cuándo deja de funcionar la Custom Search JSON API?
Está cerrada a los nuevos clientes, y Google indica que los clientes existentes tienen hasta el 1 de enero de 2027 para pasar a otra solución.
¿Devuelve Semscraper los mismos resultados que Custom Search?
No, y a menudo esa es la ventaja: Custom Search consulta tu motor de Programmable Search Engine, que solo cubre una parte del índice de Google. Semscraper devuelve la página de resultados real de Google, con todos sus bloques, para el país, el idioma, la ciudad y el dispositivo que elijas.
¿Puedo limitar las búsquedas a mis dominios?
Para un dominio, añade site:tudominio.es a la palabra clave. No hay una lista de dominios guardada como en un motor de Programmable Search Engine. Para una búsqueda interna en tus propios sitios, encaja mejor un motor de búsqueda para sitios o Vertex AI Search.
¿La respuesta es instantánea?
No. Cada página se renderiza en un navegador de verdad: cuenta con una mediana de unos veinte segundos de recopilación para una página y unos cincuenta para 10 páginas. Tiempo mediano de recopilación medido en 12 millones de SERPs (5,3 millones de una página y 260.000 de 10 páginas) del 12 de septiembre al 10 de octubre de 2026; a esto se suma la espera en la cola de tu cuenta, que depende del volumen enviado. Recuperas el resultado por su ID, o te lo enviamos a tu URL de callback.
¿Cuánto cuesta Semscraper después de migrar?
No hay suscripción ni cuota de acceso: pagas cada búsqueda que creas, 0,30 € por cada 1.000 para la primera página. Recuperar los resultados es gratis. Al registrarte tienes 1.000 SERP gratis para probar tus consultas.

Prueba tus consultas antes de la fecha límite

1.000 SERP gratis, sin tarjeta de crédito.