ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo migrar de SearXNG a API Search
Tutorial

Cómo migrar de SearXNG a API Search

Reemplace SearXNG autohospedado con una API de búsqueda para agentes de IA. Sin Docker, sin mantenimiento, los mismos resultados estructurados.

Obtener clave API gratisDocumentacion API

SearXNG requiere Docker, actualizaciones periódicas y pausas cuando los motores anteriores cambian su HTML. Este tutorial migra su agente de SearXNG a la API de búsqueda de Scavio. Mantiene el mismo formato de resultados que espera su agente pero elimina la carga de mantenimiento. La API cuesta $0,005/consulta frente a los costos del servidor para ejecutar SearXNG.

Requisitos previos

  • Python 3.8+
  • solicita biblioteca
  • Una clave API de Scavio de scavio.dev
  • Integración existente de SearXNG para reemplazar

Guia paso a paso

Paso 1: Asignar el formato de respuesta SearXNG al formato API

Compare la salida JSON de SearXNG con la respuesta de la API de Scavio para crear una capa de traducción.

Python
import os, requests, json

API_KEY = os.environ['SCAVIO_API_KEY']
SH = {'x-api-key': API_KEY, 'Content-Type': 'application/json'}

# SearXNG returns this format:
SEARXNG_FORMAT = {
    'results': [
        {'title': '...', 'url': '...', 'content': '...', 'engine': 'google'},
    ],
    'number_of_results': 10,
}

def scavio_to_searxng_format(query):
    """Call Scavio API and return data in SearXNG format."""
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers=SH, json={'query': query, 'country_code': 'us'}, timeout=10)
    resp.raise_for_status()
    data = resp.json()
    results = []
    for r in data.get('organic_results', []):
        results.append({
            'title': r.get('title', ''),
            'url': r.get('link', ''),
            'content': r.get('snippet', ''),
            'engine': 'scavio',
            'score': r.get('position', 0),
        })
    return {
        'results': results,
        'number_of_results': len(results),
        'query': query,
    }

# Test the translation
result = scavio_to_searxng_format('python web framework comparison 2026')
print(f'Query: {result["query"]}')
print(f'Results: {result["number_of_results"]}')
for r in result['results'][:3]:
    print(f'  [{r["engine"]}] {r["title"][:50]}')
    print(f'    {r["url"]}')

Paso 2: Crear una función de reemplazo directo

Reemplace la llamada SearXNG con la llamada API, manteniendo la misma firma de función.

Python
# BEFORE: SearXNG call
# def search(query, num_results=10):
#     resp = requests.get('http://localhost:8888/search',
#         params={'q': query, 'format': 'json', 'engines': 'google'})
#     return resp.json()['results'][:num_results]

# AFTER: Scavio API call (same interface)
def search(query, num_results=10):
    """Drop-in replacement for SearXNG search."""
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers=SH, json={'query': query, 'country_code': 'us'}, timeout=10)
    resp.raise_for_status()
    data = resp.json()
    return [{
        'title': r.get('title', ''),
        'url': r.get('link', ''),
        'content': r.get('snippet', ''),
        'engine': 'scavio',
    } for r in data.get('organic_results', [])[:num_results]]

# Your existing code works without changes:
results = search('best python web framework 2026', num_results=5)
for r in results:
    print(f'  {r["title"][:50]} ({r["engine"]})')
    print(f'    {r["url"]}')
print(f'\nNo Docker. No maintenance. $0.005/query.')

Paso 3: Agregue una búsqueda específica de la plataforma para obtener resultados más completos

A diferencia de SearXNG, la API admite consultas específicas de la plataforma para Reddit, YouTube y más.

Python
def search_platform(query, platform=None, num_results=5):
    """Extended search with platform support (not possible with SearXNG)."""
    body = {'query': query, 'country_code': 'us'}
    if platform:
        body['platform'] = platform
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers=SH, json=body, timeout=10)
    resp.raise_for_status()
    data = resp.json()
    return [{'title': r.get('title', ''), 'url': r.get('link', ''),
             'content': r.get('snippet', '')}
            for r in data.get('organic_results', [])[:num_results]]

# SearXNG could only do web search. API does platform-specific:
print('=== Google Web ===')
for r in search_platform('FastAPI deployment', num_results=3):
    print(f'  {r["title"][:50]}')

print('\n=== Reddit ===')
for r in search_platform('FastAPI deployment', platform='reddit', num_results=3):
    print(f'  {r["title"][:50]}')

