ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Rastrea posiciones de keywords con una SERP API (haz tu propio rank tracker)
Tutorial

Rastrea posiciones de keywords con una SERP API (haz tu propio rank tracker)

Crea tu propio rastreador diario de posiciones en Google con una SERP API por unos pocos dolares. Scripts Python y JS, cron y el calculo del coste.

Obtener clave API gratisDocumentacion API

Un rank tracker no es mas que un script que lanza una busqueda en Google, busca tu dominio en los resultados organicos y guarda la posicion. No necesitas una suscripcion de 129 $/mes en SE Ranking para eso. Este tutorial construye un rastreador diario que toma una lista de keywords y tu dominio, llama al endpoint de Google de Scavio en `POST https://api.scavio.dev/api/v1/google`, encuentra tu sitio en el array `results` y escribe una fila CSV con fecha que puedes graficar. Una consulta completa cuesta 2 creditos (0,01 $); una consulta ligera que solo devuelve resultados organicos cuesta 1 credito (0,005 $). Rastrear 50 keywords a diario sale por unos 7,50 $/mes a 2 creditos cada una, o 3,75 $/mes en modo ligero. Un aviso de entrada: la posicion depende de la ubicacion y de cada busqueda, asi que fija tu pais e idioma y no te obsesiones con un mal dia suelto.

Requisitos previos

  • Una API key de Scavio (50 creditos gratis al registrarte, sin tarjeta) desde scavio.dev
  • Python 3.9+ o Node.js 18+ instalado
  • Soltura basica para ejecutar un script desde la terminal
  • Una lista de keywords que quieras rastrear y tu dominio (p. ej. example.com)

Guia paso a paso

Paso 1: 1. Consigue tu API key y guardala como variable de entorno

Registrate en scavio.dev, copia tu key del panel y exportala para que nunca acabe en tu codigo. Todos los endpoints REST de Scavio se autentican con la cabecera `Authorization: Bearer {API_KEY}`.

Bash
export SCAVIO_API_KEY="sk_your_key_here"

Paso 2: 2. Llama al endpoint de Google con una keyword

Envia un POST a `/api/v1/google` con tu keyword en `query`. Pon `light_request:false` para obtener la respuesta completa (2 creditos) con `results` organicos, `questions`, `knowledge_graph` y `related_searches`. Si solo quieres posiciones, usa `light_request:true` por 1 credito. Fija `gl` (pais) y `hl` (idioma) para medir siempre la misma ubicacion.

Bash
curl -X POST https://api.scavio.dev/api/v1/google \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "keyword rank tracker api", "light_request": false, "gl": "us", "hl": "en"}'

Paso 3: 3. Busca tu dominio en el array results

La respuesta trae un array `results` con los listados organicos. Recorrelo en orden; la primera entrada cuyo enlace contenga tu dominio es tu posicion. El indice 0 es la posicion 1. Si tu dominio no aparece, guarda la posicion como null (fuera del top), no como cero.

Python
results = data["results"]
rank = None
for i, item in enumerate(results):
    if domain in item.get("link", ""):
        rank = i + 1
        break

Paso 4: 4. Recorre las keywords y escribe una fila CSV con fecha

Itera sobre tu lista de keywords, busca la posicion de cada una y anade una fila con la fecha para ir creando un historial que luego puedas graficar. Una fila por keyword y dia.

Python
import csv, datetime
stamp = datetime.date.today().isoformat()
with open("ranks.csv", "a", newline="") as f:
    w = csv.writer(f)
    for kw, rank in tracked.items():
        w.writerow([stamp, kw, rank if rank else ""])

Paso 5: 5. Programalo a diario con cron

Ejecuta el script una vez al dia para que el historial se complete solo. Anade una entrada de crontab que corra a las 8 de la manana. Usa el mismo gl/hl en cada ejecucion para que los numeros sigan siendo comparables.

