Un hilo r/n8n solicitó una API de búsqueda que integre la búsqueda más la extracción de contenido para los canales de LLM. Este tutorial conecta el flujo completo de n8n: búsqueda de Scavio → extracto de Scavio → resumen de LLM → salida.
Requisitos previos
- n8n (nube o autohospedado)
- Clave API de Scavio
Guia paso a paso
Paso 1: Activador de webhook o cron
Webhook para investigaciones ad hoc; Cron para resumen diario.
// n8n trigger node — Webhook with topic inputPaso 2: Solicitud HTTP — Búsqueda Scavio
POST /api/v1/search con tema.
Method: POST
URL: https://api.scavio.dev/api/v1/search
Headers: x-api-key = {{ $env.SCAVIO_API_KEY }}
Body: { "query": "{{ $json.topic }}" }Paso 3: Iterar sobre los 5 mejores resultados
Nodo División en lotes, tamaño de lote 1.
// n8n: Split In Batches → loop over organic_results[0..5]Paso 4: Solicitud HTTP: extracto de Scavio por resultado
POST /api/v1/extract por URL.
Body: { "url": "{{ $json.link }}", "format": "markdown" }Paso 5: El nodo LLM resume
Claude / GPT / Groq.
Prompt: 'Summarize this content into a 200-word brief: {{ $json.markdown }}'Paso 6: Agregado + producción
Fusione los 5 resúmenes en una sola respuesta.
// n8n: Merge node, then Respond to Webhook with the combined brief.Ejemplo en Python
# Out of n8n the equivalent script:
import os, requests
API_KEY = os.environ['SCAVIO_API_KEY']
H = {'x-api-key': API_KEY}
def research(topic):
s = requests.post('https://api.scavio.dev/api/v1/search', headers=H, json={'query': topic}).json()
out = []
for r in s.get('organic_results', [])[:5]:
e = requests.post('https://api.scavio.dev/api/v1/extract', headers=H, json={'url': r['link'], 'format': 'markdown'}).json()
out.append({'url': r['link'], 'md': e.get('markdown', '')[:3000]})
return out
print(len(research('mcp server best practices 2026')))Ejemplo en JavaScript
// n8n is config-driven. See node-by-node steps above.Salida esperada
Per request: 6 Scavio calls (1 search + 5 extracts) ≈ $0.026. Five summarized sources ready for an LLM context window.