Alternativa a Google Custom Search API: guía de migración antes del cierre del 1 de enero de 2027

Google Custom Search JSON API cierra el 1 de enero de 2027. Mapa de parámetros, 59 llamadas reales y la factura: 5 USD frente a 0,694 USD por 1000.

Ilustración de un viejo edificio de archivo de piedra a la izquierda. Su persiana metálica está medio bajada y un reloj en la pared marca casi las doce, la fecha de cierre. Un puente corto de madera lleva a una máquina pequeña a la derecha con borde verde azulado. Pilas de fichas en blanco avanzan por una cinta sobre el puente hacia la máquina nueva, que representa el paso de las búsquedas a una API nueva.

Google cerró la Custom Search JSON API a clientes nuevos, y los clientes actuales pierden el acceso el 1 de enero de 2027. En nuestras pruebas reales, la herramienta web de EveryInfra cuesta 0,694 USD por cada 1000 llamadas, cerca del 14 % de los 5 USD de Google, y con 10.000 consultas al día la factura mensual baja de 1485 USD a 208,20 USD. Antes de migrar, resuelve dos cosas: nuestro parámetro site devolvió cero resultados en 2 de 3 intentos, así que escribe site: dentro de la consulta; y si copias start o cx de Google, recibes un 422 en lugar de que se ignoren en silencio.

Esta es una guía de migración. Está pensada para equipos que todavía llaman a customsearch/v1 o que usaban la Bing Web Search API antes de su retiro. Responde a tres preguntas: ¿a dónde migrar antes de la fecha límite, qué código cambiar y cuánto costará cada mes?

Para los demás proveedores usamos solo documentación pública, páginas de precios y hilos de foros. Abrimos y guardamos cada página el 8 de noviembre de 2026, entre las 00:14 y las 00:40 hora de Singapur. No creamos cuentas en otros servicios ni llamamos a sus API. Todos los números de nuestro lado salen de llamadas reales hechas ese mismo día.

Ya tenemos una comparación de seis API de búsqueda para agentes de IA y una guía sobre qué herramienta de búsqueda usar en cada fase de una tarea; aquí no repetimos ninguna de las dos. Si todavía no has decidido migrar, empieza por este. Este artículo trata una sola tarea: salir de Google Custom Search y de Bing Web Search con el menor riesgo posible.

Ilustración de un viejo panel de conexiones a la izquierda con muchos huecos redondos. Cables de colores van desde ahí hasta un panel nuevo más pequeño a la derecha. La mayoría de los cables entra directamente en el hueco que le corresponde. Dos cables llevan adaptadores en la punta y un cable cuelga suelto, sin hueco. Un hueco del panel nuevo tiene un anillo verde azulado.
Migrar es cambiar enchufes: casi todos los parámetros conectan directo, algunos necesitan adaptador y unos pocos no tienen hueco.

La respuesta corta: elegir una alternativa a Google Custom Search API según el uso

La Custom Search JSON API se usa para tres trabajos distintos. Hay quien la usa como buscador interno de su propio sitio web. Hay quien busca en toda la web para un producto, un monitor de precios o un conjunto de datos. Y hay quien se la da a un agente de IA como herramienta de búsqueda. Google solo ofrece reemplazo para el primer caso.

La tabla indica a dónde puede ir cada grupo, el precio por 1000 llamadas y qué hay que cambiar. Los precios son precios públicos o precios de nuestro catálogo, leídos el 08-11-2026.

Para qué la usaA dónde puede migrarPor 1000 llamadasQué cambia
Buscador de su propio sitio, hasta 50 dominios, con caja de búsquedaGoogle Programmable Search Element (la versión gratis muestra anuncios de Google)0 USDSustituir las llamadas JSON por el código incrustado
Buscador de su sitio, con JSON y control del ordenGoogle Agent Search Enterprise (antes Vertex AI Search)4,00 USDAlmacén de datos nuevo, aplicación nueva, autenticación nueva, unos 14 pasos
Búsqueda en toda la web para un producto, monitor o datosHerramienta web de EveryInfra0,694 USDRenombrar parámetros; start pasa a page
Búsqueda en toda la web con resultados de Bingbing/search de EveryInfra0,556 USDSin count ni offset; solo la primera página
Búsqueda en toda la web con país e idiomaweb/search de EveryInfra1,389 USDgl pasa a country, hl pasa a language
Página de resultados completa con anuncios y panelesSerpAPI, Serper, Bright Datade 0,30 a 25,00 USDParámetros y respuesta nuevos
Búsqueda para agentes con texto de la páginaTavily, Firecrawl, o nuestra web más readde 1,50 a 8,00 USDPasar a una llamada de herramienta

Hay un detalle fácil de pasar por alto. El reemplazo que propone Google, Agent Search, cubre la búsqueda en sitios web de hasta 50 dominios. La entrada del blog de Programmable Search Engine del 20-01-2026 pide a quien busca en toda la web que contacte con Google por un producto aparte. Ese producto no tiene precio público ni alta directa. Por eso, si usas la API JSON para buscar en toda la web, Google no te da nada que puedas activar hoy.

Calendario del cierre: qué cerraron Google y Microsoft

Las dos grandes API públicas de búsqueda web cerraron en unos dieciocho meses. El aviso de ciclo de vida de Microsoft indica que las Bing Search APIs se retiraron el 11 de agosto de 2025. Todas las instancias quedaron fuera de servicio y no se aceptan altas nuevas. Microsoft recomienda Grounding with Bing Search dentro de Azure AI Agents.

Google avanzó por etapas. La Site Restricted JSON API dejó de funcionar el 8 de enero de 2025. El 20 de enero de 2026, los motores nuevos perdieron la opción de buscar en toda la web. El mismo día, la Custom Search JSON API se cerró a clientes nuevos.

La captura de abajo muestra la sección de precios de la página para desarrolladores de Google. La abrimos el 8 de noviembre de 2026 a las 00:2x hora de Singapur, con la página en inglés. El pie de la página indica que se actualizó por última vez el 18 de febrero de 2026. El recuadro verde azulado contiene los datos de partida de todos los cálculos de este artículo.

Captura de la sección Pricing de la página de descripción general de Custom Search JSON API en Google for Developers. Un recuadro verde azulado marca el párrafo completo: el precio vale para clientes actuales hasta el cierre del 1 de enero de 2027, la API está cerrada a clientes nuevos, hay 100 consultas gratis al día y las adicionales cuestan 5 USD por 1000, hasta 10.000 al día.
Texto original de Google: el precio para clientes actuales termina el 1 de enero de 2027. Captura del 08-11-2026. Captura de Google for Developers
FechaQué pasóFuente
08-01-2025Google cerró la Custom Search Site Restricted JSON APIdevelopers.google.com
11-08-2025Microsoft retiró las Bing Search APIslearn.microsoft.com
20-01-2026Motores nuevos limitados a 50 dominios; la API JSON se cierra a clientes nuevosBlog de Programmable Search Engine
Abril de 2026Vertex AI Search pasa a llamarse Agent Search, dentro de Gemini Enterprise Agent PlatformTabla de nombres de Google Cloud
Hacia el 09-09-2026Google publica y luego retira la documentación de una Web Search Service API solo para sociosSearch Engine Journal
16-10-2026Un gestor de la comunidad de Google vuelve a publicar el aviso con la misma fechaComunidad de Programmable Search
01-01-2027Se apaga la API JSON; los motores antiguos pierden "Search the entire web"developers.google.com

El calendario muestra una tendencia. El cierre de 2027 no es la primera vez que Google recorta sus API de búsqueda: la Site Restricted JSON API de la tabla cerró en enero de 2025. Para ti, esto significa que incluso migrar a Agent Search requiere margen para el próximo cambio. Envuelve cada llamada de búsqueda en una función propia y así un cambio futuro de proveedor tocará un solo archivo.

¿Existe una API de búsqueda de Google en noviembre de 2026?

La pregunta más repetida en los foros es directa: ¿existe todavía una API de búsqueda de Google? A fecha del 8 de noviembre de 2026, un desarrollador normal no puede obtener una. No hay ninguna API de Google para buscar en toda la web que puedas activar por tu cuenta. Abrimos cada página oficial de Google y Microsoft, y el resultado está en la tabla.

