ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo crear informes SEO para agencias con una API
Tutorial

Cómo crear informes SEO para agencias con una API

Automatice los informes mensuales de clientes de SEO con datos de clasificación y posiciones de la competencia. Canalización de Python para agencias a $0,005/consulta.

Obtener clave API gratisDocumentacion API

Las agencias de SEO dedican horas mensuales a realizar capturas de pantalla de los paneles para los informes de los clientes. Una canalización API los genera mediante programación: extrae datos de clasificación, posiciones de la competencia y características SERP, y luego genera informes formateados. A $0,005/consulta, un informe de 100 palabras clave cuesta $0,50 por cliente.

Requisitos previos

  • Python 3.8+
  • solicita biblioteca
  • Una clave API de Scavio de scavio.dev
  • Dominios de clientes y listas de palabras clave

Guia paso a paso

Paso 1: Definir configuraciones de cliente

Configure clientes con dominios, palabras clave y competidores.

Python
import os, requests, json
from datetime import date

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

CLIENTS = [{'name': 'Acme Corp', 'domain': 'acme.com',
    'competitors': ['comp1.com', 'comp2.com'],
    'keywords': ['widget manufacturing', 'custom widgets', 'widget supplier']}]

Paso 2: Recopilar clasificaciones para clientes y competidores

Una llamada SERP por palabra clave captura todas las posiciones del dominio.

Python
def collect(client):
    report = []
    domains = [client['domain']] + client['competitors']
    for kw in client['keywords']:
        data = requests.post('https://api.scavio.dev/api/v1/search',
            headers=H, json={'query': kw, 'country_code': 'us'}).json()
        positions = {}
        for r in data.get('organic_results', []):
            for d in domains:
                if d in r.get('link', '') and d not in positions:
                    positions[d] = r['position']
        features = []
        if data.get('answer_box'): features.append('AB')
        if data.get('related_questions'): features.append('PAA')
        report.append({'keyword': kw, 'positions': positions, 'features': features})
    return report

Paso 3: Generar métricas resumidas

Calcule la posición promedio, los 3/10 principales recuentos y el costo.

Python
def summary(client, data):
    positions = [r['positions'].get(client['domain']) for r in data if r['positions'].get(client['domain'])]
    avg = round(sum(positions) / len(positions), 1) if positions else None
    t3 = sum(1 for p in positions if p <= 3)
    t10 = sum(1 for p in positions if p <= 10)
    print(f"\n{client['name']}: {len(positions)}/{len(data)} ranking, avg={avg}, top3={t3}, top10={t10}")
    print(f'Cost: ${len(data) * 0.005:.3f}')

Paso 4: Ejecutar todos los informes de clientes

Genera y exporta para cada cliente.

Python
for client in CLIENTS:
    data = collect(client)
    print(f"{'Keyword':25} {'Client':7} {'Comp1':7} {'Comp2':7} Features")
    for r in data:
        p = r['positions']
        print(f"{r['keyword']:25} {str(p.get(client['domain'], '-')):7} "
              f"{str(p.get(client['competitors'][0], '-')):7} "
              f"{str(p.get(client['competitors'][1], '-')):7} {', '.join(r['features']) or '-'}")
    summary(client, data)
    with open(f"report_{client['name'].lower().replace(' ','_')}.json", 'w') as f:
        json.dump({'client': client['name'], 'date': date.today().isoformat(), 'data': data}, f, indent=2)

Ejemplo en Python

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

def report(domain, keywords, comps):
    for kw in keywords:
        data = requests.post('https://api.scavio.dev/api/v1/search',
            headers=H, json={'query': kw, 'country_code': 'us'}).json()
        pos = {}
        for r in data.get('organic_results', []):
            for d in [domain] + comps:
                if d in r.get('link', '') and d not in pos: pos[d] = r['position']
        print(f'{kw:25} You={pos.get(domain, "-"):4} {" ".join(f"{c}={pos.get(c,"-")}" for c in comps)}')

report('acme.com', ['widgets', 'widget supplier'], ['comp1.com'])

Ejemplo en JavaScript

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
const H = { 'x-api-key': API_KEY, 'Content-Type': 'application/json' };
async function report(domain, keywords, comps) {
  for (const kw of keywords) {
    const data = await fetch('https://api.scavio.dev/api/v1/search', {
      method: 'POST', headers: H, body: JSON.stringify({ query: kw, country_code: 'us' })
    }).then(r => r.json());
    const pos = {};
    for (const r of data.organic_results || []) {
      for (const d of [domain, ...comps]) if (r.link.includes(d) && !pos[d]) pos[d] = r.position;
    }
    console.log(`${kw}: You=${pos[domain]||'-'} ${comps.map(c=>`${c}=${pos[c]||'-'}`).join(' ')}`);
  }
}
report('acme.com', ['widgets'], ['comp1.com']).catch(console.error);

Salida esperada

JSON
Keyword                   Client  Comp1   Comp2   Features
widget manufacturing      3       7       -       PAA
custom widgets            5       2       8       AB, PAA
widget supplier           1       4       6       -

Acme Corp: 3/3 ranking, avg=3.0, top3=2, top10=3
Cost: $0.015

Tutoriales relacionados

  • Cómo crear un panel de SEO personalizado con una API de búsqueda
  • Cómo monitorear las superficies de búsqueda más allá del rango
  • Cómo construir un monitor SERP competitivo

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. Dominios de clientes y listas de palabras clave. 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

La mejor API para informes SEO de agencias en 2026

Read more
Best Of

Las mejores alternativas de API a las herramientas SEO de AppSumo (2026)

Read more
Solution

Cree una capa API de SEO de costo predecible

Read more
Glossary

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

Read more
Glossary

Informes API de SEO para agencias

Read more
Comparison

Google Places API vs SERP Local Pack API

Read more

Empieza a construir

Automatice los informes mensuales de clientes de SEO con datos de clasificación y posiciones de la competencia. Canalización de Python para agencias a $0,005/consulta.

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