Overview
The stats endpoints provide statistical data at multiple levels: a reference catalog of all stat definitions, team-level game stats per event, and player-level game stats per event. Season-level stats are available through the Teams endpoints. For supported live games, changed box-score rows also stream over the V2 WebSocket.Live Game Stats over WebSocket
On Ultra plans and higher, subscribe to thestats channel on the multiplexed endpoint:
team_stats[].stats or player_stats[].stats entry contains one changed value and its stat dictionary. Keep value as a string and upsert by owner ID plus stat_id.
Because stats has no snapshot or replay source, use this sequence on first connect, reconnect (including a buffer_overflow:reconnect_and_catchup close), or a detected gap:
- Subscribe and buffer incoming
game_statsframes. - Fetch the current team box from
GET /api/v2/events/{eventID}/statsand player box fromGET /api/v2/events/{eventID}/players/stats. - Replace your local baseline, then merge the buffered deltas in order.
- Continue merging live deltas. A zero-row frame with
complete: trueis the terminal completion marker; mark the cached box complete and treat repeats as idempotent. A zero-row frame withoutcomplete: trueis an invalidation fallback; refetch both REST resources.
live channel includes the same game_stats frames alongside scores and plays. Each changed nested stat row costs one stats data point; a zero-row completion marker or invalidation fallback costs one. See the WebSocket reference for the full payload, filters, completion and fallback shapes, and recovery rules.
Endpoints
GET /api/v2/stats — List all stat definitions
GET /api/v2/stats — List all stat definitions
GET /api/v2/events/{eventID}/stats — Team game stats
GET /api/v2/events/{eventID}/stats — Team game stats
Returns team-level statistics for a specific event (game). Includes box score data like points, rebounds, assists, etc.
Parameters
Example Response
Stats are only available for events that have started or completed. Requesting stats for a future event returns an empty array. The nested team identity includes canonical
is_away and is_home flags.GET /api/v2/events/{eventID}/players/stats — Player game stats
GET /api/v2/events/{eventID}/players/stats — Player game stats
Returns individual player statistics for a specific event. Includes per-player box score data.
Parameters
Example Response
Player REST rows omit IDs already represented by the group: use
player.id for the owner, meta.event_id for the event, and stat.id for the stat key. Live WebSocket rows additionally carry explicit player_id and stat_id fields.MLB game-stat definitions include
startingPitcher and the sparse positionPlayerPitching flag. Query GET /api/v2/stats?sport_id=3 to discover their current IDs; do not hard-code IDs.