On the wire · 04:46:03 UTC Live 550 · Prematch 14,363 · Markets 56,924 Vol. I · No. 5 · Friday 13 November 2026 wss://pinnfeed.io/v1/stream
PinnFeed
Caso de uso · Ciencia de datos

Datos de cuotas Pinnacle para data scientists

Actualizado el · PinnFeed · 2 min de lectura

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#

TareaCampos y endpoints
Comparar las probabilidades de un modelofairProb a una hora fija antes del inicio (pandas)
Evaluar contra el cierre/v1/closing?date= (Builder) (informe CLV)
Estudiar el movimiento de líneasTus propios frames delta del WebSocket (almacenamiento en Postgres)
Filtros según liquidezmaxStake por mercado
Usuarios de Rcliente 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.

El plan WebSocket: Builder, 99 €/mes.

Cuotas de Pinnacle en tiempo real por un único WebSocket: los 13 deportes, todos los mercados, cuotas justas sin margen y cuotas de cierre. 3 días gratis y cancelas con un clic.

¿Aún no quieres registrarte?

Recibe por email la guía rápida en 3 pasos (clave gratis, primera llamada, WebSocket), en inglés.

Te enviamos la guía rápida una sola vez, ahora. Nada más salvo que marques la casilla de abajo; cada email incluye un enlace para darte de baja con un clic. Privacidad.

Solo mayores de 18 años. Datos de cuotas para desarrollo de software; no aceptamos apuestas.

Form K-1 · Free API key

Get your free API key.

One field. No password, no card: enter your email, click the link we send, and your key is on screen.

By continuing you agree to the Terms and Privacy Policy.

One free key per email. Link valid for 20 minutes.