Frames raw da Pinnacle no WebSocket (Pro)
Resposta: no Pro (e Enterprise), adicione "format":"raw" ao seu subscribe. Em vez de frames normalizados snapshot/delta, o PinnFeed envia frames raw: os registros de partidas e mercados da Pinnacle, como a Pinnacle os publica, dentro de um pequeno envelope do PinnFeed. Os frames raw são filtrados só por esporte: liga, evento, mercado e main não se aplicam, não há snapshot ao assinar e não são adicionados fair, fairProb nem margin. No Builder, o mesmo pedido devolve um frame error com código plan_lacks_raw.
Subscribe#
{"type":"subscribe","sports":["soccer","tennis"],"format":"raw"}
O servidor responde subscribed com "format":"raw". Continue a responder a {"type":"ping"} com {"type":"pong"} a cada 20 s; o timeout de pong de 60 s e o fecho 4008 slow_consumer (buffer > 16 MB) continuam a aplicar-se. O raw costuma ser mais pesado do que o normalizado.
Formato do frame#
{"type":"raw","seq":1842,"ts":1794217196688,"sportId":29,"sport":"soccer","channel":"live","kind":"matchup","action":"upsert","eventId":1640275337,"data":{"id":1640275337,"league":{},"participants":[],"markets":[]}}
| Campo | Significado |
|---|---|
type | Sempre raw. |
seq | Contador crescente de frames raw neste servidor. |
ts | Quando o PinnFeed enviou o frame (ms desde epoch). |
sportId, sport | Id de esporte da Pinnacle e nome de esporte do PinnFeed. |
channel | live ou prematch. |
kind | matchup (um evento), matchups (lista de eventos), markets (todos os mercados de um evento) ou snapshot (lista completa de eventos com mercados, quando o feed (re)inicia). |
action | upsert, remove (data é só {"id":…}) ou replace (a lista substitui o que você tem daquele evento ou esporte). |
eventId | O evento a que o frame se refere (matchup e markets). |
part, final | Só em listas grandes de markets enviadas em partes: aplique a lista quando chegar a parte com final: true. |
data | Registro(s) da Pinnacle sem normalização: preços americanos e nomes de campo da Pinnacle. |
Normalizado ou raw?#
| Normalizado (todos os planos WS) | Raw (Pro, Enterprise) | |
|---|---|---|
| Esquema | PinnFeed v1 documentado (schema) | Envelope do PinnFeed + registros da própria Pinnacle (campos da Pinnacle) |
| Filtros | sports, leagues, events, markets, live, main, specials | só sports |
| Snapshot na assinatura | Sim (opt-out snapshot:false) | Não |
| Fair odds e margem | Incluídos | Não adicionados |
| Uso típico | Apps, bots, dashboards | Normalizador próprio, arquivo, debug |
A maioria dos projetos deve ficar nos frames normalizados. Escolha raw só se quiser montar seu próprio normalizador sobre o formato de registros da Pinnacle ou arquivar os registros.
Planos#
Pro custa 199 €/mês com 10 conexões WebSocket e 30 req/s REST; Builder (99 €/mês) tem frames normalizados com 3 conexões. Teste de 3 dias; cartão obrigatório e cobrado após o dia 3 salvo cancelamento. Preços · Docs WebSocket.
Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.
Veja também: snapshot e delta · Map de snapshot/delta em Node.
Perguntas frequentes#
Uma conexão pode misturar raw e normalizado?#
Não. O formato é por conexão; abra uma segunda para o outro formato.
O raw é mais rápido?#
Salta a normalização, mas o PinnFeed não publica uma cifra de latência para nenhum dos formatos. Meça do seu lado.
Os frames raw estão documentados?#
O envelope acima faz parte do protocolo PinnFeed v1. Os registros dentro de data seguem o formato próprio da Pinnacle, que o PinnFeed não versiona; se precisar de um esquema estável, use frames normalizados.