period, market, line) e tem um line_id inteiro estável.
Tipos de mercado
Para os mercados 2-way (spread/totals),
odds0 é null.
units — a unidade da linha (ténis: jogos vs sets)
Alguns desportos cotam o mesmo mercado em duas unidades diferentes. No ténis, um spread pode ser um
handicap de sets (linha ±1.5) ou um handicap de jogos (linha -4.5, +5.5…), e um totals pode
referir-se aos sets (2.5) ou aos jogos (21.5). O campo units elimina a ambiguidade:
Os totais por jogador (
home_totals / away_totals) do ténis estão sempre em jogos (units = "Games").
O campo está presente em /api/odds, /api/opening, /api/closing, /api/history e nos fluxos em tempo real.
Períodos
period = 0 = jogo completo. Os outros períodos dependem do desporto (1 = 1.ª parte / set, etc.). Obtenha o catálogo através de /api/periods.
Linhas principais vs alt-lines
Por defeito,/api/odds devolve todas as linhas (incluindo as alternativas). Adicione main_lines_only=1 para manter apenas a linha principal de cada mercado (alt_line_id nulo).
max_win
max_win = aposta máxima aceite (limite Pinnacle) na linha, indicador de liquidez.
Histórico: max_win e status são pontos da série
/api/history devolve um ponto por alteração real, nunca um valor repetido. É criado um ponto
assim que um destes campos muda:
Um
max_win a subir enquanto a odd não mexe é um sinal de confiança da casa; um max_win que
colapsa precede muitas vezes uma suspensão. A série já vem deduplicada do servidor.
Isolar uma única aposta
Sem filtro,/api/history devolve a cronologia de todas as linhas do jogo. Num jogo de
basquetebol com as suas alt-lines isso ultrapassa habitualmente os 24 000 pontos repartidos por mais
de 400 apostas — quando só queria uma curva.
Duas formas de designar a aposta, consoante o que já tenha à mão:
Os filtros valem igualmente para
opening e closing: obtém a abertura e o fecho da aposta
pedida, não os das outras 414.
Medido num jogo real:
Os três níveis de estado
A Pinnacle publica um estado em três escalas diferentes, cada uma com o seu vocabulário. Confundi-las é o erro mais frequente: um mercado fechado não significa um jogo terminado, e uma parte liquidada não fecha as apostas no jogo inteiro.Nível linha
O estado pertence à linha, não ao mercado. Dentro do mesmo(event_id, period, market) os
degraus divergem — a Pinnacle fecha um total concreto e mantém abertos os vizinhos:
status, um inteiro em paridade BIC (1 = aberto, 2 = todo o resto), e
status_raw, a palavra tal como a Pinnacle a envia.
status_raw só é preenchido nas odds atuais. O histórico (/api/history, full_history=1)
guarda apenas o inteiro: a palavra original não é armazenada, pelo que o campo vale null.Nível período
/api/fixtures expõe periods, uma lista {period, status, cutoff}. É aqui que a Pinnacle declara
que uma parte está fechada, independentemente das linhas e do estado do jogo:
A liquidação de um período é um evento por direito próprio no fluxo: uma parte que passa a
settled desencadeia uma trama event: update, sem que qualquer odd precise de se mover.Distinguir uma suspensão de um fecho definitivo
Não é um campo que o diz: é o tempo:- suspensão — a linha continua publicada, passa a
closed, conserva a última odd conhecida (não a apagamos, tal como a interface da Pinnacle esbate o preço) e depois volta aopen; - fecho definitivo — a linha deixa de ser republicada: o seu
cutoffexpira, sai de/api/oddse uma remoção é anunciada no fluxo (ver Pré-jogo e direto).