Skip to content

Recipes

Short, working answers to “how do I…”. Each links to the method behind it.

”Show every live match on a wall display”

Section titled “”Show every live match on a wall display””

One call, polled every 10s. That’s literally the widget below — it’s GET /live/matches on a timer:

Live right now
Loading live matches…
GET https://api.myscore.live/api/v1/live/matches

REST polling for the loop, or WebSocket for instant updates.

Resolve the court, then subscribe to whatever’s on it:

const { matches } = await fetch(
'https://api.myscore.live/api/v1/live/courts/crt_centre',
).then((r) => r.json());
if (matches?.[0]) socket.emit('subscribe-match-public', matches[0].id);

By the court (QR).

Public REST + a 10s poll is enough for an <iframe> widget — no token, no backend. Sprinkle in WebSocket for that live feel.

”A bot that posts scores to Slack/Discord”

Section titled “”A bot that posts scores to Slack/Discord””

Run a small always-on process that listens over WebSocket and forwards events to your webhook. See the bridge recipe on Push / webhooks.