API de córners de fútbol Pinnacle
Respuesta: las líneas de córner llegan como eventos de fútbol relacionados (parentId apunta al partido principal) con units igual a "Corners" (ver schema). No son un deporte aparte ni specials. Las líneas main de córner entran en todo plan con soccer, también Free y Hobby; Free/Hobby son solo main, así que las líneas alternate de córner necesitan Builder (o Pro). En el WebSocket Builder, suscríbase a soccer con main: false para recibir también las alternate, y conserve mercados cuyo evento padre tenga units === "Corners".
Filtrar córners de un snapshot#
import os, requests
KEY = os.environ["PINNFEED_KEY"]
r = requests.get(
"https://pinnfeed.io/v1/odds",
params={"sport": "soccer", "live": "true", "limit": 100},
headers={"x-api-key": KEY},
timeout=15,
)
r.raise_for_status()
for ev in r.json().get("events", []):
if ev.get("units") != "Corners":
continue
print(ev["home"], "v", ev["away"], ev.get("league", {}).get("name"))
for m in ev.get("markets", []):
print(" ", m["type"], m.get("line"), [(o["name"], o["decimal"], o["fair"]) for o in m["outcomes"]])
Suscripción WebSocket#
{
"type": "subscribe",
"sports": ["soccer"],
"markets": ["total", "spread", "moneyline"],
"main": false,
"specials": true
}
Luego conserve eventos con units == "Corners". Las claves de estado van por id de mercado (eventId:key).
CTA#
Profundidad completa, incluidas alternate de córner: Builder (€99/mes). Prueba de 3 días; tarjeta requerida. REST gratis: signup.
Preguntas frecuentes#
¿Hay filtro market=corners?#
No. Los córners se identifican por units del evento, no por un enum de market-type. Los tipos siguen siendo moneyline / spread / total / team_total.
¿Free y Hobby incluyen córners?#
Sí, las líneas main, si soccer es uno de sus deportes. Las alternate empiezan en Builder.
¿Contenido educativo para adultos?#
Sí (18+).
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.