Bash
# crontab -e
0 8 * * * SCAVIO_API_KEY=sk_xxx /usr/bin/python3 /home/me/rank_tracker.py >> /home/me/rank.log 2>&1

Ejemplo en Python

Python
import csv
import datetime
import os
import requests

API_KEY = os.environ["SCAVIO_API_KEY"]
DOMAIN = "example.com"
KEYWORDS = [
    "keyword rank tracker api",
    "serp api",
    "google search api",
]


def get_rank(keyword, domain):
    resp = requests.post(
        "https://api.scavio.dev/api/v1/google",
        headers={"Authorization": f"Bearer {API_KEY}"},
        json={"query": keyword, "light_request": False, "gl": "us", "hl": "en"},
        timeout=30,
    )
    resp.raise_for_status()
    results = resp.json().get("results", [])
    for i, item in enumerate(results):
        if domain in item.get("link", ""):
            return i + 1
    return None


def main():
    stamp = datetime.date.today().isoformat()
    with open("ranks.csv", "a", newline="") as f:
        writer = csv.writer(f)
        for kw in KEYWORDS:
            rank = get_rank(kw, DOMAIN)
            print(f"{stamp}  {kw!r}  -> {rank if rank else 'not in top results'}")
            writer.writerow([stamp, kw, rank if rank else ""])


if __name__ == "__main__":
    main()

Ejemplo en JavaScript

JavaScript
import { writeFile, appendFile } from "node:fs/promises";

const API_KEY = process.env.SCAVIO_API_KEY;
const DOMAIN = "example.com";
const KEYWORDS = [
  "keyword rank tracker api",
  "serp api",
  "google search api",
];

async function getRank(keyword, domain) {
  const resp = await fetch("https://api.scavio.dev/api/v1/google", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      query: keyword,
      light_request: false,
      gl: "us",
      hl: "en",
    }),
  });
  if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
  const data = await resp.json();
  const results = data.results || [];
  for (let i = 0; i < results.length; i++) {
    if ((results[i].link || "").includes(domain)) return i + 1;
  }
  return null;
}

async function main() {
  const stamp = new Date().toISOString().slice(0, 10);
  for (const kw of KEYWORDS) {
    const rank = await getRank(kw, DOMAIN);
    console.log(`${stamp}  ${kw}  -> ${rank ?? "not in top results"}`);
    await appendFile("ranks.csv", `${stamp},${kw},${rank ?? ""}\n`);
  }
}

main();

Salida esperada

JSON
2026-06-30  'keyword rank tracker api'  -> 4
2026-06-30  'serp api'  -> 12
2026-06-30  'google search api'  -> not in top results

ranks.csv ya tiene una fila con fecha por keyword. Anade filas a diario y grafica la columna de posicion con el tiempo. Una sola llamada completa a Google para "keyword rank tracker api" devolvio 9 resultados organicos mas 8 busquedas relacionadas en una respuesta por 2 creditos (0,01 $).

Tutoriales relacionados

    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.

    Una API key de Scavio (50 creditos gratis al registrarte, sin tarjeta) desde scavio.dev. Python 3.9+ o Node.js 18+ instalado. Soltura basica para ejecutar un script desde la terminal. Una lista de keywords que quieras rastrear y tu dominio (p. ej. example.com). 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

    Los mejores rastreadores de clasificación basados ​​en API para SEO en 2026

    Read more
    Best Of

    Las mejores API de seguimiento de clasificación SEO en 2026

    Read more
    Solution

    Cree un seguimiento de clasificación local confiable con la API de Scavio

    Read more
    Solution

    Datos de Google Ads de las API SERP

    Read more
    Glossary

    API de SERP

    Read more
    Workflow

    Diario Local Clasificar Seguimiento Pipeline

    Read more

    Empieza a construir

    Crea tu propio rastreador diario de posiciones en Google con una SERP API por unos pocos dolares. Scripts Python y JS, cron y el calculo del coste.

    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