pinnacle odds api / feed xml / migração
O feed de odds XML da Pinnacle foi aposentado. Aqui está sua substituição em JSON.
GET/kit/v1/markets?sport_id=1
{ events, last }200 OK
Os feeds públicos da Pinnacle terminaram em julho de 2025, e o feed de odds XML foi junto. Os mesmos preços agora vêm da API de odds da Pinnacle em JSON: um GET autenticado retorna o quadro, e o formato espelha os formatos legados de terceiros o bastante para que clientes existentes troquem a URL base e a chave e continuem funcionando. A chave gratuita cobre tudo nesta página: 20 requisições por minuto e 100 por dia, valores verificados em 07/11/2026.
Criar uma chave gratuitaSeus hábitos de XML, um a um
O bloco de fixture que você costumava parsear agora é um objeto de evento: os times são home e away, o horário de início é starts e a liga é league_name. O moneyline que seu parser procurava está em periods.num_0.money_line com home, draw e away como preços decimais, e spreads, totais e totais de equipe ficam ao lado, indexados pela linha.
O que o feed XML chamava de atualização agora é um cursor: toda resposta carrega last, e enviá-lo de volta como since retorna apenas os eventos que mudaram. Um poller que baixava o documento inteiro agora lê um delta.
# From XML habits to the JSON
# board. The key and base URL
# come from your account and
# the docs.
export ODDS_API_KEY="your key"
export ODDS_BASE_URL="https://..."
U="$ODDS_BASE_URL/kit/v1/markets"
H="x-portal-apikey: $ODDS_API_KEY"
# The board as JSON: events and
# the last cursor.
curl -s -H "$H" "$U?sport_id=1" \
| jq '{last, n: (.events | length)}'
# One line per match: the fields
# your XML parser used to read.
curl -s -H "$H" "$U?sport_id=1" \
| jq -r '.events[]
| [.home, .away, .starts,
.periods.num_0.money_line.home,
.periods.num_0.money_line.draw,
.periods.num_0.money_line.away]
| @tsv'
Selecione o código para copiá-lo.
MAPEARelemento para campo
preços decimais em tudoJSON
De elementos XML a campos JSON
Quaisquer que sejam as tags exatas que seu parser antigo lia, os conceitos se traduzem diretamente. O elemento de fixture vira uma entrada no array events; o agrupamento por esporte vira o parâmetro sport_id na requisição; os elementos de moneyline, handicap e totais viram money_line, spreads e totals sob o período; e o timestamp do documento vira o cursor last que você devolve como since. Os preços são decimais em tudo, então nenhuma conversão fracionária ou americana sobrevive à mudança a menos que você a adicione.
Duas coisas não têm equivalente em XML que valha portar. Preços ao vivo se movem rápido demais para um modelo de documento, então o mesmo endpoint de quadro os serve com uma frescura que o feed XML nunca teve, e os alertas de queda chegam como um stream empurrado em vez de um diff que você calculava à mão; a página de Python mostra esse leitor.
O que as pessoas perguntam quando o feed XML morre
Respostas curtas antes de reescrever o parser.
- Ainda existe um feed de odds XML da Pinnacle?
Não. Os feeds públicos da Pinnacle terminaram em julho de 2025. O caminho atual é a API de odds da Pinnacle em JSON, servida por um feed independente com uma chave gratuita no cadastro.
- Posso manter meu parser de XML?
Nenhuma parte da API de JSON fala XML. A jogada pragmática é um adaptador fino: uma função que busca o JSON e emite as linhas que seu parser já aceita.
- O feed em JSON cobre os mesmos esportes?
Sim, o quadro cobre os esportes que a Pinnacle precifica, ao vivo e pré-jogo. Os IDs de esporte que sua integração usava continuam inteiros estáveis na nova API.
- Quanto custa migrar?
Nada enquanto você testa: a chave gratuita permite 20 requisições por minuto e 100 por dia, o bastante para portar e verificar um parser antes de qualquer decisão de plano.
PRÓXIMObash xml-to-json.sh
Uma noite para deixar o XML para trás
Crie a chave gratuita, aponte o script para o seu esporte e compare as linhas com o documento de que você se lembra. Quando o loop de polling precisar de mais de 100 chamadas por dia, a página de preços mostra o plano que sobe o teto.