First-party data
RUNOUT Match API
We run our own 8-ball feed. Scorers, referee tablets and the studio vision system post straight into RUNOUT, and the markets board reprices from our data — no third-party provider in the loop.
Live in the studio
Every pot, miss and foul is posted as it happens. Scores, pattern and current ball update on the board instantly.
Freeze triggers
A single call opens the 45-second standstill and publishes the freeze market with fresh prices.
Bearer secured
Write endpoints require the feed secret. Read endpoints are public and safe to embed anywhere.
Reference
Endpoints
/api/public/feed/matchesPublicFixtures, live scores, freeze state and stream details for the markets board.
?status=live&discipline=8-ball&limit=50
/api/public/feed/matches/:idPublicOne match plus its last 50 shot-by-shot events.
—
/api/public/feed/matchesBearerCreate or update a fixture. Upserts on externalRef, so the scorer can post the same payload repeatedly.
{ "externalRef": "mnl-2026-041", "title": "Manila Table 1", "playerA": "R. Cruz", "playerB": "V. Foldes", "raceTo": 7, "streamType": "youtube", "streamUrl": "https://youtu.be/..." }/api/public/feed/eventsBearerSingle event or { events: [...] } up to 25. Advances the pattern, updates the score, and reprices the book.
{ "matchId": "uuid", "kind": "shot", "ballIndex": 5, "potted": true, "difficulty": 6.2 }/api/public/feed/freezeBearerReferee tablet calls FREEZE. Starts the 45-second standstill and opens the freeze market.
{ "matchId": "uuid", "trigger": "Snookered behind the 6", "difficulty": 8.4 }Example
Post a shot from the scorer
curl -X POST https://your-domain/api/public/feed/events \
-H "Authorization: Bearer $FEED_INGEST_SECRET" \
-H "Content-Type: application/json" \
-d '{
"matchId": "8f0c...e21",
"kind": "shot",
"player": "R. Cruz",
"ballIndex": 8,
"potted": true,
"difficulty": 7.1
}'The feed secret is stored server-side and never shipped to the browser. Operators who prefer not to run a scorer app can post the same events by hand from the Live feed tab of the trading room.
