Testar o WebSocket de odds da Pinnacle com wscat
Resposta: rode npx wscat -c "wss://pinnfeed.io/v1/stream?key=ps_live_sua_chave&sports=soccer&main=true". Como a URL traz sports, o servidor assina na hora e envia welcome, subscribed, as partes do snapshot e depois frames delta. Sem filtros na URL, cole um subscribe em JSON em até 30 segundos ou o servidor fecha com 4002 no_subscription. Precisa de uma chave Builder ou Pro.
Opção A: filtros na URL#
npx wscat -c "wss://pinnfeed.io/v1/stream?key=ps_live_your_key&sports=tennis&markets=moneyline&main=true"
Os filtros da URL aceitam os mesmos nomes da mensagem JSON (sports, events, leagues, markets, live, main), separados por vírgula. A assinatura automática acontece quando há sports ou events.
Opção B: cabeçalho + JSON#
npx wscat -c wss://pinnfeed.io/v1/stream -H "x-api-key: ps_live_your_key"
> {"type":"subscribe","sports":["basketball"],"markets":["spread","total"],"main":true}
websocat funciona do mesmo jeito: websocat -H "x-api-key: ps_live_sua_chave" wss://pinnfeed.io/v1/stream.
Manter a conexão#
O servidor envia {"type":"ping"} a cada 20 s e fecha o socket após 60 s sem pong. O wscat não responde pings JSON sozinho, então em sessões longas digite {"type":"pong"} ou passe para um script: exemplo em Python.
Respostas comuns ao conectar#
| Você vê | Significa |
|---|---|
401 missing_key / invalid_key | Sem chave, ou chave desconhecida ou revogada |
403 plan_lacks_ws | Chave Free/Hobby: o WebSocket começa no Builder |
429 connection_limit | Já há 3 (Builder) ou 10 (Pro) conexões abertas |
fechamento 4002 no_subscription | Nenhum subscribe em 30 s |
Planos#
Builder (€99/mês, 3 conexões) ou Pro (10). Teste de 3 dias; o cartão é obrigatório e a cobrança ocorre após o dia 3, a menos que você cancele. Docs.
Conteúdo educativo para maiores de 18 anos.
Perguntas frequentes#
É seguro colocar a chave na URL?#
Funciona, mas URLs vão parar no histórico e nos logs. Fora de testes rápidos use o cabeçalho, e rotacione a chave se ela vazou.
Por que a primeira mensagem é tão grande?#
O snapshot contém todos os eventos e mercados dos seus filtros, em várias partes; reduza os filtros para um teste mais leve.
Dá para ativar compressão?#
O wscat não negocia permessage-deflate por padrão; muitas bibliotecas sim.