Opción oficialQué buscaQuién puede usarlaPrecioEstado el 08-11-2026
Custom Search JSON APIToda la web o sitios elegidosSolo clientes actuales5 USD por 1000, 100 gratis al díaSe apaga el 01-01-2027
Programmable Search ElementHasta 50 dominiosCualquieraGratis, con anunciosSigue como caja de búsqueda incrustada
Agent Search EnterpriseBúsqueda en sitios, hasta 50 dominiosClientes de Google Cloud4,00 USD por 1000; 10.000 consultas de prueba al mesSigue; requiere un almacén de datos
Producto de búsqueda en toda la webToda la webPor solicitudNo públicoSolo un formulario de interés
Web Search Service APIToda la webSocios con acuerdo firmadoNo públicoLa documentación da 404
Grounding with Bing SearchToda la webSuscripción de pago de Azure14 USD por 1000Solo dentro de Azure AI Foundry, sin resultados en bruto

Las dos últimas filas merecen más detalle. Search Engine Journal informó el 11-09-2026 que Google había publicado documentación de una Web Search Service API. Cada solicitud necesitaba un ID de cliente de socio y la dirección IP del usuario final. Search Engine Roundtable informó el 28-09-2026 que esa documentación ya no estaba. Pedimos la dirección antigua con curl el 8 de noviembre y recibimos un 404. Hoy no es una opción que se pueda incluir en un plan de migración.

En el lado de Microsoft, la página de precios de Grounding with Bing indica 14 USD por 1000 transacciones. La misma página dice que la salida no se puede usar directamente en otras aplicaciones. La documentación de uso añade que ni el desarrollador ni el usuario final ven los resultados en bruto. Se obtiene una respuesta del modelo con citas, no una página de resultados en JSON. Es un producto distinto de la antigua Bing Web Search API y no sirve a quien necesita los datos.

Precios de la API de búsqueda de Google frente a las alternativas

El precio es lo primero que revisa un equipo que migra. La tabla compara el precio de Google, los reemplazos de Google y Microsoft y cinco API de búsqueda de terceros. La unidad es la misma para todos: 1000 búsquedas de 10 resultados cada una. Los precios de terceros salen de cada página de precios, leída el 08-11-2026 entre las 00:16 y las 00:20 hora de Singapur. En los planes por créditos usamos la regla de cada proveedor sobre cuántos créditos gasta una búsqueda.

Nuestros precios salen del campo price_usd del catálogo de herramientas de búsqueda y del catálogo de capacidades de datos. Los comparamos con el billing.charged_usd de cada respuesta real.

ServicioPlan de pago de entradaPlan más bajo de la páginaCuota gratisFuente
Google Custom Search JSON API5,00 USD5,00 USD100 al díaoverview
Google Agent Search Enterprise4,00 USD4,00 USD10.000 de prueba al mesPrecios de Agent Search
Grounding with Bing Search14,00 USD14,00 USDNingunaPrecios de Bing
SerpAPI25,00 USD3,75 USD250 al messerpapi.com/pricing
Serper1,00 USD0,30 USD2500 una vezserper.dev
Tavily8,00 USD5,00 USD1000 créditos al mesDocumentación de Tavily
Firecrawl7,60 USD1,50 USD1000 créditos al mesfirecrawl.dev/pricing
Bright Data SERP API1,50 USD1,30 USD5000 al mesbrightdata.com
web de EveryInfra0,694 USD0,694 USD1 USD de pruebacatálogo
bing/search de EveryInfra0,556 USD0,556 USDIgualcatálogo
web/search de EveryInfra1,389 USD1,389 USDIgualcatálogo

Estas son las cuentas. El plan Starter de SerpAPI cuesta 25 USD al mes por 1000 búsquedas, así que la entrada es de 25 USD por 1000. Su plan más bajo, Cloud 1M, cuesta 3750 USD por 1.000.000 de búsquedas, es decir, 3,75 USD por 1000. El paquete Starter de Serper cuesta 50 USD por 50.000 créditos, y la propia página indica 1,00 USD por 1000. Su paquete más grande indica 0,30 USD por 1000, y todos los créditos de Serper caducan a los 6 meses.

La documentación de Tavily dice que una búsqueda básica cuesta 1 crédito, a 0,008 USD por uso o 0,005 USD en el plan Growth. La página de facturación de Firecrawl indica 2 créditos por cada 10 resultados de búsqueda. Su plan Hobby cuesta 19 USD al mes por 5000 créditos, es decir, 2500 búsquedas o 7,60 USD por 1000. Su plan Scale cuesta 749 USD al mes por 1.000.000 de créditos, o 500.000 búsquedas a 1,50 USD por 1000. La SERP API de Bright Data cuesta 1,5 USD por 1000 en pago por uso, y su plan Scale cuesta 499 USD al mes con 380.000 solicitudes incluidas.

Gráfico de barras horizontales en escala logarítmica, cada línea vale 10 veces la anterior: precio de entrada por 1000 búsquedas. De mayor a menor: SerpAPI 25,00 USD, Grounding with Bing Search 14,00 USD, Tavily 8,00 USD, Firecrawl 7,60 USD, Google Custom Search JSON API 5,00 USD, Google Agent Search Enterprise 4,00 USD, Bright Data 1,50 USD, EveryInfra web/search 1,389 USD, Serper 1,00 USD, EveryInfra web 0,694 USD, EveryInfra bing/search 0,556 USD. La barra de EveryInfra web es verde azulada.

El gráfico deja una idea clara. En la unidad más básica, una búsqueda con 10 resultados, los 5 USD de Google quedan en la parte media alta y hay muchas opciones más baratas. Pero el gráfico solo muestra planes de entrada. Con mucho volumen, Serper llega a 0,30 USD por 1000, por debajo de nuestros 0,694 USD. Los 25 USD de SerpAPI compran una página de resultados completa y estructurada, con anuncios, paneles y resultados locales. Primero decide qué campos necesitas y después compara precios.

Factura mensual: las 100 consultas gratis y el tope de 10.000 al día

El precio de Google tiene dos límites: 100 consultas gratis al día y un máximo de 10.000 al día. Por esos dos límites, la factura real cambia mucho según el volumen. Usamos meses de 30 días y cinco volúmenes diarios.

Consultas al díaConsultas al mesGoogle Custom SearchAgent Search Enterprise`web` de EveryInfra`bing/search` de EveryInfra
10030000 USD (todo gratis)0 USD (dentro de la prueba)2,08 USD1,67 USD
100030.000135,00 USD80,00 USD20,82 USD16,68 USD
300090.000435,00 USD320,00 USD62,46 USD50,04 USD
10.000300.0001485,00 USD1160,00 USD208,20 USD166,80 USD
30.000900.000Supera el tope diario, no es posible3560,00 USD624,60 USD500,40 USD

Las fórmulas son sencillas. La factura de Google es (consultas diarias − 100) × 30 × 0,005 USD, y se detiene en 10.000 al día. La de Agent Search es (consultas mensuales − 10.000) × 0,004 USD, y cubre búsqueda en sitios de hasta 50 dominios, no toda la web. Nuestras dos columnas son llamadas del mes por precio de catálogo. No tenemos cuota gratis mensual; las cuentas nuevas reciben 1 USD de prueba, válido 24 horas desde que se reclama.

Gráfico de líneas con eje vertical logarítmico: factura mensual con 100, 1000, 3000, 10.000 y 30.000 consultas al día. Google Custom Search JSON API: 0, 135, 435 y 1485 USD; no es posible con 30.000 al día. Agent Search Enterprise: 0, 80, 320, 1160 y 3560 USD. EveryInfra web, en verde azulado: 2,08, 20,82, 62,46, 208,20 y 624,60 USD. EveryInfra bing/search: 1,67, 16,68, 50,04, 166,80 y 500,40 USD.

El gráfico muestra tres cosas. Primero, por debajo de 100 consultas al día Google es gratis y nosotros costamos 2,08 USD al mes. En ese tramo Google es más barato hasta el cierre; no hay prisa, pero prueba otra API antes de fin de diciembre. Segundo, a partir de unos cientos de consultas diarias, la diferencia crece 7,2 veces, que es 5 USD dividido entre 0,694 USD. Con 10.000 al día, la diferencia es de 1276,80 USD al mes.

