Como obter odds da Pinnacle em Python (REST)
Resposta: pip install requests, defina PINNFEED_KEY e chame GET https://pinnfeed.io/v1/odds com o cabeçalho x-api-key. O plano Free funciona na hora (30 s de atraso, 2 esportes). Para um livro em memória ao vivo, use o exemplo de WebSocket em Python no Builder.
Snapshot em cerca de 15 linhas#
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)
Outros endpoints úteis: /v1/sports, /v1/events, /v1/drops e /v1/closing/{id} (Builder ou superior). Referência: docs REST.
Quando o WebSocket é melhor#
| Tarefa | Use |
|---|---|
| Planilhas, cron, coleta para análise | REST (esta página) |
| Bot de steam, livro ao vivo, alertas no Telegram | WebSocket (exemplo) |
Próximo passo com dados: odds num DataFrame do pandas.
Planos#
Chave grátis · Builder (€99/mês) para o push. Teste de 3 dias; é preciso cartão e a cobrança acontece depois do dia 3, se você não cancelar.
Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.
Perguntas frequentes#
Preciso de WebSocket no plano Free?#
Não. O Free é só REST por definição.
Onde fica a paginação?#
limit e offset nos endpoints de lista: veja REST e a paginação em Python.