Los fundadores hacen la misma pregunta en Reddit todas las semanas: "¿Cómo puedo controlar si mi SaaS aparece en los resultados de búsqueda de IA?" Este tutorial conecta Scavio más un script de estudio rápido semanal a un monitor AEO autohospedado que cuesta $30/mes en total.
Requisitos previos
- Python 3.10+
- Clave API de Scavio
- Clave API antrópica para estudios rápidos de Claude
- PatoDB
Guia paso a paso
Paso 1: Definir conjunto de palabras clave de marca
De 10 a 30 consultas de marcas y categorías en YAML.
# keywords.yaml
brand: scavio
keywords:
- scavio review
- best ai search api 2026
- tavily alternativePaso 2: Resúmenes diarios de SERP más IA
Una llamada de Scavio por palabra clave.
import requests, os
API_KEY = os.environ['SCAVIO_API_KEY']
def snap(q):
r = requests.post('https://api.scavio.dev/api/v1/google',
headers={'x-api-key': API_KEY},
json={'query': q, 'include_ai_overview': True})
return r.json()Paso 3: Menciones de marca en Reddit
Escaneo diario de Reddit en busca de la palabra clave de marca.
def reddit(brand):
r = requests.post('https://api.scavio.dev/api/v1/reddit/search',
headers={'x-api-key': API_KEY},
json={'query': brand})
return r.json().get('posts', [])Paso 4: Estudio rápido semanal de ChatGPT
Ejecute el mismo conjunto de mensajes en ChatGPT.
import openai
client = openai.OpenAI()
def chatgpt_says(prompt):
r = client.chat.completions.create(model='gpt-5', messages=[{'role':'user','content':prompt}])
return r.choices[0].message.contentPaso 5: Almacenar deltas
Fila de DuckDB por (palabra clave, superficie, URL, fecha).
import duckdb
db = duckdb.connect('aeo.duckdb')
db.execute('CREATE TABLE IF NOT EXISTS aeo(brand TEXT, surface TEXT, url TEXT, date DATE)')Ejemplo en Python
import os, requests, datetime
API_KEY = os.environ['SCAVIO_API_KEY']
def snapshot(brand, keyword):
serp = requests.post('https://api.scavio.dev/api/v1/google',
headers={'x-api-key': API_KEY},
json={'query': keyword, 'include_ai_overview': True}).json()
rdt = requests.post('https://api.scavio.dev/api/v1/reddit/search',
headers={'x-api-key': API_KEY},
json={'query': brand}).json()
return {'date': str(datetime.date.today()), 'ao': serp.get('ai_overview'), 'reddit': rdt.get('posts',[])[:5]}
print(snapshot('scavio', 'best ai search api 2026'))Ejemplo en JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
export async function snapshot(brand, keyword) {
const headers = { 'x-api-key': API_KEY, 'Content-Type': 'application/json' };
const [serp, rdt] = await Promise.all([
fetch('https://api.scavio.dev/api/v1/google', { method:'POST', headers, body: JSON.stringify({ query: keyword, include_ai_overview: true }) }).then(r => r.json()),
fetch('https://api.scavio.dev/api/v1/reddit/search', { method:'POST', headers, body: JSON.stringify({ query: brand }) }).then(r => r.json())
]);
return { serp, rdt };
}Salida esperada
Daily snapshot per keyword across SERP, AI Overviews, and Reddit. Weekly ChatGPT prompt study runs against the same set. DuckDB stores deltas; weekly digest emails new and lost citations.