Tercero, el límite de Google de 10.000 al día es un tope duro, y para superarlo los equipos abrían más proyectos. Nosotros no tenemos tope diario; el límite es por minuto. La página de precios indica 60 llamadas por minuto por cuenta, compartidas entre todas sus claves. Eso permite hasta 86.400 llamadas al día. Para más, puedes comprar un paquete de velocidad de 30 días o alcanzar un tramo de recarga más alto.

Veamos un ejemplo de una tienda en línea en México que vigila precios de la competencia. Supongamos 1500 búsquedas en un día laborable y 300 en un día de fin de semana. Un mes de 30 días con 22 días laborables y 8 de fin de semana suma 35.400 búsquedas. En Google, tras las 100 gratis de cada día, la factura es (1400 × 22 + 200 × 8) × 0,005 USD = 162,00 USD. En nuestra herramienta web, el mismo mes cuesta 35.400 × 0,000694 USD = 24,57 USD.

Mapa de parámetros: Custom Search JSON API en la API nueva

Los parámetros son la parte más laboriosa de la migración. La referencia cse.list de Google enumera más de 30 parámetros. Llevamos los 22 que de verdad se usan a las tres entradas de EveryInfra. La columna "Comprobado" indica qué llamada real probó cada fila. Las filas sin prueba dicen "sin probar" y siguen la descripción del catálogo.

Parámetro de GoogleQué hace (documentación de Google)Herramienta `web``web/search``bing/search`Comprobado
keyClave en la URLCabecera Authorization: BearerIgualIgual401 real
cxID del motor de búsquedaNo existe; da 422No existeNo existe422 real
qConsultaqkeywordkeywordReal
numDe 1 a 10 resultadosnum, de 1 a 10Fijo, hasta 10limitReal
startÍndice del primer resultado; start+num ≤ 100page (empieza en 1)No existeNo existe; solo la primera página422 y paginación reales
glPaís del usuariolocation (nombre o código de 2 letras)countrycountryReal
hlIdioma de la interfazNo existelanguagelanguage (con país)Real
crSolo documentos de un paísNo existe; location se acercaNo existeNo existeSin probar
lrSolo documentos en un idiomaNo existelanguage se acercalanguage se acercaSin probar
siteSearchIncluir o excluir un sitiosite, o site: en qsite: en keywordsite: en keywordReal
siteSearchFilteri incluye, e excluye-site: en qIgualIgualSin probar
dateRestrictÚltimos N días, semanas, meses o añosafter, before (fechas)No existeNo existeReal
sort=dateOrdenar por fechaNo existeNo existeNo existe—
exactTermsFrase obligatoriaComillas en qIgualIgualReal
excludeTermsPalabra prohibida-palabra en qIgualIgualReal
orTermsAl menos una de estasOR en qIgualIgualSin probar
fileTypeExtensión de archivofiletype:pdf en qIgualIgualReal
safeSafeSearchNo existeNo existeNo existe—
searchType=imageBúsqueda de imágenesNo existe; usa la herramienta mediaNo existeNo existeSin probar
filterFiltro de contenido duplicadoNo existeNo existeNo existe—
c2coffChino simplificado y tradicionalNo existeNo existeNo existe—
linkSite, lowRange, highRange, rightsEnlaces, rangos numéricos, licenciasNo existeNo existeNo existe—

Dos notas sobre la tabla. La primera: cx representa toda la configuración de un motor, con listas de sitios, exclusiones, refuerzos, sinónimos y resultados destacados. Todo eso se configura en el panel de Google, no en la solicitud. Nuestra herramienta web no tiene el concepto de "motor de búsqueda". El límite de sitio va en cada solicitud con site: y las exclusiones con -site:; los refuerzos y destacados no tienen equivalente. Si tu motor tiene decenas de reglas de sitio, conviértelas en una plantilla de consulta en tu código.

La segunda: nuestra herramienta web no tiene parámetro de idioma. Google usa hl para el idioma de la interfaz y lr para el idioma de los documentos. En nuestro lado, solo web/search y bing/search aceptan language. Con la herramienta web, el idioma de la consulta decide el idioma de los resultados, y en la mayoría de los casos basta. Si vigilas resultados en varios idiomas, usa web/search.

Flujo animado, una vuelta cada 8 segundos. Un recuadro verde azulado recorre seis pasos: 01 inventario de cx, parámetros y volumen diario; 02 mapa de parámetros q, num, start, gl y siteSearch; 03 una semana en paralelo comparando URL con las mismas consultas; 04 cambio, con la clave antigua como respaldo; 05 vigilar errores 422, resultados vacíos y 429; 06 limpieza, borrar la clave antigua antes del 31 de diciembre.

Prueba real 1: parámetros de Google en la herramienta `web`

El mapa de parámetros sale de la documentación; esta sección sale de llamadas reales. El 8 de noviembre de 2026, de 00:20 a 00:32 hora de Singapur, enviamos los patrones más comunes de Google a la herramienta web. También copiamos tal cual start y cx de Google y count de Bing. Cada fila es una respuesta original, y el tiempo es el tiempo total medido en el cliente.

Hora (SGT)Patrón de GoogleLo que enviamosResultadoTiempoCobro
00:20:27Sin keySin cabecera Authorization401, "Missing API key"165 ms0 USD
00:20:30start=11"start": 11422; allowed lista 7 parámetros211 ms0 USD
00:20:34cx, gl"cx": "…", "gl": "us"422; señala primero cx111 ms0 USD
00:20:42siteSearch=developers.google.com"site": "developers.google.com"200, 0 resultados, reembolsado1281 ms0 USD
00:20:51gl=sg"location": "sg"10 resultados, todos sobre centros de comida de Singapur1591 ms0,000694 USD
00:20:59dateRestrict=m1"after": "2026-10-09"10 resultados, todos posteriores al 9 de octubre2437 ms0,000694 USD
00:21:09start=11"page": 210 resultados, ninguno repetido de la página 11924 ms0,000694 USD
00:21:18start=101 (Google da error)"page": 1110 resultados, solo 2 siguen en tema4285 ms0,000694 USD
00:21:29num=5"num": 55 resultados2376 ms0,000694 USD
00:21:38exactTerms + excludeTerms"\"programmable search engine\" -reddit"7 resultados, todos con la frase, ninguno de reddit2889 ms0,000694 USD
00:21:48fileType=pdffiletype:pdf en q7 resultados, todos PDF4533 ms0,000694 USD
00:30:42siteSearch dentro de la consultasite:developers.google.com en q10 resultados, todos de ese dominio1271 ms0,000694 USD
00:32:05siteSearch=en.wikipedia.org"site": "en.wikipedia.org"9 resultados, todos de ese dominio2313 ms0,000694 USD

La tabla deja cuatro hallazgos.

El primero: el parámetro site no es fiable, y es el hallazgo que más debemos contar con honestidad. Con developers.google.com, el parámetro site devolvió 0 resultados. El mismo dominio escrito como site:developers.google.com dentro de la consulta devolvió 10, todos páginas oficiales de Custom Search. Con en.wikipedia.org, las dos formas devolvieron 9 resultados. Con docs.python.org y "asyncio timeout", las dos formas devolvieron 0 a las 00:30:26 y a las 00:30:34 hora de Singapur, y ambas se reembolsaron.

Nuestra recomendación es directa. Pasa el valor de siteSearch de Google a la consulta como site: y no dependas del parámetro site. Durante la prueba en paralelo, prueba los dominios que más limitas. La misma consulta de docs.python.org con site: en bing/search devolvió 503 tras 17,3 segundos, así que del lado de Bing no tenemos resultados con límite de sitio. En todas las llamadas que devolvieron resultados, no apareció ningún otro dominio.

El segundo: la paginación no tiene el límite de 100 resultados, pero lo que viene después sirve poco. La documentación de Google dice que la API JSON nunca devuelve más de 100 resultados, y start más num por encima de 100 da error. Nuestra page 11, que cubre los resultados 101 a 110, devolvió 10 resultados y se cobró. Solo 2 de los 10 seguían hablando de "custom search json api shutdown"; el resto eran registros de cambios de sitios técnicos. Si tu código antiguo divide palabras clave para esquivar el límite de 100, puedes mantenerlo, pero no esperes resultados útiles en la posición 200.

