These docs are still in beta and not quite complete yet.
Documentation

Scoreboard data

Every Bridge has a Data URL where you can access the usable scoreboard data. It's available as JSON, XML, CSV, plain text, or a live WebSocket feed.

Your Data URL

Pick a bridge to fill in the examples below.

Your Bridge ID
your-bridge-id

Sign in to load your bridges, or copy the ID from your dashboard.

Data URL

https://YOUR_DATA_URL

No authentication

Since most graphics software do not allow you to attach headers in requests, Data URL's are publicly available, with no authentication required to view the data.

Routes

Different URI Paths Used

Path Protocol Response
/ GET Rendered HTML graphic
/json GET Current data as JSON
/xml GET XML entries in a <data> element
/txt GET Sorted field: value lines
/csv GET Sorted header and value rows
/ws WebSocket Live data as JSON objects

Request

bash
curl "https://YOUR_DATA_URL/json"

Response

Example response, field names may differ based on the sport/scoreboard.

json
{
  "away_name": "VISITOR",
  "away_possession": "1",
  "away_possession_graphic": "<",
  "away_score": "17",
  "away_timeouts": "3",
  "away_timeouts_graphic": "---",
  "ball_on": "35",
  "distance": "7",
  "down": "2",
  "game_clock": "08:42",
  "home_name": "HOME",
  "home_possession": "0",
  "home_possession_graphic": "",
  "home_score": "24",
  "home_timeouts": "2",
  "home_timeouts_graphic": "--",
  "period": "3",
  "period_text": "3RD",
  "playclock": "25"
}

WSS /ws

Sends the full object on connect if data is available, then again after every change. Each message is a complete snapshot, not a diff.

Browser client

javascript
const dataUrl = 'https://YOUR_DATA_URL';
const wsUrl = dataUrl.replace(/^http/, 'ws') + '/ws';
const socket = new WebSocket(wsUrl);

socket.onmessage = ({ data }) => {
  console.log(JSON.parse(data));
};

An empty feed sends nothing until data arrives; clearing it sends {}. Protocol-level pings are handled automatically. Reconnect with backoff after a close.