El acceso a la API de Semrush requiere un plan Business de $499,95+/mes, y cada llamada a la API consume unidades que vencen mensualmente. Para los equipos que solo necesitan datos SERP orgánicos (clasificaciones, fragmentos, la gente también pregunta), este es un gasto excesivo significativo. La API de Scavio devuelve los mismos datos SERP estructurados a $0,005 por consulta sin compromiso mínimo más allá de los 250 créditos/mes gratuitos. Este tutorial muestra cómo migrar sus llamadas API de Semrush existentes a una alternativa liviana, con una comparación de costos y una función de reemplazo directo.
Requisitos previos
- Python 3.9+ instalado
- solicita biblioteca instalada
- Integración actual de la API de Semrush para migrar
- Una clave API de Scavio de scavio.dev
Guia paso a paso
Paso 1: Audite su uso actual de la API de Semrush
Antes de migrar, identifique qué puntos finales de Semrush utiliza realmente. La mayoría de los equipos solo utilizan datos SERP orgánicos, descripción general de palabras clave y análisis de dominio. Este paso le ayuda a saber qué es necesario reemplazar.
# Common Semrush API endpoints and their replacements:
endpoint_map = {
'domain_organic': 'Replace with SERP query for site:domain.com',
'phrase_organic': 'Replace with direct SERP query',
'keyword_difficulty': 'Not available via SERP API (keep Semrush for this)',
'backlinks_overview': 'Not available via SERP API (keep Semrush for this)',
'url_organic': 'Replace with SERP query for exact URL',
}
for endpoint, action in endpoint_map.items():
print(f'{endpoint}: {action}')Paso 2: Construya la función de reemplazo directo
Crea una función con la misma interfaz que tu llamada de búsqueda orgánica de Semrush. Acepta una palabra clave y devuelve resultados estructurados en un formato normalizado.
import requests, os
API_KEY = os.environ['SCAVIO_API_KEY']
def serp_search(keyword: str, country: str = 'us', num_results: int = 10) -> list:
"""Drop-in replacement for Semrush phrase_organic endpoint."""
resp = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY, 'Content-Type': 'application/json'},
json={'query': keyword, 'country_code': country})
resp.raise_for_status()
results = resp.json().get('organic_results', [])[:num_results]
return [{
'position': r['position'],
'url': r['link'],
'title': r['title'],
'snippet': r.get('snippet', ''),
} for r in results]Paso 3: Comparar el formato de salida uno al lado del otro
Verifique que la función de reemplazo devuelva datos equivalentes. Los campos clave (posición, URL, título, fragmento) se asignan directamente.
results = serp_search('best project management software 2026')
for r in results[:3]:
print(f"#{r['position']} {r['title']}")
print(f" {r['url']}")
print(f" {r['snippet'][:80]}...")
print()Paso 4: Calcule su ahorro de costes
Compare los costos mensuales entre la API de Semrush y la alternativa liviana. Considere el costo base del plan Semrush Business más los cargos por unidad.
def compare_costs(monthly_queries: int) -> dict:
semrush_base = 499.95 # Business plan minimum
semrush_unit_cost = 0.01 # approximate per API unit
semrush_total = semrush_base + (monthly_queries * semrush_unit_cost)
scavio_cost = monthly_queries * 0.005
savings = semrush_total - scavio_cost
savings_pct = (savings / semrush_total) * 100
return {
'queries': monthly_queries,
'semrush_monthly': f'${semrush_total:,.2f}',
'scavio_monthly': f'${scavio_cost:,.2f}',
'savings': f'${savings:,.2f}',
'savings_pct': f'{savings_pct:.0f}%'
}
for vol in [5000, 20000, 50000]:
c = compare_costs(vol)
print(f"{c['queries']:,} queries: Semrush {c['semrush_monthly']} vs Scavio {c['scavio_monthly']} (save {c['savings']}, {c['savings_pct']})")Paso 5: Migra tu código base existente
Busque y reemplace sus llamadas a la API de Semrush con la nueva función. Mantenga Semrush para funciones que requieran su base de datos patentada (dificultad de palabras clave, índice de vínculos de retroceso). Utilice la API liviana para toda la recuperación de datos SERP.
# Before (Semrush):
# from semrush_client import SemrushClient
# client = SemrushClient(api_key=SEMRUSH_KEY)
# results = client.phrase_organic(keyword='best crm', database='us')
# After (lightweight API):
results = serp_search('best crm', country='us')
# The rest of your pipeline stays the same:
for r in results:
print(f"#{r['position']} {r['url']}")Ejemplo en Python
import os, requests
API_KEY = os.environ['SCAVIO_API_KEY']
def serp_search(keyword: str, country: str = 'us') -> list:
resp = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY, 'Content-Type': 'application/json'},
json={'query': keyword, 'country_code': country})
resp.raise_for_status()
return [{'position': r['position'], 'url': r['link'],
'title': r['title'], 'snippet': r.get('snippet', '')}
for r in resp.json().get('organic_results', [])]
def main():
keywords = ['best crm software', 'crm pricing 2026', 'hubspot alternatives']
for kw in keywords:
results = serp_search(kw)
print(f'{kw}: {len(results)} results')
if results:
print(f' #1: {results[0]["title"]}')
monthly = len(keywords) * 30
print(f'Projected monthly cost: ${monthly * 0.005:.2f} vs $499.95+ Semrush')
if __name__ == '__main__':
main()Ejemplo en JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
async function serpSearch(keyword, country = 'us') {
const resp = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ query: keyword, country_code: country })
});
const data = await resp.json();
return (data.organic_results || []).map(r => ({
position: r.position, url: r.link,
title: r.title, snippet: r.snippet || ''
}));
}
async function main() {
const keywords = ['best crm software', 'crm pricing 2026', 'hubspot alternatives'];
for (const kw of keywords) {
const results = await serpSearch(kw);
console.log(`${kw}: ${results.length} results`);
if (results.length) console.log(` #1: ${results[0].title}`);
}
console.log(`Projected: $${(keywords.length * 30 * 0.005).toFixed(2)}/mo vs $499.95+ Semrush`);
}
main().catch(console.error);Salida esperada
best crm software: 10 results
#1: Best CRM Software for 2026 - Forbes Advisor
crm pricing 2026: 10 results
#1: CRM Pricing Comparison Guide (Updated May 2026)
hubspot alternatives: 10 results
#1: 12 HubSpot Alternatives Worth Considering
Projected monthly cost: $0.45 vs $499.95+ Semrush
5,000 queries: Semrush $549.95 vs Scavio $25.00 (save $524.95, 95%)
20,000 queries: Semrush $699.95 vs Scavio $100.00 (save $599.95, 86%)
50,000 queries: Semrush $999.95 vs Scavio $250.00 (save $749.95, 75%)