El tercero: los filtros de fecha usan fechas de calendario. dateRestrict=m1 significa el último mes. Nuestro after recibe una fecha real, así que calcula hoy menos 30 días en tu código, como en el ejemplo de más abajo. En esa llamada, 6 de 10 resultados eran enlaces de redirección del tipo google.com/goto, que requieren otra solicitud para resolverse. La llamada a la página 11 de esta misma prueba también trajo 6 redirecciones de 10. En cambio, las 12 consultas normales de web en la prueba real 2 devolvieron 114 resultados sin ninguna redirección. Solo los puntos del código con filtro de fecha o páginas profundas necesitan resolver redirecciones antes de guardar las URL.

El cuarto: los parámetros copiados se bloquean en lugar de ignorarse en silencio. Tanto start como cx devolvieron 422. El campo allowed listó siete nombres: after, before, location, num, page, q, site. El campo next_steps indicó quitar el parámetro y confirmó que no se cobró nada. Esto ayuda a migrar, porque Google suele ignorar un parámetro mal escrito, y el código antiguo puede arrastrar parámetros que nunca funcionaron, como daterestrict en minúsculas en lugar de dateRestrict. Tras la migración devuelven 422 desde la primera llamada: parece un error de la API nueva, pero es un problema antiguo que por fin se ve. La respuesta trae param, allowed y next_steps, así que se corrige de una vez.

Sin equivalente directo: qué hacer con hl, safe, searchType y sort

Algunas filas del mapa dicen "No existe". Son las que más frenan una migración, así que aquí damos un reemplazo para cada una. Cada propuesta se basa en nuestras 12 consultas y 13 pruebas de parámetros, no en una suposición a partir de la documentación.

Empecemos por hl. Google usa hl para el idioma de la interfaz, que cambia un poco el orden, y lr para limitar los resultados a un idioma. Nuestra herramienta web solo tiene location, que es un país. En la prueba real 2, la consulta "receta paella valenciana" con es devolvió 8 resultados, y 7 eran páginas en español. La consulta mexicana "precio del dolar hoy mexico" con mx devolvió 10 páginas en español. Una consulta en chino sobre comida en Singapur, con sg, devolvió 10 páginas en chino, mezclando escritura simplificada y tradicional.

En la mayoría de los casos, el idioma de la consulta más el país bastan. Si necesitas fijar el idioma, usa web/search, que tiene language y cuesta 0,001389 USD por llamada, el doble que web. Resérvalo para los pocos puntos del código que necesitan un idioma fijo. La mezcla de escrituras chinas es justo lo que controla c2coff en Google, y nosotros no tenemos ese interruptor.

Sigue safe. En Google, safe=active filtra contenido para adultos, y ninguna de nuestras tres entradas tiene ese interruptor. Si tu producto es para menores o escuelas, o exige mucha seguridad de marca, añade un filtro propio. El más sencillo es una lista de dominios bloqueados que se aplica a cada url después de la llamada. Una opción más estricta es pasar títulos y fragmentos al modelo de moderación que ya uses. Añade ese filtro durante la prueba en paralelo, no después del cambio.

Después, searchType=image. Google busca imágenes con un parámetro más. Nosotros separamos imágenes y vídeo en la herramienta media, con q, kind y num, a 0,000694 USD por llamada. La forma de la respuesta es distinta de la de web, así que en los puntos de búsqueda de imágenes hay que cambiar también el código que lee la respuesta. No probamos media para este artículo, por eso solo damos sus parámetros.

Por último, sort=date. El orden por fecha de Google solo funciona en motores con datos estructurados, y muchos equipos vieron que nunca les funcionó. No tenemos parámetro de orden. Acota la ventana con after y before, y ordena en tu lado por el campo de fecha. En la prueba real 1, los 10 resultados de la llamada con after tenían fecha. Pero las fechas son texto tal cual, como "Oct 19, 2026" o "5 days ago", así que conviértelas antes. Para noticias recientes encaja mejor la herramienta news o google_news/search; esta última devolvió 503 en nuestros tres intentos, así que no tenemos datos de resultados.

Prueba real 2: 12 consultas en tres entradas y cuánto coinciden

Los parámetros tienen equivalente; la siguiente pregunta es si los resultados se parecen. Elegimos 12 consultas sobre documentación técnica, productos de consumo, vivienda en Singapur, español de España y de México, una consulta en chino y un tema del Reino Unido. Entre las 00:22 y las 00:30 hora de Singapur, enviamos cada consulta a la herramienta web, a web/search y a bing/search. Son 36 llamadas, todas con HTTP 200. Contamos coincidencias por URL tras quitar el protocolo, www. y la barra final, sin contar redirecciones; las cifras son URL únicas por consulta.

ConsultaPaísURL únicas en `web`URL únicas en `web/search`URL únicas en `bing/search``web` y `web/search``web` y `bing/search`En las tres
google custom search api alternativeus1010101011
python requests timeout retryus9910431
best running shoes 2026us993711
hdb resale flat prices 2026sg9107833
free weather apius101091044
kubernetes ingress nginx retirementus101010753
receta paella valencianaes8910722
precio del dolar hoy mexicomx10610632
Comida en Singapur (consulta en chino)sg101081011
openai agents sdk mcp toolsus9106622
site search for university websitegb1010101033
bing search api retirementus1010101011
Total—114113103952924

En 12 llamadas, la herramienta web devolvió 114 resultados, y 95 de ellos aparecieron también en web/search, una coincidencia del 83 %. Solo 29 aparecieron en bing/search, el 25 %. Solo 24 URL aparecieron en las tres entradas, y la unión de las tres sumó 204 URL distintas. Las dos primeras entradas se parecen mucho, y bing/search ordena la web a su manera. Con "bing search api retirement", web y web/search devolvieron las mismas 10 URL, y bing/search solo compartió 1.

Gráfico de barras horizontales agrupadas: tres barras por cada una de las 12 consultas. En cada consulta, la coincidencia entre la herramienta web y web/search (verde azulado), la coincidencia entre la herramienta web y bing/search, y las URL presentes en las tres. Los totales son 95, 29 y 24, sobre 114 resultados de la herramienta web. En seis consultas, la herramienta web y web/search comparten las 10 URL. La mayor coincidencia entre la herramienta web y bing/search es 5, en kubernetes ingress nginx retirement.

Estas cifras sirven de dos maneras. Primero, ningún proveedor nuevo reproducirá exactamente tus resultados de Google. En la prueba en paralelo, pregúntate si los resultados bastan para tu producto, no cuál es el porcentaje de coincidencia. Segundo, algunos productos no pueden perder fuentes, como un monitor de reputación de marca. Esos productos pueden llamar a web y a bing/search: juntas cubrieron 188 URL distintas en 12 consultas, un 65 % más que una sola entrada, por 0,000694 USD más 0,000556 USD por consulta.

Las dos consultas en español merecen una mirada para los lectores de España y América Latina. Con "receta paella valenciana" en es, web y web/search compartieron 7 URL, y bing/search solo 2 con web. Con "precio del dolar hoy mexico" en mx, web/search devolvió solo 6 URL únicas, frente a 10 de las otras dos entradas, y aun así se cobró la llamada completa: solo se reembolsan las respuestas con cero resultados. Lo mismo pasó con "best running shoes 2026" en bing/search, que devolvió 3. En consultas poco comunes, el costo real por resultado es mayor que el precio de catálogo. Si tu producto vive de consultas en español, incluye un buen lote de ellas en la prueba en paralelo, porque el comportamiento por idioma cambia más que el promedio.

Cada entrada tiene sus puntos fuertes en los campos que devuelve. La tabla muestra la cobertura de campos en las 12 consultas.

