pnclFEED Chave gratuita

Notas de quickstart

Pegue odds da Pinnacle de uma liga, não do esporte inteiro

O endpoint de mercados responde por esporte, então o filtro de liga fica no seu código. Descubra os nomes das ligas e filtre os eventos.

O endpoint de mercados da API de odds da Pinnacle seleciona por esporte, não por liga. Uma requisição com um ID de esporte retorna o board inteiro daquele esporte, cada evento com suas linhas. Para acompanhar uma liga ou uma partida, você busca o board uma vez e filtra os eventos no seu próprio código. A contagem de requisições fica exatamente igual; o que muda é quanto ruído chega ao resto do seu programa.

O endpoint responde por esporte

Uma chamada ao endpoint de mercados com um ID de esporte retorna o board completo daquele esporte como JSON: um array de eventos mais um cursor last para a próxima leitura delta, como o quickstart de curl mostra. Não existe parâmetro de liga para adicionar. Cada evento no array carrega o nome da sua liga ao lado dos times e do horário de início, o que torna o filtro no cliente possível.

Uma requisição continua sendo um board, quer você fique com três eventos ou trezentos, então filtrar é uma questão de foco, não de cota.

Descubra os nomes das ligas primeiro

Os nomes das ligas chegam como strings simples, e adivinhá-los falha em silêncio: um espaço, um traço ou um prefixo de país que você não esperava, e seu filtro não encontra nada para sempre. Gaste uma requisição numa passagem de descoberta antes de fixar qualquer coisa no código:

names = sorted({ev.get("league_name", "") for ev in data["events"]})
for n in names:
    print(n)

Rode uma vez, copie as strings exatas que você precisa e coloque-as num conjunto. Depois, o filtro em si é uma linha:

LEAGUES = {"England - Premier League", "Spain - La Liga"}

def wanted(ev):
    return ev.get("league_name") in LEAGUES

Aplique-o a toda resposta, incluindo leituras delta: o cursor since retorna apenas eventos alterados, e um evento alterado de uma liga que você não segue ainda é ruído. O loop do quickstart de Python é o lugar certo para encaixar o filtro, logo depois de o envelope ser parseado.

Encontrando uma partida

Uma única partida é o mesmo filtro com uma condição mais apertada: filtre pela liga, depois pelos nomes dos dois times. As strings de times têm a mesma ressalva das strings de ligas, então tire-as de uma passagem de descoberta também. Mantenha o horário de início na comparação quando os times se enfrentam duas vezes na semana, porque pares de nomes não são únicos ao longo de uma temporada.

Se você faz polling de um esporte inteiro só por uma partida, mantenha o intervalo honesto. A chave gratuita permite 20 chamadas por minuto e 100 por dia, segundo a página de preços, verificado em 2026-09-30, e o acompanhamento de uma partida única cabe tranquilo nela a uma chamada a cada quinze minutos.

O que o filtro não muda

Filtrar encolhe a sua saída, não a sua conta. O board é a unidade que a API serve, e o medidor conta chamadas. Também não muda o que o cursor retorna: uma leitura delta entrega eventos inteiros, não fatias parciais de liga. O que o filtro compra é um downstream mais limpo: menos linhas no seu armazenamento, menos alertas para deduplicar e logs que dizem algo quando você os lê.

Busque o board, fique com a sua fatia, descarte o resto. A API continua simples, e o seu programa continua focado.