print('\n=== YouTube ===')
for r in search_platform('FastAPI deployment', platform='youtube', num_results=3):
    print(f'  {r["title"][:50]}')

print(f'\nSearXNG: $20-50/mo server + maintenance')
print(f'Scavio API: $0.005/query, zero maintenance')

Ejemplo en Python

Python
import os, requests
SH = {'x-api-key': os.environ['SCAVIO_API_KEY'], 'Content-Type': 'application/json'}

# Drop-in SearXNG replacement
def search(query, num_results=10):
    data = requests.post('https://api.scavio.dev/api/v1/search',
        headers=SH, json={'query': query, 'country_code': 'us'}, timeout=10).json()
    return [{'title': r['title'], 'url': r['link'], 'content': r.get('snippet', '')}
            for r in data.get('organic_results', [])[:num_results]]

for r in search('SearXNG alternative api', 5):
    print(f'{r["title"][:50]}')

Ejemplo en JavaScript

JavaScript
const SH = { 'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json' };
// Drop-in SearXNG replacement
async function search(query, numResults = 10) {
  const data = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST', headers: SH,
    body: JSON.stringify({ query, country_code: 'us' })
  }).then(r => r.json());
  return (data.organic_results || []).slice(0, numResults)
    .map(r => ({ title: r.title, url: r.link, content: r.snippet }));
}
const results = await search('SearXNG alternative', 5);
results.forEach(r => console.log(r.title));

Salida esperada

JSON
Query: python web framework comparison 2026
Results: 10
  [scavio] FastAPI vs Django vs Flask: Python Web Framewor
    https://...

=== Google Web ===
  FastAPI Deployment Guide: Docker, AWS, and GCP

=== Reddit ===
  r/Python - Best way to deploy FastAPI in production

=== YouTube ===
  FastAPI Deployment Tutorial 2026 - Full Guide

SearXNG: $20-50/mo server + maintenance
Scavio API: $0.005/query, zero maintenance

Tutoriales relacionados

  • Cómo solucionar el bloqueo de Hermes SearXNG con API Fallback
  • Cómo agregar búsqueda API a Hermes sin navegador
  • Cómo configurar MCP Search Gateway con respaldo

Preguntas frecuentes

La mayoria de los desarrolladores completan este tutorial en 15 a 30 minutos. Necesitaras una clave API de Scavio (el plan gratuito funciona) y un entorno de Python o JavaScript.

Python 3.8+. solicita biblioteca. Una clave API de Scavio de scavio.dev. Integración existente de SearXNG para reemplazar. Una clave API de Scavio te da 50 creditos gratuitos al registrarte.

Si. El plan gratuito incluye 50 creditos al registrarte, mas que suficiente para completar este tutorial y crear un prototipo funcional.

Scavio tiene un paquete nativo de LangChain (langchain-scavio), un servidor MCP y una API REST simple que funciona con cualquier cliente HTTP. Este tutorial usa the raw REST API, pero puedes adaptarlo al framework que prefieras.

Recursos relacionados

Best Of

Las mejores API de búsqueda después de los cambios en el modo AI de Google I/O 2026

Read more
Glossary

Panorama de proveedores de API de búsqueda (2026)

Read more
Best Of

Los mejores proveedores de API SERP clasificados por precio en 2026

Read more
Glossary

Comparación gratuita de niveles de API de búsqueda

Read more
Comparison

Search APIs (Scavio, Tavily, SerpAPI) vs Headless Browser (Playwright, Puppeteer, Browserbase)

Read more
Comparison

Google Places API vs SERP Local Pack API

Read more

Empieza a construir

Reemplace SearXNG autohospedado con una API de búsqueda para agentes de IA. Sin Docker, sin mantenimiento, los mismos resultados estructurados.

Obtener clave API gratuitaLeer la documentacion
ScavioScavio

API de busqueda en tiempo real para agentes de IA. Busca en todas las plataformas, no solo en Google.

Producto

  • Funciones
  • Precios
  • Panel
  • Afiliados

Desarrolladores

  • Documentacion
  • Referencia de API
  • Inicio rapido
  • Integracion MCP
  • Python SDK

Alternativas

  • Alternativa a Tavily
  • Alternativa a SerpAPI
  • Alternativa a Firecrawl
  • Alternativa a Exa

Herramientas

  • Formateador JSON
  • cURL a codigo
  • Contador de tokens
  • Todas las herramientas

© 2026 Scavio. Todos los derechos reservados.

Featured on TAAFT
Terminos de servicioPolitica de privacidad