El problema
Los Google AI Overviews ahora aparecen en mas del 30% de las consultas informativas en 2026, pero no existe una API nativa para verificar si tu dominio es citado, parafraseado o completamente ausente. Los equipos de SEO descubren brechas de citacion semanas despues, cuando el trafico organico ya cayo. Verificar manualmente diez keywords toma una hora y pierde las otras quinientas.
La solucion de Scavio
Programa consultas diarias a traves del endpoint de busqueda de Google de Scavio con el flag ai_overview activado. La respuesta estructurada incluye el texto del AI Overview y sus citaciones de fuente como campos tipados. Compara los dominios citados contra el tuyo, marca keywords donde un competidor es citado pero tu no, y presenta la lista para actualizaciones de contenido. Un credito por keyword, completamente automatizable.
Antes
Antes de la deteccion automatizada, un equipo de contenido buscaba manualmente 15 keywords por semana y revisaba visualmente el panel de AI Overview. No detectaron que Google habia comenzado a citar la guia de un competidor para su keyword de mayor trafico. Para cuando lo notaron, los clics organicos habian caido 22% en tres semanas.
Después
Despues de implementar el pipeline de deteccion, el equipo monitorea 200 keywords diariamente por $1/dia (200 creditos). El sistema marco la citacion del competidor en 24 horas. El equipo actualizo su articulo esa misma semana y recupero la citacion en AI Overview en 10 dias.
Para quien es
Equipos de SEO, especialistas en marketing de contenido e ingenieros de crecimiento que necesitan rastrear si los Google AI Overviews citan su contenido o entregan la visibilidad a competidores.
Beneficios clave
- Detecta citaciones de AI Overview para cualquier keyword programaticamente
- Marca keywords donde competidores son citados y tu no
- Monitoreo diario a $0.005 por keyword
- JSON estructurado incluye texto de AI Overview y URLs de fuente
- Automatiza el descubrimiento de brechas de contenido para respuestas generadas por IA
Ejemplo en Python
import requests, os, json
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
MY_DOMAIN = 'yourdomain.com'
KEYWORDS = ['best search api 2026', 'serp api for agents', 'web search tool for llm']
def check_ai_overview(keyword: str) -> dict:
r = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': 'google', 'query': keyword, 'ai_overview': True}, timeout=10).json()
aio = r.get('ai_overview')
if not aio:
return {'keyword': keyword, 'has_aio': False}
cited_urls = [s.get('link', '') for s in aio.get('sources', [])]
return {
'keyword': keyword, 'has_aio': True,
'my_domain_cited': any(MY_DOMAIN in u for u in cited_urls),
'cited_domains': cited_urls,
'aio_text_preview': aio.get('text', '')[:200]
}
for kw in KEYWORDS:
print(json.dumps(check_ai_overview(kw), indent=2))Ejemplo en JavaScript
const H = { 'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json' };
const MY_DOMAIN = 'yourdomain.com';
async function checkAiOverview(keyword) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST', headers: H,
body: JSON.stringify({ platform: 'google', query: keyword, ai_overview: true })
}).then(r => r.json());
const aio = r.ai_overview;
if (!aio) return { keyword, hasAio: false };
const citedUrls = (aio.sources || []).map(s => s.link || '');
return {
keyword, hasAio: true,
myDomainCited: citedUrls.some(u => u.includes(MY_DOMAIN)),
citedDomains: citedUrls,
aioTextPreview: (aio.text || '').slice(0, 200)
};
}Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA