ShotTracker Event API
Base URL: https://api.shottracker.com
Authentication (Event API)
REST requests use HMAC request signing with a ShotTracker-issued username and secret. Live Data V2 WebSocket uses a subscription token only.
Team Events And Schedules
Search and manage team events, game schedules, subscription tokens, practices, games, lineups, and video actions.
- GET/v1/data/teams/{team_id}/events— Search Team Events
The response will include both practice and/or game events. If the event is a game, additional fields are returned; game_type, is returned in the event node to indicate whether the game is halves (HALF) or quarters (QUARTER); and totals which will include links to the full game stats.
- GET/v1/data/schedule/games/matchup— Game Schedule Matchup
The matchup endpoint is a more advanced way to find games using either the ShotTracker team ids or other supported identification systems. The endpoint requires the reference and gender query parameters are given for context.
- GET/v1/data/schedule/games— Game Schedule
- PUT/v1/data/schedule/games— Update Season Game Schedule
Create/update a list of games
- GET/v1/data/schedule/games/{event_id}/_subscribe— Game Subscription Token
When a game is not yet live, it might be necessary to subscribe to the game. This endpoint allows a consumer to subscribe to a scheduled or an already active game with only the games event_id returned from the game scheduler.
- GET/v1/data/teams/{team_id}/practices/{event_id}— Practice Event
A self reference to a specific teams practice event.
- GET/v1/data/games/{event_id}— Game Event
A self reference to a specific game event.
- GET/v1/data/games/{event_id}/lineups— Player Lineups
Returns players in lineups for a given game and at a specific timestamp.
- GET/v1/data/games/{event_id}/sensor/assignments/history— Sensor Assignments History
Returns the sensor assignment history during the certain game. The timestamp in the response indicates the sensor was assigned to the player_id at that time for the game. Multiple sensor assignments will be seen for the same player indicating the assignment at the start of each quarter or half and at time when the sensor was changed.
- PUT/v1/data/games/{event_id}/video/_action— Game Video Adjustment Actions
Video adjustment commands for live game video streams.
Actions Description CLIP Generate a clip; example request body {"action":"CLIP","start":<start timestamp; epoch ms>,"end":<end timestamp; epoch ms>}; returns a url to the video clip in the response. DISCOVER_STREAMS Discover supported streams; example request body {“action”:“DISCOVER_STREAMS”}; returns an array of objects that have the id and name of all discovered streams.
Live Data V2 Games
REST endpoints for catch-up and live game stats, play-by-play, shots, and possessions (for WebSocket, see Live Data V2).
- GET/v1/data/stats/games/{event_id}/{resources}— Catch Up
The catch up endpoint is intended to be a single call that supports multiple resources. The Stats, Play-By-Play and Shots endpoints are avaliable in the catch up. Example multi-resource request ./games/{event_id}/shots,details,shots. The response will combind the response for each of the comma supplied resources.
- GET/v1/data/stats/games/{event_id}/stats— Stats
- GET/v1/data/stats/games/{event_id}/stats/presence— Player Presence Stats
Presence stats are the players involvement in play; minutes played (MIN) and count of possessions.
- GET/v1/data/stats/games/{event_id}/details— Play-By-Play
- GET/v1/data/stats/games/{event_id}/shots— Shots
- GET/v1/data/stats/games/{event_id}/possessions— Possessions
Teams
List teams, rosters, and officials. Replace or update team rosters.
- GET/v1/data/teams— List Teams
- GET/v1/data/teams/{team_id},{reference}— Team Roster
The current active players on the team. The game_event_id parameter can be used to look up all of the players on the team at the time of a game. Players who are no longer on the team will have an 'is_active' false. The special_services field returns items for specific special events; possible type values are MIC, VIDEO.
Basketball Player Positions
Abbreviation Description G GUARD F FORWARD C CENTER - PUT/v1/data/teams/roster— Replace Team Roster
Replace the current player roster for a specific team.
- GET/v1/data/officials/teams— List Officials Teams
- GET/v1/data/officials/teams/{team_id}— Officials Team Roster
The special_services field returns items for specific special events; possible type values are MIC, VIDEO.
Practice Stats
Team and player stats for practice, scrimmage, shooting drills, and workouts; includes shots and summaries.
- GET/v1/data/teams/{team_id}/players/practice/stats— Team Stats
A practice can consist of a team practice with shooting and scrimmage drills or a players individual workout. This endpoint will return team players stats that include both team practice drills (shooting and scrimmage) and workouts.
- GET/v1/data/teams/{team_id}/players/practice/scrimmage/stats— Team Scrimmage Stats
- GET/v1/data/teams/{team_id}/players/practice/shooting/stats— Team Shooting Drill Stats
- GET/v1/data/teams/{team_id}/players/workouts/stats— Team Workout Stats
- GET/v1/data/teams/{team_id}/players/practice/shots— Team Shots
- GET/v1/data/teams/{team_id}/players/practice/shots/summary— Team Shots Summary
- GET/v1/data/teams/{team_id}/players/practice/scrimmage/shots— Team Scrimmage Shots
- GET/v1/data/teams/{team_id}/players/practice/scrimmage/shots/summary— Team Scrimmage Shots Summary
- GET/v1/data/teams/{team_id}/players/practice/shooting/shots— Team Shooting Drill Shots
- GET/v1/data/teams/{team_id}/players/practice/shooting/shots/summary— Team Shooting Drill Shots Summary
- GET/v1/data/teams/{team_id}/players/workout/shots— Team Workout Shots
- GET/v1/data/teams/{team_id}/players/workout/shots/summary— Team Workout Shots Summary
Game Stats
Team and player stats for games (by event). Game shots and shot summaries.
- GET/v1/data/teams/{team_id}/players/game/stats— Team Game Stats
- GET/v1/data/teams/{team_id}/players/game/shots— Team Game Shots
- GET/v1/data/teams/{team_id}/players/game/shots/summary— Team Game Shots Summary
- GET/v1/data/stats/games/{event_id}/stats/details— Grouped Stats Details **DEPRECATED**
Returns all team and player stat details for the whole game. Team stats are included under player_stats with an id of 0.
Specific Period / Drill Stats
Stats, details, shots, and possessions for a specific period or drill by ID.
- GET/v1/data/stats/{id}/stats— Stats
Returns all team and player box score stats. Team stats are included under player_stats with an id of 0.
- GET/v1/data/stats/{id}/stats/details— Stats Details
Returns all team and player stat details. Team stats are included under player_stats with an id of 0.
- GET/v1/data/stats/{id}/shots— Shots
- GET/v1/data/stats/{id}/possessions— Stats Possessions
- GET/v1/data/stats/{id}/possessions/summary— Stats Possessions Summary
Sensors Locations
Sensor location data by ID and time range.
- GET/v1/data/sensors/locations— Sensor Locations
Returns an array of player and ball locations. The timeframe of the request should not exceed 30 minutes.
Web Callbacks
Create and manage LIVE notify webhooks (list, create, update, enable/disable end notify, delete).
- GET/v1/data/live/notify— List LIVE Notifies
- PUT/v1/data/live/notify— Create LIVE Notify
- PUT/v1/data/live/notify/{notify_id}— Update LIVE Notify URL
- DELETE/v1/data/live/notify/{notify_id}— Delete LIVE Notify
- PUT/v1/data/live/notify/{notify_id}/_enableEndNotify— Enable LIVE End Notify
- PUT/v1/data/live/notify/{notify_id}/_disableEndNotify— Disable LIVE End Notify
ShotTracker Facilities
List locations, court layouts, and nearest locations by lat/long.
System Data
System-level stats.