EntradaResultados en brutoCon fragmentoCon fechaCon subenlacesPrecio por llamada
Herramienta web114110 (96,5 %)46 (40,4 %)00,000694 USD
web/search114105 (92,1 %)40 (35,1 %)7 (6,1 %)0,001389 USD
bing/search103101 (98,1 %)55 (53,4 %)00,000556 USD
Gráfico de barras agrupadas: cobertura de campos de las tres entradas en 12 consultas. Fragmento: herramienta web 96,5 % (verde azulado), web/search 92,1 %, bing/search 98,1 %. Fecha: 40,4 %, 35,1 %, 53,4 %. Subenlaces: 0 %, 6,1 %, 0 %.

Las fechas son texto tal cual en las tres entradas, por ejemplo "Oct 19, 2026" o "5 days ago", así que conviértelas antes de guardarlas. Los items de Google no tienen un campo de fecha estándar: las fechas se esconden en las metaetiquetas de pagemap y muchas veces faltan. Después de migrar, tendrás fecha en más resultados que antes.

Campos de respuesta: items[] pasa a ser results[]

También hay que cambiar el código que lee la respuesta. La estructura de respuesta de Google sigue OpenSearch 1.1. Los resultados están en el arreglo items, con title, htmlTitle, link, displayLink, snippet, htmlSnippet, formattedUrl y pagemap. El objeto exterior trae searchInformation.totalResults y queries.nextPage. Nuestras tres entradas listan sus campos en response_fields del catálogo, y comprobamos cada uno con nuestras respuestas reales.

Campo de GoogleHerramienta `web``web/search``bing/search`Nota
items[].titleresults[].titleresults[].titleresults[].titleTexto plano, sin negritas
items[].linkurlurlurlAlgunos son redirecciones; ver prueba real 1
items[].displayLinkNo existe; tome el dominio de urlNo existedisplayed_urlEstilo de ruta en bing/search
items[].snippetsnippettexttextEntre 100 y 400 caracteres
items[].pagemapNo existeimage_url (algunos)No existeDatos estructurados por otra vía
Sin equivalentepublishedpublished_atdate_textFecha de publicación, texto tal cual
Sin equivalenteNo existesub_links, rankrankSubenlaces y posición
searchInformation.totalResultsNo existeNo existeNo existeSin total estimado
queries.nextPageSuma 1 a pageNo existeNo existe—
Sin equivalentebilling.charged_usdbilling.charged_usdbilling.charged_usdImporte cobrado en esta llamada

La trampa más común es totalResults. Mucho código antiguo lo usa para saber si hay resultados o para contar páginas. Tras la migración ese campo no existe, así que comprueba si results está vacío. La segunda trampa es htmlSnippet: algunos buscadores internos lo insertan directo en el HTML para mostrar coincidencias en negrita. Después de migrar, el resaltado lo haces tú.

Cómo cambiar el código: una función de Python antes y después

Este es un código antiguo típico. Llama a customsearch/v1 con requests y reúne los primeros 30 resultados.

python
import requests

def google_cse(q, pages=3):
    out = []
    for i in range(pages):
        r = requests.get("https://www.googleapis.com/customsearch/v1", params={
            "key": GOOGLE_KEY, "cx": CX, "q": q, "num": 10,
            "start": 1 + i * 10, "gl": "mx", "dateRestrict": "m1",
        }, timeout=30)
        items = r.json().get("items", [])
        out += [{"title": x["title"], "url": x["link"], "snippet": x.get("snippet", "")} for x in items]
        if not items:
            break
    return out

La herramienta web de EveryInfra requiere cuatro cambios. Cambia la URL y el método de GET a POST. Pasa la clave de la URL a una cabecera. Renombra los parámetros: start pasa a page, gl pasa a location y dateRestrict=m1 pasa a una fecha after. Renombra los campos: items pasa a results y link pasa a url. Borra cx.

python
import os, datetime, requests

def everyinfra_web(q, pages=3):
    after = (datetime.date.today() - datetime.timedelta(days=30)).isoformat()
    out = []
    for page in range(1, pages + 1):
        r = requests.post("https://api.everyinfra.com/api/v1/search",
            headers={"Authorization": f"Bearer {os.environ['EVERYINFRA_API_KEY']}"},
            json={"tool": "web", "params": {"q": q, "num": 10, "page": page,
                                            "location": "mx", "after": after}},
            timeout=60)
        r.raise_for_status()
        rows = r.json().get("results", [])
        out += [{"title": x["title"], "url": x["url"], "snippet": x.get("snippet", "")} for x in rows]
        if not rows:   # las páginas vacías no se cobran; paramos aquí
            break
    return out

También puedes probar primero una llamada con curl. El cuerpo de la solicitud es el mismo.

bash
curl -s https://api.everyinfra.com/api/v1/search \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tool":"web","params":{"q":"precio del dolar hoy","num":10,"location":"mx"}}'

Hay dos comportamientos distintos de Google que tu código debe manejar. El primero es el 422 ante un parámetro desconocido (ver el cuarto hallazgo de la prueba real 1): trátalo como "corrige el parámetro", no como "reintenta". El segundo es el 429: cada cuenta tiene 60 llamadas por minuto por defecto y, por encima, recibe 429 con retry_after, así que los procesos por lotes deben esperar y reintentar.

Alternativa a la Bing Search API: migrar desde Bing Web Search v7

La Bing Web Search API dejó de funcionar el 11 de agosto de 2025. Muchos equipos que todavía buscan un reemplazo de Bing pasaron entonces a una solución provisional y ahora quieren volver a comparar precios. Nuestra capacidad bing/search busca con la sintaxis de Bing y devuelve la primera página, unos 10 resultados web. El precio de catálogo es de 0,000556 USD por llamada, es decir, 0,556 USD por 1000. La tabla lleva los parámetros de Bing v7 a los nuestros.

Parámetro de Bing v7Qué hace`bing/search`Nota
qConsulta, con operadores como site:keywordHasta 2048 caracteres
countResultados por llamada, 10 por defecto, máximo 50limitEnviar count da 422
offsetResultados que se saltan, para paginarNo existeSolo la primera página
mktMercado, como es-MXcountry + languageSe divide en dos parámetros
setLangIdioma de la interfazlanguageSolo funciona junto con country
ccCódigo de paíscountry—
freshnessDay, Week, Month o un rango de fechasNo existeUse after en la herramienta web
safeSearchOff, Moderate, StrictNo existe—
responseFilterSolo páginas web, noticias, etc.No existePara noticias, google_news/search

El parámetro que más se equivoca al venir de Bing es count. A las 00:20:38 hora de Singapur enviamos count: 20, como haría alguien que viene de Bing. La respuesta 422 listó cuatro nombres en allowed: keyword, country, language y limit; el número de resultados va en limit. La misma respuesta trae una pista did_you_mean basada en la ortografía, que al escribir este artículo decía country, algo que no sirve a quien viene de Bing. Por eso conviene renombrar con la lista allowed. A las 00:31:15 enviamos limit: 5 y recibimos 5 resultados en 4,46 segundos, con un cobro de 0,000556 USD.

Latencia: tiempo total en las tres entradas

Google devuelve searchInformation.searchTime, que es el tiempo de búsqueda dentro de sus servidores. Nosotros medimos el tiempo total en el cliente, desde la solicitud hasta la respuesta completa, enviada desde Singapur por internet pública. Esa cifra importa más a tus usuarios. En 12 consultas, la herramienta web tuvo una mediana de 1,75 segundos, con un mínimo de 1,27 y un máximo de 2,72. web/search tuvo una mediana de 2,16 segundos. bing/search tuvo una mediana de 4,54 segundos y una llamada más lenta de 9,25 segundos.

Gráfico de dispersión: tiempo total en segundos de 12 consultas en cada una de las tres entradas. Los puntos de la herramienta web, en verde azulado, están entre 1,27 y 2,72 segundos, con mediana de 1,75. web/search está entre 1,48 y 2,80 segundos, con mediana de 2,16. bing/search está entre 2,74 y 9,25 segundos, con mediana de 4,54.

En un buscador interno donde el usuario espera, los 1 a 3 segundos de web se acercan a la experiencia de Google. Los 4 a 9 segundos de bing/search no encajan en un camino que ve el usuario; úsela para procesos en segundo plano. Además, uno de nuestros cuatro errores temporales fue una llamada a bing/search que devolvió 503 tras 17,3 segundos. Los procesos en segundo plano necesitan un tiempo de espera de 60 segundos o más, y reintentos.

