api de cuotas de pinnacle / rest / sse / websocket
API de cuotas de Pinnacle: cuotas en vivo y prepartido en JSON
GET/kit/v1/markets?sport_id=2
cabecera x-portal-apikey: <your key>
application/json200 OK
Cuotas en vivo y prepartido de Pinnacle, la casa que los apostadores sharp tratan como línea de referencia, servidas en JSON por la API de cuotas de Pinnacle. Consulta un snapshot, recibe las caídas o toma cada frame en bruto.
Crear una clave gratuita0 USD · 100 solicitudes al día · 20 por minuto · sin tarjeta
Los planes de pago empiezan en 99 USD al mes. Compara los planes
{
"sport_name": "Tennis",
"last": 141,
"events": [{
"event_id": 1628594960,
"league_name": "ATP Tour",
"home": "Novak Djokovic",
"away": "Carlos Alcaraz",
"starts": "2026-04-17T12:00:00Z",
"periods": { "num_0": {
"money_line": {
"home": 1.95,
"away": 1.90 },
"spreads": { "-0.5": {
"hdp": -0.5, "home": 2.06,
"away": 1.82, "max": 500 } }
} }
}]
}
bucle[3 s con la clave gratuita, 0,1 s en poll]
GET/kit/v1/markets?sport_id=2&since=141
solo lo que cambió200 OK
Devuelve last como since y solo vuelven los movimientos
Cada respuesta lleva un cursor last. Pásalo como since en la siguiente llamada y el feed responde solo con los eventos que cambiaron después. Un mercado tranquilo devuelve una carga corta; uno agitado devuelve exactamente los precios que se movieron.
La clave gratuita permite 20 llamadas por minuto y 100 al día. poll permite 10 por segundo sin tope diario, y bulk 30.
{
"sport_name": "Tennis",
"last": 157,
"events": [{
"event_id": 1628594960,
"periods": { "num_0": {
"money_line": {
"home": 1.87,
"away": 1.99 }
} }
}]
}
Caídas recientes de tenis prepartido tal como las describe el endpoint REST de caídas, las más nuevas primero, cacheadas por el host de este sitio. El stream de caídas de abajo envía movimientos como estos a medida que ocurren, con sus propios nombres de campo.
El stream enviado viene con push, poll + push y bulk.
Obtén una clave y lee las caídasRetry-After: 41429 rate_limited
Superado el límite, el feed responde 429 con una cabecera Retry-After en segundos. Espera ese tiempo y repite la llamada con el mismo since. El cursor no se ha movido, así que no se salta ningún cambio.
{
"error": "rate_limited",
"window": "minute",
"limit": 20,
"retry_after_ms": 41052
}
GET/odds-drop?min_drop=5
cabecera Accept: text/event-stream, clave como ?key= o cabecera
stream abiertodata: {"type": "connected"}
un precio cayó un 5,59%data: [ alert ]
O mantén una conexión abierta y deja que las caídas lleguen a ti
El stream de caídas envía las bajadas de precio de Pinnacle a medida que se detectan: /odds-drop para mercados en vivo, /odds-drop-prematch antes del inicio. min_drop fija la caída más pequeña que merece una alerta: pásalo explícitamente, desde el 1%. El ejemplo documentado usa 5.
Cada alerta lleva el precio antes y después de la caída y nvp, el precio sin margen: la línea de Pinnacle con su margen eliminado. Compara el número de una casa blanda con él sin hacer otra solicitud.
Incluido con push, poll + push y bulk.
data: [{
"id": 1629729400,
"sport": "Basketball",
"league": "Australia - NBL1 Women",
"home": "Sunshine Coast Phoenix",
"away": "Cairns Dolphins",
"sect": "Moneyline",
"outcome": "Home",
"period": 4,
"from_price": 2.86,
"to_price": 2.7,
"nvp": 3.04,
"alerted": 1777625196,
...
}]
WSS/ws/feed?key=<your key>
{"type": "subscribe", ...}en menos de 5 s
primero la línea basesnapshot
luego cada actualizaciónen vivo
{"type": "ping", "ts": 1779200030000}
{"type": "pong"}
O toma cada frame
El stream WebSocket en bruto envía un snapshot de cada stream al que te suscribes y luego cada actualización posterior. Suscríbete en los cinco segundos siguientes a la conexión, filtra por deporte o por hasta 200 IDs de evento por stream, y responde a cada ping con un pong.
Si el socket se cae, reconecta, suscríbete de nuevo y reconstruye desde el snapshot fresco. Los frames perdidos no se repiten.
Complemento para poll, poll + push y bulk: 99 USD al mes.
{
"type": "subscribe",
"streams": ["live", "prematch"],
"sport_ids": [1, 2]
}
qué llega por el cable
Trece IDs de deporte, todas las líneas que Pinnacle cotiza en ellos
Cada evento llega con sus periodos, y cada periodo con la money line, los spreads y totales en cada hándicap que ofrece Pinnacle, los totales por equipo y la apuesta máxima de cada línea. Los especiales, como props de jugadores, vienen al añadir include_specials=1. En vivo y prepartido son llamadas separadas con la misma forma.
- 1Fútbolpinnacle 29
- 2Tenispinnacle 33
- 3Baloncestopinnacle 4
- 4Hockeypinnacle 19
- 5Fútbol americanopinnacle 15
- 6Béisbolpinnacle 3
- 7Rugbypinnacle 27, 26
- 8MMApinnacle 22
- 9Boxeopinnacle 6
- 10Voleibol, balonmanopinnacle 34, 18
- 11Esportspinnacle 12
- 12Golfpinnacle 17
- 13Críquetpinnacle 8
- sin archivo históricoNo hay un almacén de cuotas históricas. Guarda lo que necesites: un bucle con
sinceescribiendo en tu propia tabla es el historial. - solo lecturaEs un feed de datos. Las apuestas se hacen en tu casa de apuestas, no a través de él.
- una casaSolo los precios de Pinnacle. Compáralos con otras casas en tu propio código.
límites de tasa, dibujados
Precios de la API de cuotas de Pinnacle: pagas por la frecuencia con la que puedes preguntar
Cada franja son diez segundos de solicitudes al límite del plan. Con 20 por minuto puedes contar las marcas. A 10 por segundo se cierran en un rayado, a 30 por segundo casi en una barra sólida. Las caídas llegan en su propia línea, cada vez que Pinnacle se mueve.
-
trialREST, en vivo y prepartido
0 USD100 al día
-
pushcaídas, sondeo ligero
99 USDal mes
-
pollREST a velocidad
99 USDal mes
-
poll + pushvelocidad y caídas
149 USDal mes
-
bulk30 por segundo
229 USDal mes
Complemento WebSocket: +99 USD al mes en poll, poll + push y bulkLos términos de 3 y 6 meses cuestan menos: precios completos
SIGUIENTEtu primera solicitud
Empieza con la clave gratuita y sube de plan cuando el bucle la supere
La clave se emite al registrarte y nunca caduca: sin tarjeta, y la clave es tu inicio de sesión. Funciona en todos los endpoints de arriba salvo los streams; para esos, pide la demo completa de tres días (SSE + WebSocket en bruto + 10 por segundo). La documentación lista la URL base y todos los parámetros.