Frames raw de Pinnacle en el WebSocket (Pro)
Respuesta: en Pro (y Enterprise), añade "format":"raw" a tu subscribe. En lugar de frames normalizados snapshot/delta, PinnFeed envía frames raw: los registros de partidos y mercados de Pinnacle, tal como los publica Pinnacle, dentro de un sobre pequeño de PinnFeed. Los frames raw solo se filtran por deporte: liga, evento, mercado y main no aplican; no hay snapshot al suscribir y no se añaden fair, fairProb ni margin. En Builder la misma petición devuelve un frame error con código plan_lacks_raw.
Subscribe#
{"type":"subscribe","sports":["soccer","tennis"],"format":"raw"}
El servidor responde subscribed con "format":"raw". Sigue respondiendo a {"type":"ping"} con {"type":"pong"} cada 20 s; el timeout de pong de 60 s y el cierre 4008 slow_consumer (buffer > 16 MB) siguen aplicando. El raw suele ser más pesado que el normalizado.
Formato del 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 | Siempre raw. |
seq | Contador creciente de frames raw en este servidor. |
ts | Cuándo envió PinnFeed el frame (ms desde epoch). |
sportId, sport | Id de deporte de Pinnacle y nombre de deporte de PinnFeed. |
channel | live o prematch. |
kind | matchup (un evento), matchups (lista de eventos), markets (todos los mercados de un evento) o snapshot (lista completa de eventos con mercados, al (re)arrancar el feed). |
action | upsert, remove (data es solo {"id":…}) o replace (la lista sustituye lo que tengas de ese evento o deporte). |
eventId | El evento al que se refiere el frame (matchup y markets). |
part, final | Solo en listas grandes de markets enviadas por partes: aplica la lista cuando llegue la parte con final: true. |
data | Registro(s) de Pinnacle sin normalizar: precios americanos y nombres de campo de Pinnacle. |
¿Normalizado o raw?#
| Normalizado (todos los planes WS) | Raw (Pro, Enterprise) | |
|---|---|---|
| Esquema | PinnFeed v1 documentado (schema) | Sobre de PinnFeed + registros propios de Pinnacle (campos de Pinnacle) |
| Filtros | sports, leagues, events, markets, live, main, specials | solo sports |
| Snapshot al suscribir | Sí (opt-out snapshot:false) | No |
| Fair odds y margen | Incluidos | No se añaden |
| Uso típico | Apps, bots, dashboards | Normalizador propio, archivado, depuración |
La mayoría de proyectos deberían quedarse en frames normalizados. Elige raw solo si quieres montar tu propio normalizador sobre el formato de registros de Pinnacle o archivar los registros.
Planes#
Pro cuesta 199 €/mes con 10 conexiones WebSocket y 30 req/s REST; Builder (99 €/mes) tiene frames normalizados con 3 conexiones. Prueba de 3 días; se requiere tarjeta y se cobra tras el día 3 salvo que canceles. Precios · Docs WebSocket.
Contenido educativo para mayores de 18 años. Sin pronósticos ni ganancias garantizadas. En España, apuesta solo con operadores con licencia de la DGOJ.
Ver también: snapshot y delta · Map de snapshot/delta en Node.
Preguntas frecuentes#
¿Una conexión puede mezclar raw y normalizado?#
No. El formato es por conexión; abre una segunda para el otro formato.
¿Es más rápido el raw?#
Se salta la normalización, pero PinnFeed no publica una cifra de latencia para ninguno de los dos formatos. Mide en tu lado.
¿Están documentados los frames raw?#
El sobre de arriba forma parte del protocolo PinnFeed v1. Los registros dentro de data siguen el formato propio de Pinnacle, que PinnFeed no versiona; si necesitas un esquema estable, usa frames normalizados.