Skip to content

Push / webhooks

Want scores pushed into your backend instead of polling? Here’s the honest state of play.

Today: a thin WebSocket → webhook bridge

Section titled “Today: a thin WebSocket → webhook bridge”

Run a tiny always-on process that holds a Socket.io connection and re-emits events to your own HTTP endpoint. This gives you push semantics now, with no MyScore-side changes:

import { io } from 'socket.io-client';
const socket = io('https://api.myscore.live', {
auth: { token: process.env.MYSCORE_M2M_TOKEN },
});
socket.emit('subscribe-multiple-matches-public', MATCH_IDS);
socket.on('match:scoreUpdatePublic', (event) =>
fetch('https://your-backend.example/hooks/myscore', {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify(event),
}),
);

Host it next to your backend; it reconnects automatically.

A first-class webhook system — register a callback URL + secret, receive signed match.scoreUpdate / match.statusUpdated deliveries with retries — is under consideration. If your integration needs it, tell us your use case; it helps us prioritize.