Skip to main content
Os fluxos em tempo real exigem o plano Sharp.
wss://api.apinn.io/ws envia os movimentos de odds tal como o fluxo SSE, com uma diferença que conta: a ligação é bidirecional, pelo que pode dizer ao servidor o que pretende. Sem subscrição recebe todo o book — exatamente o que o fluxo SSE envia. Passe a sua chave no cabeçalho X-API-Key, ou como ?key=A_SUA_CHAVE no URL (um navegador não pode definir cabeçalhos numa ligação WebSocket).
Node.js

Subscrever

Envie {"op": "subscribe", ...} com qualquer combinação dos filtros abaixo. São cumulativos: uma linha tem de satisfazer todos os filtros que definir. Uma nova subscrição substitui a anterior e devolve um snapshot atualizado. {"op": "unsubscribe"} devolve-lhe o book completo, e {"op": "ping"} responde {"t": "pong"}.

Mensagens do servidor

Cada delta traz também um seq, incrementado a cada difusão. Um cliente sem subscrição recebe todos os números seguidos: uma falha indica uma mensagem perdida. Um cliente subscrito a um âmbito verá falhas normalmente — as difusões que não lhe diziam respeito.

Remoções

removed e removed_specials listam as séries que já não existem: um jogo terminado, um mercado fechado. Apague-as do seu book. Um cliente que as ignora continua a servir odds de mercados desaparecidos: medido ao longo de nove horas, isso representa cerca de 2,5 % do book, e não para de crescer. Uma entrada removida traz apenas o que identifica a série, sem preços: event_id, period, market, line para as odds; event_id, special_id, period, contestant_name, handicap para os specials. São filtradas pela sua subscrição como tudo o resto. As linhas têm a mesma forma que em /api/odds: event_id, period, market, line, as odds (odds1/odds0/odds2), as odds justas (todds*), status e timestamp — a hora da última alteração de preço, não a do envio.

Porquê subscrever

Filtrar não é apenas conveniência. Medido no book em direto, só o futebol representa cerca de 40 % dos movimentos, o moneyline em tempo regulamentar cerca de 49 %, e um jogo isolado é insignificante. Um cliente que segue meia dúzia de jogos passa de dezenas de milhares de linhas por hora para algumas dezenas.
Tal como o fluxo SSE, a ligação conta como 1 pedido, no momento em que se liga. Aquilo que subscreve muda o volume recebido, não o preço.
As linhas de odds trazem event_id, period e market, mas não o desporto nem a liga — estes são resolvidos através dos fixtures. Um evento ausente do índice de fixtures não satisfaz um filtro sports ou leagues; filtre por events se precisar dele de imediato.