Fallos, resultados vacíos y errores: qué se cobra

La documentación de Google no dice si las solicitudes fallidas se cobran; solo dice que se factura por consulta. La página de precios de SerpAPI indica que solo cuentan las búsquedas correctas, y que no cuentan las de caché, con error ni fallidas. También dice que una respuesta con 100 resultados y una vacía cuentan igual, como 1 búsqueda. Nuestra regla es que los fallos y los resultados vacíos no cuestan nada. En este artículo hicimos 59 llamadas reales; se cobraron 48, por un total de 0,039858 USD. Estas son las otras 11, cada una con su respuesta original.

Hora (SGT)EntradaCasoHTTPCobroQué dice la respuesta
00:20:27webSin clave4010 USD"Nothing was charged"
00:20:30webstart copiado de Google4220 USDLista 7 parámetros válidos
00:20:34webcx copiado de Google4220 USDIgual
00:20:38bing/searchcount copiado de Bing4220 USDdid_you_mean dice country (debería ser limit)
00:20:42webParámetro site, 0 resultados2000 USDempty_result_refunded
00:22:00google_news/searchNo disponible temporalmente, intento 15030 USDretry_after: 60, fallo 1 de 3
00:30:26webParámetro site, 0 resultados2000 USDempty_result_refunded
00:30:34website: en la consulta, 0 resultados2000 USDempty_result_refunded
00:30:51bing/searchNo disponible temporalmente, 17,3 s5030 USDrequest_failed_refunded
00:31:26google_news/searchNo disponible temporalmente, intento 2 (9 min 26 s después)5030 USDFallo 2 de 3
00:32:24google_news/searchNo disponible temporalmente, intento 3 (58 s después, sin time_window)5030 USDSigue diciendo fallo 2 de 3

La respuesta 503 de google_news/search trae retryable: true, retry_after: 60 y max_retries: 2, y su next_steps confirma que no hubo cobro. Nuestros tres intentos se separaron 9 minutos 26 segundos y 58 segundos, y el tercero ya no llevaba time_window. Los tres devolvieron 503, así que el servicio estuvo caído durante ese rato y no fue un fallo aislado. Por eso no tenemos datos de resultados, y para las consultas de noticias solo damos los parámetros. Un proceso por lotes puede seguir retry_after y parar en max_retries.

El reembolso de resultados vacíos importa durante la migración. En la prueba en paralelo, envías tal cual un lote de consultas antiguas, y algunas pueden no devolver nada en la API nueva, como las llamadas con site de arriba. Esas llamadas no cuestan nada; solo pagas las que devuelven resultados.

Captura de una respuesta de la API en una tarjeta de código oscura. La solicitud de arriba usa la herramienta web con la frase entre comillas programmable search engine, un signo menos para excluir reddit y num 10. La respuesta de abajo muestra dos resultados, de developers.google.com/custom-search y de support.google.com/programmable-search, con el campo published vacío. La última línea, charged_usd 0.000694 dentro de billing, tiene un recuadro verde azulado. La cabecera dice 2026-11-08 00:21:38 SGT, HTTP 200, 2889 ms.
Una respuesta real: frase entre comillas más una palabra excluida, 7 resultados, cobro de 0,000694 USD. Captura de respuesta de la API de EveryInfra

Conectarlo a un agente de IA: configuración MCP y una llamada completa

Muchos equipos usaban la Custom Search JSON API como herramienta de búsqueda para un agente, no para una página web. Nuestra dirección MCP remota es https://api.everyinfra.com/mcp. El 8 de noviembre de 2026, a las 00:2x hora de Singapur, una llamada tools/list sin clave devolvió 12 herramientas. La de búsqueda es everyinfra_search, que recibe tool y params, igual que el cuerpo de la solicitud REST. En clientes con MCP remoto, como Claude Code o Cursor, la configuración queda así:

json
{
  "mcpServers": {
    "everyinfra": {
      "type": "http",
      "url": "https://api.everyinfra.com/mcp",
      "headers": { "Authorization": "Bearer ${EVERYINFRA_API_KEY}" }
    }
  }
}

A las 00:31:56 hora de Singapur llamamos a everyinfra_search por MCP con {"tool": "web", "params": {"q": "custom search json api discontinued january 1 2027", "num": 5}}. A los 2,35 segundos devolvió 5 resultados. El primero fue la página de descripción general de Custom Search JSON API en Google. Su fragmento decía que los clientes actuales tienen hasta el 1 de enero de 2027, con fecha Feb 18, 2026, igual que el pie de página que vimos en la propia página. La llamada costó 0,000694 USD, lo mismo que por REST, y el modelo recibe el mismo JSON con billing.charged_usd, así que el agente puede llevar su propio gasto.

Si usabas una clase envoltorio de búsqueda de Google en un marco como LangChain, lo más sencillo es escribir una función de herramienta propia. Usa la función everyinfra_web de arriba y regístrala como herramienta del marco; así, un cambio futuro de proveedor solo toca esa función. La especificación MCP 2026-07-28 eliminó el saludo de inicialización y volvió el protocolo sin estado. Conectar servidores remotos es más fácil que hace un año, y nuestra página MCP muestra la configuración de cada cliente.

Cuándo encaja mejor otro proveedor

No tienes por qué migrar con nosotros. En los casos de la tabla encaja mejor otra opción, y lo decimos claramente.

Su situaciónMejor opciónPor qué
Buscar solo en sus 50 dominios o menos, dentro de una páginaProgrammable Search ElementGratis y Google lo mantiene; no tenemos caja de búsqueda incrustable
Buscador interno con reglas de orden propias o respuestas generadasGoogle Agent Search EnterpriseCrea un índice, refuerza y controla el orden; nosotros damos resultados de la web abierta
Millones de llamadas al mes, solo títulos, enlaces y fragmentosPaquete Ultimate de SerperPrecio público de 0,30 USD por 1000, por debajo de nuestros 0,694 USD; los créditos caducan a los 6 meses
Páginas de resultados completas: anuncios, paneles, resultados locales, comprasSerpAPI, Bright Data SERP APIJSON estructurado de toda la página; SerpAPI lista decenas de motores
Búsqueda para agentes con texto de la página en una sola llamadaTavilyCada resultado trae texto relevante; nosotros necesitamos web más read
Rastrear un sitio entero y pasarlo a MarkdownFirecrawlRastrear es su producto principal; nuestra herramienta crawl toma hasta 20 páginas por llamada
Resultados y contrato de la propia GoogleSolicitar el producto de búsqueda web de GoogleSolo Google puede ofrecerlo; precio no público

Un punto de SerpAPI merece su propia nota. Su página de precios menciona un "US Legal Shield" en los planes altos, con cobertura legal de hasta 2 millones de USD para extraer y analizar resultados de búsqueda. Si tu equipo legal lo exige, nosotros no lo ofrecemos. Sobre la caducidad de créditos de Serper, nuestro artículo de alternativas a Serper muestra la cuenta: con 1000 llamadas al mes, el precio real del paquete más pequeño es de 8,33 USD por 1000.

Lo que no podemos hacer

Esta sección enumera nuestros límites para quien toma la decisión. Nuestra herramienta web no es una API oficial de Google, su orden puede diferir de google.com y no garantizamos posiciones de Google. Los rastreadores de posiciones y los informes SEO necesitan posiciones exactas y páginas completas. Deberían usar un servicio de páginas de resultados como SerpAPI, o probar un lote de términos en nuestro web/search, que tiene campo rank.

La tabla resume los demás límites y qué hacer con cada uno.

Lo que no tenemosQué hacer
Equivalente de searchType=imageUsar la herramienta media, con otros parámetros y otra respuesta
Interruptor SafeSearchFiltrar por dominio o con su propio modelo de moderación
Parámetro de idioma en webUsar web/search con language
Tope diario de 10.000No existe; el límite es de 60 llamadas por minuto y los picos esperan turno
Caja de búsqueda gratis con anunciosConstruir tú la interfaz del buscador interno

