Appearance
Changelog
[0.2.0-alpha] - 2026-01-09
Added
- New Possession Touches data set
[0.1.0-alpha] - 2026-01-08
Added
- Initial creation of the CTG Pro Data Feed API documentation
- New
is_live_ball_reboundfield on Rebounds data set - Indicates whether the rebound was secured as a live ball (not a team rebound or out of bounds). This is a clearer name for what was previouslyis_rebounded - New
offense_playersanddefense_playersfields on Chances data set - Arrays of NBA player IDs for the five players on offense and defense during each chance - New context and outcome fields on Chances data set -
in_garbage_time(indicates if chance occurred during garbage time),shot_location(court zone where shot was taken),is_shot_made,is_shot_blocked,is_shooter_fouled, andled_to_offensive_rebound(shot outcome indicators) - New statistical fields on Chances data set -
fga_pts(points scored on field goal attempt),fgm,fga,ftm,fta,tov,fg_dreb, andfg_oreb(four factors and basic statistics) - Standardized field names across markings data sets for consistency:
- New
game_id_nbafield on Passes, Deflections, Dribbles, Contested Rebound Touches, Anthro Measurements, Free Throws, Falls - Consistent NBA game ID naming - New
player_id_nbafield on Dribbles, Contested Rebound Touches, Anthro Measurements, Free Throws, Falls - Consistent NBA player ID naming - New
passer_id_nbaandintended_receiver_id_nbafields on Passes - Correct suffix for NBA player IDs - New
def_player_id_nbaandoff_player_id_nbafields on Deflections - Added missing_nbasuffix - New
pbp_event_idfield on Shots, Jump Shots, Jump Shot Contests, Interior Shots, Interior Shot Contests, Rebounds, Fouls, Turnovers - Consistent PBP event ID naming - New
set_point_he_frame,last_ball_in_hands_he_frame,last_ball_in_hands_wall_clock,first_shooting_wrist_below_eye_after_release_he_frame,first_shooting_wrist_below_eye_after_release_wall_clock,first_non_shooting_wrist_below_eye_after_release_he_frame,first_non_shooting_wrist_below_eye_after_release_wall_clockfields on Free Throws - Aligned naming with Jump Shots - New
possession_id_ctgfield on Chances data set - CTG-generated possession ID that links chances to their parent possession, enabling grouping of chances that belong to the same possession (e.g., after offensive rebounds)
- New
Changed
- New
heaveoption added tochance_outcomeon Chances data set - Indicates an official heave
Deprecated
is_reboundedon Rebounds - Useis_live_ball_reboundinstead. The old field name was confusing; the new name better describes the field's purposeattacking_positive_xon Rebounds - This information is not particularly accurate and not useful in this data setevent_pbp_descriptoron Rebounds - This field is alwaysnulland provides no valueevent_pbp_qualifierson Rebounds - This information is redundant with other fields in the responseattacking_positive_xon Fouls - This information is not particularly accurate and not so useful in this data setevent_pbp_foul_personal_totalon Fouls - This data is already available in the official NBA play-by-play feedevent_pbp_foul_technical_totalon Fouls - This data is already available in the official NBA play-by-play feedattacking_positive_xon Turnovers - This information is not particularly accurate and not useful for analyzing turnover eventsevent_pbp_descriptoron Turnovers - This information is not particularly useful for analyzing turnover eventsevent_pbp_qualifierson Turnovers - This information is not useful for analyzing turnover eventsevent_pbp_turnover_totalon Turnovers - This data is already available in the official NBA play-by-play feed- Deprecated field names replaced by standardized versions (all retain backward compatibility):
nba_game_idon Passes, Deflections, Dribbles, Contested Rebound Touches, Anthro Measurements, Free Throws, Falls - Usegame_id_nbainsteadnba_player_idon Dribbles, Contested Rebound Touches, Anthro Measurements, Free Throws, Falls - Useplayer_id_nbainsteadpasser_id_ctgandintended_receiver_id_ctgon Passes - Usepasser_id_nbaandintended_receiver_id_nbainsteaddef_player_idandoff_player_idon Deflections - Usedef_player_id_nbaandoff_player_id_nbainsteadevent_pbp_idon Shots, Jump Shots, Jump Shot Contests, Interior Shots, Interior Shot Contests, Rebounds, Fouls, Turnovers - Usepbp_event_idinsteadset_point_frame,release_frame,release_wall_clock,first_frame_shooting_wrist_below_eye,shooting_wrist_below_eye_wall_clock,first_frame_non_shooting_wrist_below_eye,non_shooting_wrist_below_eye_wall_clockon Free Throws - Use standardized names matching Jump Shotsgame_clock_runningon Turnovers - This field is unreliable and not particularly useful for analyzing turnover events
shot_clock_runningon Turnovers - This field is unreliable and not particularly useful for analyzing turnover eventsgame_clock_runningon Fouls - This field is unreliable and not particularly useful for analyzing foul eventsshot_clock_runningon Fouls - This field is unreliable and not particularly useful for analyzing foul events
Format and Versioning
The changelog format is based on Keep a Changelog.
It includes the following types of changes:
- Added - New data sets, fields, or API features
- Changed - Changes to existing data or behavior (may be breaking)
- Deprecated - Features that will be removed in future versions
- Removed - Features that have been removed
- Fixed - Bug fixes in data accuracy or API behavior
The API follows Semantic Versioning (SemVer). Version numbers are formatted as MAJOR.MINOR.PATCH with optional pre-release labels:
| Component | When It Changes | Example |
|---|---|---|
| MAJOR | Breaking changes that require client updates | 1.0.0 → 2.0.0 |
| MINOR | New features added in a backward-compatible way | 1.0.0 → 1.1.0 |
| PATCH | Bug fixes that don't change the API contract | 1.0.0 → 1.0.1 |
Pre-release Labels
- alpha - Early development; API may change significantly between releases
- beta - Feature complete; API is stabilizing but may still have minor changes
- rc (release candidate) - Final testing before stable release
Versioning Policy
- 0.x.x versions: The API is in active development. Breaking changes may occur between minor versions. We will notify you before this occurs.
- 1.0.0 and beyond: The API is stable. Breaking changes will only occur in major version bumps, with advance notice in the changelog.
