Datos de cuotas Pinnacle para data scientists
o empieza la prueba de Builder de 3 días
Clave gratis: sin tarjeta. Al continuar aceptas los Términos y la Política de privacidad. · 3 días gratis, luego 99 €/mes (IVA incl. cuando corresponde) · tarjeta obligatoria · se cobra después del día 3 salvo que canceles
Respuesta: PinnFeed te da los precios de Pinnacle en JSON limpio con los campos de referencia que necesitan los modelos: decimal, fairProb (probabilidad sin margen, método proporcional), margin y maxStake por mercado. Úsalo de dos formas: recoge tus propios snapshots de /v1/odds o del WebSocket y, en Builder, descarga los registros de cierre guardados por día con /v1/closing?date=YYYY-MM-DD (hasta 2.000 filas por página). Las exportaciones históricas masivas (CSV/Parquet) son una opción de Enterprise.
Tareas típicas#
| Tarea | Campos y endpoints |
|---|---|
| Comparar las probabilidades de un modelo | fairProb a una hora fija antes del inicio (pandas) |
| Evaluar contra el cierre | /v1/closing?date= (Builder) (informe CLV) |
| Estudiar el movimiento de líneas | Tus propios frames delta del WebSocket (almacenamiento en Postgres) |
| Filtros según liquidez | maxStake por mercado |
| Usuarios de R | cliente httr2 |
Registros de cierre en un DataFrame (Builder)#
import os, requests, pandas as pd
KEY = os.environ["PINNFEED_KEY"] # ps_live_...
def closing_day(day, sport="soccer"):
rows, offset = [], 0
while True:
r = requests.get("https://pinnfeed.io/v1/closing", headers={"x-api-key": KEY}, timeout=30,
params={"date": day, "sport": sport, "main": "true", "limit": 2000, "offset": offset})
r.raise_for_status()
batch = r.json()["closing"]
rows += batch
if len(batch) < 2000:
break
offset += 2000
return pd.json_normalize(rows)
df = closing_day("2026-11-08")
print(df[["eventId", "home", "away", "market.type", "market.line", "market.margin"]].head())
Para guardar los cierres en Parquet y consultarlos con SQL: DuckDB + Parquet.
Límites honestos#
- Solo Pinnacle: sin otras casas, sin alineaciones ni estadísticas de jugadores.
- Los registros de cierre existen desde que PinnFeed empezó a guardarlos; no hay un archivo profundo en los planes de autoservicio.
- Tu propio histórico de snapshots empieza cuando empiezas a registrarlo.
Qué plan#
Free (30 s de retraso, 2 deportes, 1.000 peticiones al día) basta para diseñar un esquema. Builder (€99/mes) añade el WebSocket, los 13 deportes y los registros de cierre. Enterprise: exportaciones masivas CSV/Parquet, SLA y licencia comercial. Prueba de 3 días; se requiere tarjeta y se cobra después del día 3 salvo que canceles.
Contenido educativo para mayores de 18 años. Uso de investigación; sin pronósticos ni ganancias garantizadas.
Preguntas frecuentes#
¿Puedo usar los datos en un modelo comercial?#
Usarlos dentro de tus propios modelos y productos está permitido según la Política de uso aceptable; redistribuirlos como feed de datos requiere Enterprise.
¿fairProb es la probabilidad real?#
No. Es el precio de Pinnacle sin el margen, quitado de forma proporcional: una referencia de mercado sólida, no la verdad absoluta.
¿Hay un SDK de Python?#
No hace falta; requests o httpx más /openapi.json bastan.