Dos límites más importan en una migración. Primero, cobramos de un saldo prepagado por llamada, sin factura mensual de la nube ni contratos de descuento por uso comprometido. Los equipos que necesitan factura y pago empresarial deben comprobar que su proceso financiero acepta saldo prepagado. Segundo, no tenemos un documento de SLA para tu expediente de compras. En este artículo, google_news/search falló tres veces y bing/search una vez, y las tablas muestran cada caso. Para puntos de alta disponibilidad, conecta dos entradas y cambia de una a otra si falla; si fallan las dos, no pagas nada.

Qué vigilar después del cambio

El cambio no es el final. Durante las dos primeras semanas, revisa tres cifras cada día. Las tres se calculan con las respuestas, sin sistema de monitoreo adicional.

CifraDe dónde saleValor normalQué revisar primero si sube
Tasa de resultados vacíosresults vacío0 de 12 consultas normales en nuestra pruebaPuntos del código que usan el parámetro site
Número de errores 422Estado HTTP y paramCasi 0 desde el segundo díaScripts antiguos con nombres de Google
Total cobrado al díaSuma de billing.charged_usdLlamadas × precio de catálogoBucles y paginación sin condición de parada

La primera cifra es la tasa de resultados vacíos; si sube, busca puntos del código que sigan usando el parámetro site (ver la prueba real 1). Los vacíos no cuestan nada, así que la factura no crece, pero tus usuarios notan el "no hay resultados" antes que tu equipo de finanzas.

La segunda cifra es el número de errores 422. Registra el campo param de cada uno y ordena por frecuencia; el primer día suelen venir de funciones poco usadas, como una tarea de cierre de mes, y en uno o dos días deberían quedar cerca de cero.

La tercera cifra es el total cobrado al día. Suma billing.charged_usd de cada respuesta y compáralo con tu estimación: web cuesta 0,000694 USD por llamada, bing/search 0,000556 USD y web/search 0,001389 USD. Si el total real es claramente mayor, busca un bucle que repite la misma consulta o una paginación sin condición de parada. Google te frenaba a 10.000 al día y nosotros no, así que fija siempre un número máximo de páginas.

Lista de migración en seis pasos

Este es el trabajo en forma de lista. Cada paso tiene una acción y su motivo. Siguiendo este orden, puedes terminar el cambio a mediados de diciembre y conservar dos semanas de margen.

  1. Inventario: busca customsearch/v1 y cx= en tu código. Anota cada punto de llamada, sus parámetros y su volumen diario.
  2. Mapa de parámetros: renómbralos con el mapa de arriba. Marca los puntos que usan safe, searchType=image o sort, porque no tienen equivalente directo.
  3. Una semana en paralelo: envía las mismas consultas reales a la API antigua y a la nueva. Compara coincidencia de URL, vacíos y latencia.
  4. Cambio: haz de la API nueva el camino principal. Mantén la clave antigua como respaldo hasta finales de diciembre.
  5. Vigilancia de errores: revisa los 422 (cambios olvidados), los vacíos (uso de site) y los 429 (exceso del límite por minuto).
  6. Limpieza: borra el cx y la clave de Google antes del 31 de diciembre de 2026. Así, los errores de enero no parecerán un problema nuevo.

El paso 3 es el que más se salta y el que más importa. Nuestra propia prueba muestra que los resultados de entradas distintas coinciden menos de lo que se espera, como se ve en la prueba real 2. Ninguna parte está equivocada; los servicios de búsqueda ordenan de forma distinta. El objetivo de la prueba en paralelo no es "igual que Google", sino "suficiente para nuestro producto". Si tu producto revisa los 10 primeros resultados en busca de malas noticias sobre una marca, prueba 50 marcas reales y lee los resultados a mano. Escribe los criterios de aprobación antes de la prueba, no después de ver los resultados.

La prueba en paralelo también cuesta dinero, aunque poco. La tabla supone 500 consultas reales al día durante 7 días, es decir, 3500 llamadas en cada lado.

Lado de la pruebaCálculoCosto en 7 días
Herramienta web de EveryInfra3500 × 0,000694 USD2,43 USD
bing/search de EveryInfra (opcional)3500 × 0,000556 USD1,95 USD
Google Custom Search(500 − 100) × 7 × 0,005 USD14,00 USD
Total—18,38 USD

La prueba completa cuesta menos de 20 USD, mucho menos que un incidente en producción. Los vacíos y los fallos no cuestan nada, así que puedes añadir consultas raras y consultas limitadas a un sitio sin coste extra.

Cambios recientes, de octubre a noviembre de 2026

Las API de búsqueda cambiaron rápido en el último mes. Estos puntos afectan directamente a una migración, y cada fila dice qué significa para ti.

FechaCambioQué significa para ti
16-10-2026Un gestor de la comunidad de Google volvió a publicar el aviso de cierre de enero en el foro de ayudaNo hay señales de aplazamiento; planifica para el 1 de enero
23-10-2026Firecrawl publicó un artículo sobre alternativas a Google Search JSON API con precios leídos ese díaLos terceros compiten por estos usuarios; revisa tú cada página de precios
27-10-2026Otro proyecto existente informó de un 403 "project has no access" en el foro de ayudaLos clientes actuales pueden perder el acceso antes; no esperes a la última semana de diciembre
03-11-2026SerpAPI publicó serpapi-mcp v2.1.0 con parámetros de motores actualizados; la v2.2.0 del 04-11-2026 añadió extractLos servicios de páginas de resultados ahora leen páginas; la frontera entre productos se mueve
06-11-2026AddSearch publicó una guía de migración del buscador interno en tres grupos: hasta 50 dominios, más de 50 y API JSONEl buscador interno y la búsqueda en toda la web necesitan respuestas distintas

El punto del 27 de octubre requiere atención. El hilo se titula "Custom Search JSON API 403: project has no access despite enabled API and configured engine". Quien lo publica dice que la consola muestra la API activada y el motor configurado, pero las solicitudes devuelven 403. Hay hilos parecidos desde febrero, como este del 21-02-2026. Así que "los clientes actuales mantienen el acceso hasta el 1 de enero" puede no cumplirse en todos los proyectos. Si tu producto depende de la búsqueda, empieza ya la prueba en paralelo.

Primeros pasos: tres pasos para cambiar

Primero, regístrate en el inicio rápido y obtén una clave de API. Las cuentas nuevas que marcan con estrella los dos repositorios everyinfra/everyinfra-agent-plugins y everyinfra/seo-skills en GitHub pueden reclamar 1 USD de prueba en la consola. Eso alcanza para unas 1440 búsquedas web y vale 24 horas desde que se reclama. Segundo, ejecuta el comando curl de arriba con tu consulta más habitual y revisa results y billing.charged_usd. Tercero, sustituye la llamada antigua por la función de Python de arriba, o añade la configuración MCP a tu agente.

La página del producto de búsqueda web tiene la referencia completa de la herramienta. Puedes probar cada capacidad de datos en línea en el mercado, y los precios están en la página de precios. Para buscar por país e idioma, mira la página de la capacidad web/search. Para Bing, mira bing/search, y para noticias, google_news/search. Los resúmenes de plataforma están en las páginas de búsqueda web, Bing y Google News.

Preguntas frecuentes

¿Existe una API de búsqueda de Google?

Sí, pero un desarrollador nuevo ya no puede activar una API de Google para buscar en toda la web. La Custom Search JSON API está cerrada a clientes nuevos y se apaga el 1 de enero de 2027. Agent Search cubre como máximo 50 dominios. El producto para toda la web requiere solicitud y su precio no es público. La pregunta viene de las sugerencias de búsqueda de Google: "is there a google search api" y "does google have a search api".

¿Cómo funcionan los precios de la API de búsqueda de Google y hay algo gratis?

Según la página de Google, los clientes actuales tienen 100 consultas gratis al día y después pagan 5 USD por 1000, con un máximo de 10.000 al día, hasta el 1 de enero de 2027. Con las 10.000 diarias completas, un mes cuesta 1485 USD. Agent Search Enterprise cuesta 4,00 USD por 1000, con 10.000 consultas de prueba al mes. El Programmable Search Element incrustado es gratis, pero muestra anuncios, y Google no tiene una API JSON gratuita y permanente para toda la web. La pregunta viene de las sugerencias de búsqueda de Google: "google search api pricing", "google custom search api pricing" e "is google search api free".

