Un hilo r/n8n mencionó que el OP estaba usando 'Búsqueda personalizada de Google más raspado manual' y quería una única API. Este tutorial recorre el camino del reemplazo.
Requisitos previos
- Python 3.10+
- Clave API de Scavio
Guia paso a paso
Paso 1: Identificar llamadas de búsqueda personalizada de Google
Generalmente con una clave CSE + ID de CX.
# Before:
# r = requests.get('https://www.googleapis.com/customsearch/v1', params={'key': KEY, 'cx': CX, 'q': q})Paso 2: Reemplazar con Scavio
No se necesita CX; Scavio busca en la web abierta.
# After:
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': SCAVIO_API_KEY},
json={'query': q}).json()Paso 3: Respuesta del mapa
items[] se convierte en organic_results[].
# Google CSE: r['items'][i]['link']
# Scavio: r['organic_results'][i]['link']Paso 4: Agregar punto final de extracción para el contenido
Reemplaza la mitad del flujo del OP de 'raspado manual'.
def fetch(url):
return requests.post('https://api.scavio.dev/api/v1/extract',
headers={'x-api-key': SCAVIO_API_KEY}, json={'url': url, 'format': 'markdown'}).json().get('markdown', '')Paso 5: Comparar cuotas
Google CSE tiene un límite de 100/día gratis, $ 5/1K más. Scavio gratis es 250 créditos/mes + $30/mes por 7K.
// Daily research agent making 50 queries: Google CSE = $7.50/mo above quota; Scavio = $0 above the 250 free tier or $30/mo flat.Ejemplo en Python
# Migration takes ~20 minutes for a typical agent.Ejemplo en JavaScript
// Same in TS.Salida esperada
Same query intent, structured JSON, plus extract endpoint that replaces 'manual scraping' under the same key. No more two-vendor split.