Endpoints
Two endpoints expose your bridge's current state. Swap https for
wss on either URL to subscribe: the socket sends the current object on
connect, then a new one after each change.
Try it
Pick a bridge to populate the examples below with its data.
GET /v1/bridge
The current bridge record. Fields vary by controller and sport.
Request
curl --request GET \
--url https://api.scorescrape.io/v1/bridge \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_BRIDGE_ID'Response
Example bridge
{
"friendly_name": "Home Stadium",
"status": "online",
"type": "Bridge Pro",
"is_setup": true,
"connected_model": "daktronics all sport 5000",
"connected_sport": "football",
"connected_baud": 19200,
"data_url": "https://example.tunwg.scorescrape.io",
"version": "1.2.0"
}Omits owner, id, created_at,
updated_at, deleted_at, and suspension_reason.
The socket also sends {"type":"ping"} as an application-level heartbeat;
reply with {"type":"pong"}. WebSocket protocol pings are handled by the
client library.
GET /v1/graphics
The saved HTML graphic and its config. Returns No Graphics Configured if none
is set.
Request
curl --request GET \
--url https://api.scorescrape.io/v1/graphics \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_BRIDGE_ID'Response
Example response
{
"html": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<meta charset=\"UTF-8\">\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<title>ScoreScrape - VISITOR vs HOME</title>\n\t<style>\n\t\t* {\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\tbody {\n\t\t\tdisplay: flex;\n\t\t\t…\n… [truncated]",
"config": {
"sport": "football",
"template": "blocky",
"showPeriod": true,
"showTimeouts": true,
"anchorLogoUrl": "https://r2.scorescrape.io/logos/Icon.svg",
"showPlayClock": true,
"showShotClock": false,
"showBoundingBoxes": false,
"selectedAwayTeamId": null,
"selectedHomeTeamId": "00000000-0000-4000-8000-000000000001",
"showDownAndDistance": true,
"showLogoBoundingBoxes": true,
"enableTouchdownAnimation": true
}
}HTML is shortened above for display. API responses aren't truncated.
When no HTML is set, WebSocket clients get
{"message":"No Graphics Configured"} and stay connected for updates.
Errors
| Status | Cause |
|---|---|
| 401 | Bridge ID missing or invalid. /v1/graphics also returns 401 when no
graphics record exists; an existing record with empty HTML returns 200. |
| 429 | Rate limit exceeded. Use WebSocket instead of polling for live data. |
| WS close | Reconnect with exponential backoff. The first message after reconnecting carries the full current state. |