¿Cuál es la búsqueda en toda la web más barata para 60.000 consultas al mes cuando cierre Custom Search?

Un hilo de Reddit en r/googlecloud hace justo esta pregunta. Su autor hacía 40.000 consultas al mes, pronto 60.000, en toda la web, y quería un precio cercano a 5 USD por 1000. Con los precios de este artículo, 60.000 llamadas al mes cuestan 41,64 USD en nuestra herramienta web y 33,36 USD en bing/search. Un paquete Starter de Serper cuesta 50 USD por 50.000 llamadas en 6 meses. El plan Searcher de SerpAPI cuesta 725 USD al mes por 100.000 búsquedas. La elección depende de si necesitas páginas de resultados completas.

¿Qué alternativas hay a la Bing Search API?

Microsoft recomienda Grounding with Bing Search, a 14 USD por 1000, solo dentro de Azure AI Foundry y sin resultados en bruto. Para resultados en bruto, usa un servicio de páginas de resultados (SerpAPI y Bright Data admiten Bing) o nuestra bing/search, a 0,556 USD por 1000. La pregunta viene de las sugerencias de búsqueda de Google: "bing search api alternative" y "bing search api replacement".

¿Por qué Custom Search API devuelve 403 "This project does not have the access"?

Es el error estándar de los proyectos creados después del 20 de enero de 2026. Un gestor de la comunidad de Google lo confirmó en este hilo del foro de ayuda. El 27 de octubre, un proyecto existente informó del mismo error. Un proyecto nuevo no tiene forma de obtener acceso, así que debe migrar a otra API. La pregunta viene de una búsqueda relacionada en Google: "This project does not have the access to Custom Search JSON API".

Referencias

  1. Custom Search JSON API, descripción general (cerrada a clientes nuevos, fin el 1 de enero de 2027, 5 USD por 1000, 100 gratis al día, tope de 10.000 al día), Google for Developers, actualizado el 18-02-2026, leído el 08-11-2026.
  2. Método cse.list (q, num, start, gl, hl, cr, lr, siteSearch, dateRestrict, safe, searchType), Google for Developers, leído el 08-11-2026.
  3. Estructura de la respuesta Search (items, searchInformation, queries.nextPage), Google for Developers, leído el 08-11-2026.
  4. Custom Search JSON API: introducción (clave, cx, OpenSearch 1.1), Google for Developers, leído el 08-11-2026.
  5. Uso de REST para llamar a la API (URL de la solicitud, máximo 100 resultados por consulta), Google for Developers, leído el 08-11-2026.
  6. Custom Search Site Restricted JSON API (cerró el 8 de enero de 2025), Google for Developers, leído el 08-11-2026.
  7. Operador de búsqueda site:, Google Search Central, leído el 08-11-2026.
  8. Dirección de la Custom Search JSON API, Google, leído el 08-11-2026.
  9. Updates to our Web Search Products (motores nuevos limitados a 50 dominios), Programmable Search Engine Blog, 20-01-2026, leído el 08-11-2026.
  10. Update sites in your search engine (cambios desde el 20 de enero de 2026), Programmable Search Engine Help, leído el 08-11-2026.
  11. Hilo de la comunidad: Updates to our web search products, Programmable Search Engine Community, respuesta nueva el 16-10-2026, leído el 08-11-2026.
  12. Hilo de la comunidad: Custom Search JSON API 403, project has no access, Programmable Search Engine Community, 27-10-2026, leído el 08-11-2026.
  13. Hilo de la comunidad: 403 This project does not have the access to Custom Search JSON API, Programmable Search Engine Community, leído el 08-11-2026.
  14. Hilo de la comunidad: Custom Search API full web search solution (respuesta del gestor de la comunidad), Programmable Search Engine Community, respuesta del 03-03-2026, leído el 08-11-2026.
  15. Migrate from Custom Search JSON API, Google Cloud, leído el 08-11-2026.
  16. Cambios de nombre de Vertex AI (Vertex AI Search pasa a ser Agent Search), Google Cloud, leído el 08-11-2026.
  17. Precios de Agent Search (Standard 1,50 USD y Enterprise 4,00 USD por 1000, 10.000 consultas de prueba al mes), Google Cloud, leído el 08-11-2026.
  18. Google Documents Partner-Only API For Full Web Search Results, Search Engine Journal, 11-09-2026, leído el 08-11-2026.
  19. Google Web Search Service API Documentation Removed, Search Engine Roundtable, 28-09-2026, leído el 08-11-2026.
  20. Google documents a partner-only Web Search Service API as Custom Search shutdown nears, SEO Forum, leído el 08-11-2026.
  21. Retiro de Bing Search API (11 de agosto de 2025), Microsoft Learn, leído el 08-11-2026.
  22. Parámetros de consulta de Bing Web Search API v7 (q, count, offset, mkt, setLang, freshness), Microsoft Learn, leído el 08-11-2026.
  23. Grounding with Bing Search (respuestas para agentes, sin resultados en bruto), Microsoft Learn, leído el 08-11-2026.
  24. Precios de Grounding with Bing Search (14 USD por 1000), Microsoft, leído el 08-11-2026.
  25. Precios de SerpApi, SerpApi, leído el 08-11-2026.
  26. Documentación de SerpApi Google Search API, SerpApi, leído el 08-11-2026.
  27. Versiones de serpapi-mcp (v2.1.0, v2.2.0), GitHub, 03-11-2026 y 04-11-2026, leído el 08-11-2026.
  28. Página principal de Serper (precios, 2500 consultas gratis, créditos válidos 6 meses), Serper, leído el 08-11-2026.
  29. Precios de Tavily, Tavily, leído el 08-11-2026.
  30. Créditos de la API de Tavily (la búsqueda básica cuesta 1 crédito), Tavily Docs, leído el 08-11-2026.
  31. Versiones de tavily-mcp, GitHub, leído el 08-11-2026.
  32. Precios de Firecrawl, Firecrawl, leído el 08-11-2026.
  33. Facturación de Firecrawl (la búsqueda cuesta 2 créditos por cada 10 resultados), Firecrawl Docs, leído el 08-11-2026.
  34. Versiones de firecrawl-mcp-server (v3.36.1), GitHub, 03-11-2026, leído el 08-11-2026.
  35. Google Search JSON API alternative, Firecrawl Blog, 23-10-2026, leído el 08-11-2026.
  36. Precios de Bright Data SERP API, Bright Data, leído el 08-11-2026.
  37. Introducción a Bright Data SERP API, Bright Data Docs, leído el 08-11-2026.
  38. Versiones de google-api-python-client (v2.201.0), GitHub, 30-09-2026, leído el 08-11-2026.
  39. OpenSearch 1.1 borrador 6 (la especificación detrás de la respuesta de Custom Search), GitHub, leído el 08-11-2026.
  40. Registro de cambios de la especificación MCP 2026-07-28, Model Context Protocol, 28-07-2026, leído el 08-11-2026.
  41. Migrating Off Google Programmable Search Before the 2027 Deadline, AddSearch, 06-11-2026, leído el 08-11-2026.
  42. Google Custom Search API is closing. Need affordable Open Web Search alternative for 60k req/month, Reddit r/googlecloud, leído el 08-11-2026.
  43. Is Google's Custom Search API being discontinued? (claves nuevas con 403 el 20 de enero de 2026), Reddit r/googlecloud, leído el 08-11-2026.
  44. Google quietly announced that Programmable Search won't allow new engines to search the entire web, Hacker News, leído el 08-11-2026.
  45. Google Search for Discourse AI (aviso de retiro, marzo de 2026), Discourse Meta, leído el 08-11-2026.
  46. Catálogo de herramientas de búsqueda de EveryInfra (parámetros y precio de web), EveryInfra, leído a las 00:14:49 SGT, leído el 08-11-2026.
  47. Catálogo de capacidades de datos de EveryInfra (web/search, bing/search, google_news/search), EveryInfra, leído a las 00:14:49 SGT, leído el 08-11-2026.
  48. Endpoint MCP remoto de EveryInfra (everyinfra_search), EveryInfra, leído el 08-11-2026.

Referencia BL-113

Nuestras estadísticas siempre están activas. Google Analytics, solo con «Permitir analítica». Política de privacidad