Cómo obtener cuotas de Pinnacle en Python (REST)
Respuesta: pip install requests, define PINNFEED_KEY y llama a GET https://pinnfeed.io/v1/odds con la cabecera x-api-key. El plan Free funciona al momento (30 s de retraso, 2 deportes). Para un libro en memoria en vivo, usa el ejemplo de WebSocket en Python en Builder.
Snapshot en unas 15 líneas#
import os, requests
KEY = os.environ["PINNFEED_KEY"]
r = requests.get(
"https://pinnfeed.io/v1/odds",
params={"sport": "soccer", "market": "moneyline", "main": "true", "limit": 20},
headers={"x-api-key": KEY},
timeout=15,
)
r.raise_for_status()
for ev in r.json().get("events", []):
m = next((x for x in ev["markets"] if x["type"] == "moneyline"), None)
if not m:
continue
prices = {o["name"]: (o["decimal"], o["fair"]) for o in m["outcomes"]}
print(ev["home"], "v", ev["away"], prices)
Otros endpoints útiles: /v1/sports, /v1/events, /v1/drops y /v1/closing/{id} (Builder o superior). Referencia: docs REST.
Cuándo es mejor el WebSocket#
| Tarea | Usa |
|---|---|
| Hojas de cálculo, cron, descargas para análisis | REST (esta página) |
| Bot de steam, libro en vivo, alertas en Telegram | WebSocket (ejemplo) |
Siguiente paso con datos: cuotas en un DataFrame de pandas.
Planes#
Clave gratis · Builder (€99/mes) para el push. 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. Sin pronósticos ni ganancias garantizadas. En España, apuesta solo con operadores con licencia de la DGOJ.
Preguntas frecuentes#
¿Necesito WebSocket en el plan Free?#
No. Free es solo REST por diseño.
¿Dónde está la paginación?#
limit y offset en los endpoints de listas: mira REST y la paginación en Python.