API de escanteios de futebol Pinnacle
Resposta: as linhas de escanteio chegam como eventos de futebol relacionados (parentId aponta ao jogo principal) com units igual a "Corners" (ver schema). Não são um desporto à parte nem specials. As linhas main de escanteio entram em qualquer plano com soccer, também Free e Hobby; Free/Hobby são só main, por isso as alternate precisam de Builder (ou Pro). No WebSocket Builder, subscreva soccer com main: false para receber também as alternate e conserve mercados cujo evento pai tenha units === "Corners".
Filtrar escanteios de um 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"]])
Subscrição WebSocket#
{
"type": "subscribe",
"sports": ["soccer"],
"markets": ["total", "spread", "moneyline"],
"main": false,
"specials": true
}
Depois conserve eventos com units == "Corners". As chaves de estado vão por id de mercado (eventId:key).
CTA#
Profundidade completa, incluindo alternate de escanteio: Builder (€99/mês). Teste de 3 dias; cartão obrigatório. REST gratis: signup.
Perguntas frequentes#
Há filtro market=corners?#
Não. Os escanteios identificam-se por units do evento, não por um enum de market-type. Os tipos continuam moneyline / spread / total / team_total.
Free e Hobby incluem escanteios?#
Sim, as linhas main, se soccer for um dos seus desportos. As alternate começam no Builder.
Conteúdo educativo para adultos?#
Sim (18+).
Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.