API de posiciones, CLI y SDK
Una API de posiciones con OpenAPI, CLI y SDK para TypeScript, Python y Go. Comprueba posiciones y lee el historial desde código.
Después crea una clave API en Settings / Developers
Las llamadas de pago usan tu cuenta de DataForSEO o SerpApi · Estimaciones gratuitas · Alojamiento propio (AGPL-3.0)
POST /api/v1/keywords/{id}/checks
export BISIBILITY_BASE_URL=https://eu.bisibility.com/api/v1curl -sS -X POST \ "$BISIBILITY_BASE_URL/keywords/kw_a00000000000000000000000/checks" \ -H "Authorization: Bearer $BISIBILITY_API_KEY" \ -H "Idempotency-Key: run-check-001" \ -H "Content-Type: application/json" \ -d '{"max_cost_cents": 1}' \ | jq '{position, previous_position, ranking_url, cost_cents}'{ "position": 4, "previous_position": 7, "ranking_url": "https://example.com/rank-tracker", "cost_cents": 0.06}201 si la comprobación termina durante la solicitud; 202 con un ID de ejecución si queda en cola.
npm install @bisibility/sdk
import { BisibilityClient } from "@bisibility/sdk";const bisibility = new BisibilityClient({ apiKey: process.env.BISIBILITY_API_KEY, baseUrl: "https://eu.bisibility.com/api/v1",});const check = await bisibility.rankChecks.runAndWait("kw_a00000000000000000000000");console.log(check.position, check.previous_position, check.ranking_url, check.cost_cents);4 7 https://example.com/rank-tracker 0.06pip install bisibility
import osfrom bisibility import BisibilityClientbisibility = BisibilityClient( api_key=os.environ["BISIBILITY_API_KEY"], base_url="https://eu.bisibility.com/api/v1",)check = bisibility.run_rank_check_and_wait("kw_a00000000000000000000000")print(check.position, check.previous_position, check.ranking_url, check.cost_cents)4 7 https://example.com/rank-tracker 0.06go get bisibility.com/sdk-go
// inside main(), with ctx := context.Background()client, err := bisibility.NewClient( bisibility.WithAPIKey(os.Getenv("BISIBILITY_API_KEY")), bisibility.WithBaseURL("https://eu.bisibility.com/api/v1"),)if err != nil { log.Fatal(err)}check, err := client.RunRankCheckAndWait(ctx, "kw_a00000000000000000000000", nil, nil)if err != nil { log.Fatal(err)}if check.Position != nil && check.RankingURL != nil { fmt.Println(*check.Position, *check.RankingURL)}4 https://example.com/rank-trackernpm install -g @bisibility/cli
bisibility auth loginbisibility check kw_a00000000000000000000000check check_a00000000000000000000000keyword kw_a00000000000000000000000status completedposition 4previous 7provider dataforseourl https://example.com/rank-trackererror -API REST
API REST de posiciones con OpenAPI público
Cada operación REST de los SDK y CLI es una llamada HTTPS normal descrita en un documento público OpenAPI 3.1.
- Claves con ámbito, mostradas una vez. Cada clave tiene ámbito, caducidad y gasto mensual; solo se guarda su hash.
- Reintentos seguros. Envía una clave de idempotencia con cada escritura; repetir en 24 horas reproduce la respuesta original.
Claves para la API de bisibility, cada una con un ámbito y una fecha de caducidad.
creada el 20 sep 2026, 23:44 · último uso 28 sep 2026, 02:17
Gasto del mes: $0.42
creada el 22 sep 2026, 08:44 · nunca se ha usado
Gasto del mes: $0.00
- Limita cada llamada de pago. Posiciones y dominios estimados por encima del límite se rechazan; palabras y backlinks lo aplican en la medida de lo posible. investigación de palabras clave análisis de backlinks
- Da a los scripts su propio presupuesto. El presupuesto mensual de API y agentes por proveedor es un límite estricto; la aplicación y las comprobaciones programadas siguen funcionando.
Presupuestos por proveedor
Establece un presupuesto mensual para cada proveedor. Al usar el saldo del proveedor, se incluye el gasto de este mes para que el presupuesto restante coincida con el saldo disponible.
Cuando se alcanza un presupuesto, las solicitudes de esa superficie se detienen hasta el mes siguiente; la otra superficie sigue funcionando.
SDK y CLI
SDK de TypeScript, Python y Go y una CLI
Tres SDK oficiales ofrecen solicitudes y respuestas tipadas. La CLI ejecuta comprobaciones, investigación y exportaciones desde terminal o CI.
- Un asistente de espera por lenguaje. Cada SDK inicia una comprobación y lee resultados. La ejecución en cola depende del despliegue.
- Acceso a la CLI desde el navegador. Inicia sesión una vez en el navegador, sin pegar una clave.
- Para CI y scripts. Lee la clave del entorno y recibe JSON.
npm install @bisibility/sdkimport { BisibilityClient } from "@bisibility/sdk";const bisibility = new BisibilityClient({ apiKey: process.env.BISIBILITY_API_KEY, baseUrl: "https://eu.bisibility.com/api/v1",});const check = await bisibility.rankChecks.runAndWait("kw_a00000000000000000000000");console.log(check.position, check.previous_position, check.ranking_url, check.cost_cents);Runtime Node 18+Wait helper rankChecks.runAndWaitpip install bisibilityimport osfrom bisibility import BisibilityClientbisibility = BisibilityClient( api_key=os.environ["BISIBILITY_API_KEY"], base_url="https://eu.bisibility.com/api/v1",)check = bisibility.run_rank_check_and_wait("kw_a00000000000000000000000")print(check.position, check.previous_position, check.ranking_url, check.cost_cents)Runtime Python 3.10+Wait helper run_rank_check_and_waitgo get bisibility.com/sdk-go// inside main(), with ctx := context.Background()client, err := bisibility.NewClient( bisibility.WithAPIKey(os.Getenv("BISIBILITY_API_KEY")), bisibility.WithBaseURL("https://eu.bisibility.com/api/v1"),)if err != nil { log.Fatal(err)}check, err := client.RunRankCheckAndWait(ctx, "kw_a00000000000000000000000", nil, nil)if err != nil { log.Fatal(err)}if check.Position != nil && check.RankingURL != nil { fmt.Println(*check.Position, *check.RankingURL)}Runtime Go 1.22Wait helper RunRankCheckAndWaitnpm install -g @bisibility/cli# sign in once (opens the browser)bisibility auth loginbisibility projects use example.com# price a backlinks lookup, then run it with a 7-cent capbisibility backlinks analyze example.com --estimatebisibility backlinks analyze example.com --limit 100 --max-cost 7Webhooks
Webhooks SEO firmados de salida y hooks de despliegue de entrada
Las reglas envían a hasta 10 endpoints HTTPS por proyecto. Los despliegues van en sentido contrario, desde tu CI a bisibility.
- Cuatro tipos de eventos. Alertas activadas, resúmenes, aviso de límite diario y evento de prueba.
- Verifica en pocas líneas. Cada entrega incluye firma y marca temporal para verificar antes de confiar en ella.
- Recibe hooks de despliegue. Dirige Vercel, Netlify, Amplify o cualquier CI al hook y consulta cada despliegue mediante la API.
POST https://example.com/hooks/bisibilityX-Bisibility-Timestamp: 1784980803X-Bisibility-Signature: sha256=4f1c…e9a2{ "event": "alert.fired", "schemaVersion": 3, "created_at": "2026-07-25T12:00:03.000Z", "data": { "headline": "Rank tracker dropped from #4 to #11", "keyword": "rank tracker", "before_position": 4, "after_position": 11, "condition_type": "position_drop", "rule_name": "Important position drops", "project_domain": "example.com", "keyword_id": "kw_a00000000000000000000000" }}Alojamiento propio
La misma API en tu servidor
La aplicación es de código abierto bajo AGPL-3.0 y CLI y SDK bajo Apache-2.0. Tu instancia sirve la misma API en su origen.
- Cambia con un ajuste. Cambiar entre Cloud y tu servidor requiere cambiar la URL base en el SDK o CLI.
- Trae tu historial. Exporta un paquete; la importación Cloud restaura palabras e historial con un token vinculado a un proyecto.
# Cloud (EU region)bisibility config set baseUrl https://eu.bisibility.com/api/v1# Your serverbisibility config set baseUrl https://rank.example.com/api/v1bisibility config set cloudUrl https://rank.example.combisibility auth loginbisibility export --format json --output dump.jsonLo que aún no hace
- Las claves de proyecto permiten 600 solicitudes por minuto y los tokens personales 120, ajustable en alojamiento propio.
- Las listas con cursor devuelven 50 filas por defecto y hasta 200 por página.
- Los webhooks salen de reglas de alerta, sin filtros por evento.
- La demo es de solo lectura y no crea claves API.
Preguntas sobre API, CLI y SDK
¿La API devuelve datos SERP propios?
No. bisibility no extrae Google ni incluye datos SERP propios. Las llamadas con datos nuevos usan tu DataForSEO o SerpApi; SerpApi solo cubre posiciones de Google. Leer el historial no llama al proveedor.
¿Está incluida la API y cuánto cuesta una llamada?
REST API, CLI y SDK vienen con la aplicación en Cloud o alojamiento propio, sin plan API aparte. Las consultas cuestan la tarifa del proveedor, unos 0,0006 USD por Top 10 en la cola Standard de DataForSEO, o en Cloud ese coste más un margen del 30% en créditos, dentro del presupuesto del proyecto para API y agentes.
¿Qué lenguajes tienen SDK oficial?
TypeScript, Python y Go. Comparten 30 segundos por intento y dos reintentos en 429, 503 y errores de red para solicitudes idempotentes. La CLI cubre el terminal.
¿Cómo funcionan las claves y ámbitos API?
Una clave de proyecto da acceso a un proyecto. Un token personal actúa como tú en tus proyectos y la CLI lo crea al iniciar sesión. Ambos tienen ámbito y caducidad; nunca superan tu rol.
Siguiente paso
Pregunta a un agente en vez de escribir código
De una clave API a tu primera comprobación
Regístrate, crea una clave API y haz tu primera llamada con curl, CLI o SDK.
Gratis y de código abierto (AGPL-3.0). Exporta tus datos cuando quieras o aloja la misma aplicación.