Integration GuidesReference Docs
Coverage MatrixDocumentationChange LogLog InContact Us
Integration Guides

Live Game Updates

Use this guide to effectively access live NCAA Men's Basketball game updates and statistics. It also covers the Daily Change Log endpoint which can be used to track postgame stat revisions.

Prerequisite - Accessing Available Seasons

To avoid confusion and ensure you're accessing available data, refer to our Seasons feed. This resource lists all the seasons for which we have data.

For example: To ensure data availability for future seasons, such as a schedule in advance of when a season begins, first check the Seasons feed to verify that data for that specific season is already provided.

Starting with this feed can prevent unnecessary errors and streamline your data retrieval process.


📆

Starting Year for Each Season

It's important to note that the season parameter uses the starting year of the season; for example, to retrieve data for the 2024-25 NCAAMB season, you would use 2024 as the value for the season parameter.



Accessing the Games You Want


Know Game Coverage Levels

We provide two coverage levels to ensure the most comprehensive data offering.

Full – We provide live play-by-play coverage for the entire game. We provide scores and time remaining, as well as team- and player-level data in near real time. Full coverage is available for any game in which we have a reliable broadcast available and one or more participants are members of the following conferences: B1G, Big East, Big 12, ACC, SEC, A10, MVC, WCC, AAC, MW, MAC, CUSA, Colonial & Patriot.

Extended Boxscore – We provide scores and time remaining, in a timely manner, as a game progresses. We provide team- and player-level data for a game within 60 minutes of an official gamebook release. Extended Boxscore coverage is available for any game involving a Division I program, not covered via our full coverage offering.

Conference Tournaments:

  • All conference tournament games available from a reliable broadcast are full play-by-play coverage.

Postseason Tournaments:

  • All March Madness, NIT, and College Basketball Crown games are full play-by-play coverage. CBI and CIT games are extended_boxscore coverage.

🏀

Coverage Note

Coverage levels are subject to change up to the scheduled game start time. Changes are usually due to resource availability or possible broadcast and technical difficulties.


Recommended Feeds Per Coverage Level

Based on the differences between our available coverage levels we recommend specific game-centric feeds for each coverage level.

FeedsFullExtended Boxscore
(In Progress)
Extended Boxscore
(Post Game)
Game BoxscoreXXX
Game SummaryXXX
Play-by-PlayX

Steps

  1. Find the game ID by querying one of the following feeds:

  2. Use the Game Id to access live data from any of the following feeds:

    Data TypeRecommended FeedRequired Coverage Level
    Play-by-Play Data- Game Play-by-Play
    - Push Events
    Full
    Scoring Updates- Game Boxscore
    - Game Play-by-Play
    Full or Extended Boxscore
    Game Statistics (Game Summary)- Game Summary
    - Push Statistics
    Full or Extended Boxscore

    📘

    Using Game IDs for Push Feeds

    Using a specific game ID is optional when filtering the push events or push statistics feeds. Without specifying a game ID, the feeds will automatically return data for all games currently in progress.


Utilizing Schedule Feeds

You only need to call the schedule feeds once or twice a day at most to get the most up-to-date season information. Follow these steps:

  1. Load the necessary schedule using any of the schedule feeds.
  2. To stay updated on any scheduling changes, refer to the Daily Change Log feed. More details are available in the Change Log section.
  3. Ensure to start requests to live games no earlier than 10 minutes before the scheduled time.

🏀

When Does the Regular Season Start

The regular season starts in mid-October.


Limitations of Schedule Feeds for Real-Time Game Status Updates:

  • The season Schedule feed provides game status information, including statuses like "closed," “inprogress,” and "complete." However, it does not update as frequently as the real-time game feeds, which offer more current game status updates.
  • For more immediate updates, consider using more real-time feeds like the Game Play-by-Play or Game Boxscore endpoints, which are designed to provide the most up-to-date status changes during games.


Play-by-Play Data

Play-by-Play data provides a detailed, sequential account of every action that occurs during a game, including all plays and events. This data type is crucial for analyzing game flow, player performance, and tactical decisions in real-time.

🚧

Use for Full Coverage Games Only

Play-by-Play data is available only for full coverage games, so both the Game Play-by-Play and Push Events feeds should be used exclusively for games with full coverage.


Option 1 - Using the Game Play-by-Play Feed

You can call the Game Play-by-Play feed to get a live play-by-play timeline, including possession and ball location as well as all team and player statistics earned on each play.


How to Pull the Game Play-by-Play Feed:

  1. Ensure you have your game IDs and schedules.
  2. Call the Game Play-by-Play feed: Use your game ID to request the Game Play-by-Play feed for real-time updates throughout the live game.

Recommended Pull Frequency:

  • Request this feed no sooner than 10 minutes before the scheduled start of the game (status = scheduled) based on your specific needs.
  • Once the game is in progress (status = inprogress), you may query the feed as necessary.
  • The endpoint offers real-time data updates and maintains a two-second TTL once the game status changes to inprogress.
  • Utilize the Daily Change Log to capture data changes after a game has ended.

Game Play-by-Play Example:

{
  "id": "0dceb8cd-a3ef-4936-b3d2-cc2d24bb9d53",
  "status": "closed",
  "coverage": "full",
  "scheduled": "2024-01-06T17:00:00+00:00",
  "conference_game": true,
  "attendance": 10883,
  "lead_changes": 0,
  "times_tied": 0,
  "clock": "00:00",
  "half": 2,
  "track_on_court": false,
  "entry_mode": "LDE",
  "clock_decimal": "00:00",
  "time_zones": {
    "venue": "US/Eastern",
    "home": "US/Eastern",
    "away": "US/Eastern"
  },
  "season": {
    "id": "05b9e2ec-8916-432f-8a56-6579eb825dd0",
    "year": 2023,
    "type": "REG",
    "name": "Regular Season"
  },
  "home": {
    "name": "Cardinals",
    "alias": "LOU",
    "market": "Louisville",
    "id": "b795ddbc-baab-4499-8803-52e8608520ab",
    "points": 70,
    "rank": 0,
    "remaining_timeouts": 1
  },
  "away": {
    "name": "Panthers",
    "alias": "PITT",
    "market": "Pittsburgh",
    "id": "24051034-96bb-4f78-a3a6-312f3258780f",
    "points": 83,
    "rank": 0,
    "remaining_timeouts": 1
  },
  "periods": [
    {
      "type": "half",
      "id": "d73c7e95-ed97-4ed2-9ca2-573655dccc03",
      "number": 1,
      "sequence": 1,
      "scoring": {
        "times_tied": 0,
        "lead_changes": 0,
        "home": {
          "name": "Cardinals",
          "market": "Louisville",
          "id": "b795ddbc-baab-4499-8803-52e8608520ab",
          "points": 34
        },
        "away": {
          "name": "Panthers",
          "market": "Pittsburgh",
          "id": "24051034-96bb-4f78-a3a6-312f3258780f",
          "points": 40
        }
      },
      "events": [
        {
          "id": "287b772f-a90c-4265-94a9-c458ea541ea3",
          "clock": "20:00",
          "updated": "2024-01-06T17:16:51Z",
          "description": "Guillermo Diaz Graham vs. Brandon Huntley-Hatfield (Danilo Jovanovich gains possession)",
          "sequence": 1704560892070,
          "home_points": 0,
          "away_points": 0,
          "clock_decimal": "20:00",
          "event_type": "opentip",
          "attribution": {
            "name": "Cardinals",
            "market": "Louisville",
            "id": "b795ddbc-baab-4499-8803-52e8608520ab",
            "team_basket": "left"
          },
          "location": {
            "coord_x": 567,
            "coord_y": 301
          },
          "possession": {
            "name": "Cardinals",
            "market": "Louisville",
            "id": "b795ddbc-baab-4499-8803-52e8608520ab"
          }
        },
        {
          "id": "7e0b4688-9746-4f13-b481-3de825eebb6d",
          "clock": "19:45",
          "updated": "2024-01-06T17:46:45Z",
          "description": "Brandon Huntley-Hatfield turnover (bad pass)",
          "sequence": 1704560911924,
          "home_points": 0,
          "away_points": 0,
          "clock_decimal": "19:45",
          "event_type": "turnover",
          "turnover_type": "Bad Pass",
          "attribution": {
            "name": "Cardinals",
            "market": "Louisville",
            "id": "b795ddbc-baab-4499-8803-52e8608520ab",
            "team_basket": "left"
          },
          "location": {
            "coord_x": 319,
            "coord_y": 160
          },
          "possession": {
            "name": "Panthers",
            "market": "Pittsburgh",
            "id": "24051034-96bb-4f78-a3a6-312f3258780f"
          },
          "statistics": [
            {
              "type": "turnover",
              "team": {
                "name": "Cardinals",
                "market": "Louisville",
                "id": "b795ddbc-baab-4499-8803-52e8608520ab"
              },
              "player": {
                "full_name": "Brandon Huntley-Hatfield",
                "jersey_number": "5",
                "id": "1f71cca8-8495-4554-9227-e5cc725e2a51"
              }
            }
          ]
        },
        {
          "id": "2e0a2365-18f8-46c1-96ae-2bc49e2e26b3",
          "clock": "19:27",
          "updated": "2024-01-06T17:46:54Z",
          "description": "Blake Hinson misses three point jump shot",
          "sequence": 1704560931877,
          "home_points": 0,
          "away_points": 0,
          "clock_decimal": "19:27",
          "event_type": "threepointmiss",
          "attribution": {
            "name": "Panthers",
            "market": "Pittsburgh",
            "id": "24051034-96bb-4f78-a3a6-312f3258780f",
            "team_basket": "right"
          },
          "location": {
            "coord_x": 924,
            "coord_y": 520
          },
          "statistics": [
            {
              "type": "fieldgoal",
              "made": false,
              "shot_type": "jump shot",
              "three_point_shot": true,
              "team": {
                "name": "Panthers",
                "market": "Pittsburgh",
                "id": "24051034-96bb-4f78-a3a6-312f3258780f"
              },
              "player": {
                "full_name": "Blake Hinson",
                "jersey_number": "2",
                "id": "d6544619-11bb-41c0-91dc-237bfb899e9d"
              }
            }
          ]
        },
        {
          "id": "3f29365a-6347-42ac-ae17-facff4a870a2",
          "clock": "19:25",
          "updated": "2024-01-06T17:46:58Z",
          "description": "Guillermo Diaz Graham offensive rebound",
          "sequence": 1704560931905,
          "home_points": 0,
          "away_points": 0,
          "clock_decimal": "19:25",
          "event_type": "rebound",
          "attribution": {
            "name": "Panthers",
            "market": "Pittsburgh",
            "id": "24051034-96bb-4f78-a3a6-312f3258780f",
            "team_basket": "right"
          },
          "location": {
            "coord_x": 924,
            "coord_y": 520
          },
          "possession": {
            "name": "Panthers",
            "market": "Pittsburgh",
            "id": "24051034-96bb-4f78-a3a6-312f3258780f"
          },
          "statistics": [
            {
              "type": "rebound",
              "rebound_type": "offensive",
              "team": {
                "name": "Panthers",
                "market": "Pittsburgh",
                "id": "24051034-96bb-4f78-a3a6-312f3258780f"
              },
              "player": {
                "full_name": "Guillermo Diaz Graham",
                "jersey_number": "25",
                "id": "efc808a9-daf4-4a88-902d-f620f2652256"
              }
            }
          ]
        },
        {
          "id": "17e5cfa3-c2f5-455a-9240-ed85f0bde661",
          "clock": "19:20",
          "updated": "2024-01-06T17:47:03Z",
          "description": "Zack Austin misses three point jump shot",
          "sequence": 1704560941722,
          "home_points": 0,
          "away_points": 0,
          "clock_decimal": "19:20",
          "event_type": "threepointmiss",
          "attribution": {
            "name": "Panthers",
            "market": "Pittsburgh",
            "id": "24051034-96bb-4f78-a3a6-312f3258780f",
            "team_basket": "right"
          },
          "location": {
            "coord_x": 844,
            "coord_y": 149
          },
          "statistics": [
            {
              "type": "fieldgoal",
              "made": false,
              "shot_type": "jump shot",
              "three_point_shot": true,
              "team": {
                "name": "Panthers",
                "market": "Pittsburgh",
                "id": "24051034-96bb-4f78-a3a6-312f3258780f"
              },
              "player": {
                "full_name": "Zack Austin",
                "jersey_number": "55",
                "id": "e3397429-8f2e-48c6-a0bb-0d6f65909a7c"
              }
            }
          ]
        },
        {
          "id": "e35a3a46-16eb-494f-a132-07d74802bce5",
          "clock": "19:18",
          "updated": "2024-01-06T17:47:07Z",
          "description": "Blake Hinson offensive rebound",
          "sequence": 1704560941750,
          "home_points": 0,
          "away_points": 0,
          "clock_decimal": "19:18",
          "event_type": "rebound",
          "attribution": {
            "name": "Panthers",
            "market": "Pittsburgh",
            "id": "24051034-96bb-4f78-a3a6-312f3258780f",
            "team_basket": "right"
          },
          "location": {
            "coord_x": 844,
            "coord_y": 149
          },
          "possession": {
            "name": "Panthers",
            "market": "Pittsburgh",
            "id": "24051034-96bb-4f78-a3a6-312f3258780f"
          },
          "statistics": [
            {
              "type": "rebound",
              "rebound_type": "offensive",
              "team": {
                "name": "Panthers",
                "market": "Pittsburgh",
                "id": "24051034-96bb-4f78-a3a6-312f3258780f"
              },
              "player": {
                "full_name": "Blake Hinson",
                "jersey_number": "2",
                "id": "d6544619-11bb-41c0-91dc-237bfb899e9d"
              }
            }
          ]
        },
        {
          "id": "75a6913b-2492-40d2-94a5-19242a2af8f1",
          "clock": "19:15",
          "updated": "2024-01-06T17:09:53Z",
          "description": "Blake Hinson makes two point layup",
          "sequence": 1704560946181,
          "home_points": 0,
          "away_points": 2,
          "clock_decimal": "19:15",
          "event_type": "twopointmade",
          "attribution": {
            "name": "Panthers",
            "market": "Pittsburgh",
            "id": "24051034-96bb-4f78-a3a6-312f3258780f",
            "team_basket": "right"
          },
          "location": {
            "coord_x": 1062,
            "coord_y": 317
          },
          "possession": {
            "name": "Cardinals",
            "market": "Louisville",
            "id": "b795ddbc-baab-4499-8803-52e8608520ab"
          },
          "statistics": [
            {
              "type": "fieldgoal",
              "made": true,
              "shot_type": "layup",
              "points": 2,
              "team": {
                "name": "Panthers",
                "market": "Pittsburgh",
                "id": "24051034-96bb-4f78-a3a6-312f3258780f"
              },
              "player": {
                "full_name": "Blake Hinson",
                "jersey_number": "2",
                "id": "d6544619-11bb-41c0-91dc-237bfb899e9d"
              }
            }
          ]
        }
      ]
    }
  ]
}

This play-by-play example captures the detailed flow of a basketball game between the Louisville Cardinals and Pittsburgh Panthers. It includes key moments like Brandon Huntley-Hatfield's turnover, Blake Hinson's missed three-point jump shot, and Guillermo Diaz Graham's offensive rebound. The Panthers gain momentum with a made layup by Hinson, highlighting missed opportunities, rebounds, and scoring events. This data provides a comprehensive view of game dynamics, perfect for real-time analysis of team and player performance.

You can visualize this play-by-play sequence in your application by creating a graphic that mirrors the flow of the game. This visual can capture missed shots, rebounds, turnovers, and scoring plays.


Use Case:

In your sports analytics application, you can track and display detailed play-by-play data for basketball games, such as Blake Hinson's missed three-point shot for the Pittsburgh Panthers. For example, you could analyze how this missed shot led to an offensive rebound by Guillermo Diaz Graham and how it impacted the game’s momentum. This information is invaluable for understanding player performance, shot efficiency, and game flow, providing critical insights for fans, analysts, and fantasy basketball enthusiasts.


Option 2 - Using the Push Events and Game Play-by-Play Feeds

The Push Events feed delivers live play-by-play data with a single API call, optimizing real-time updates and reducing API calls. However, it may lack the detailed boxscore information and broader league statistics found in the Game Play-by-Play feed.

👍

Tip - Compare Data Points

Compare the data points returned by the Game Play-by-Play feed with those from the Push Events feed to understand the specific information each provides.


Streamline your access to live game updates by combining the Push Events and Game Play-by-Play feeds:

  1. Open a connection with a single call to the Push Events feed to receive real-time updates.
  2. Push feeds automatically deliver JSON payloads through a push service, minimizing the number of calls required.
  3. Supplement this with the RESTful Game Play-by-Play feed to obtain detailed statistics and comprehensive game data when needed.

Note: You need to be a Realtime customer to make use of the Push feature.


How to Connect to the Push Events Feed:

  • Add the match parameter with the specific game id. Without the match parameter the feed will return data for all live NCAAMB games.
  • The Push Events Feed should not be used exclusively; supplement it with the Play-by-Play feed for comprehensive data coverage.
  • Certain statistics are only available through the RESTful API and not included in the Push Events Feed.
  • In the event of a disconnection from the Push Events Feed, it's not possible to resume where you left off. To ensure continuous coverage, use multiple Push Feeds and supplement with RESTful feeds as a fallback to retrieve any missed timeline information during live games.

👍

Tip - Open Simultaneous Push Connections

Opening multiple connections to the push events feed boosts your application's reliability and flexibility. It enables simultaneous monitoring of various games or data types and ensures continuous data flow, even if one connection fails. This method also enhances scalability and data management, vital for applications needing real-time updates.


Game Play-by-Play vs. Push Scenario:

In a live basketball tracking app, you might use the Push Events feed to receive real-time notifications of key moments like dunks, fouls, or three-pointers. However, for a user-requested feature that provides a detailed timeline of the game, including minor plays and player stats, you can supplement with the Game Play-by-Play feed to capture comprehensive game details beyond quick updates. This ensures your app delivers both instant highlights and in-depth analysis.

📘

Game Status Workflows

For more on what feeds look like throughout the duration of a game, see the Game Status Workflow page.



Scoring Updates

If your main interest is scoring data, use the Game Boxscore feed. While the Game Play-by-Play and Push Events feeds also include scoring data, the Game Boxscore feed offers more detailed scoring information for each team.


How to Pull the Game Boxscore Feed:

  1. Ensure you have your game IDs and schedules.
  2. Call the Game Boxscore feed: Use your game ID to request the Game Boxscore feed for real-time scoring updates throughout the live game.

Recommended Pull Frequency:

  • Request this feed no sooner than 10 minutes before the scheduled start of the game (status = scheduled) based on your specific needs.
  • Once the game is in progress (status = inprogress), you may query the feed as necessary.
  • The endpoint offers real-time data updates and maintains a two-second TTL once the game status changes to inprogress.
  • Utilize the Daily Change Log to capture data changes after a game has ended.

Game Boxscore Example:

{
  "id": "0dceb8cd-a3ef-4936-b3d2-cc2d24bb9d53",
  "status": "inprogress",
  "coverage": "full",
  "scheduled": "2024-01-06T17:00:00+00:00",
  "conference_game": true,
  "attendance": 10883,
  "lead_changes": 0,
  "times_tied": 0,
  "clock": "00:00",
  "half": 2,
  "track_on_court": false,
  "entry_mode": "LDE",
  "clock_decimal": "00:00",
  "time_zones": {
    "venue": "US/Eastern",
    "home": "US/Eastern",
    "away": "US/Eastern"
  },
  "season": {
    "id": "05b9e2ec-8916-432f-8a56-6579eb825dd0",
    "year": 2023,
    "type": "REG",
    "name": "Regular Season"
  },
  "home": {
    "name": "Cardinals",
    "alias": "LOU",
    "market": "Louisville",
    "id": "b795ddbc-baab-4499-8803-52e8608520ab",
    "points": 70,
    "rank": 0,
    "remaining_timeouts": 1,
    "scoring": [
      {
        "type": "half",
        "number": 1,
        "sequence": 1,
        "points": 34
      },
      {
        "type": "half",
        "number": 2,
        "sequence": 2,
        "points": 36
      }
    ],
    "leaders": {
      "points": [
        {
          "full_name": "Mike James",
          "jersey_number": "0",
          "id": "b653ee3f-6189-40a7-9c2f-5ac9ab73c7a1",
          "position": "G-F",
          "primary_position": "NA",
          "statistics": {
            "minutes": "37:00",
            "field_goals_made": 8,
            "field_goals_att": 12,
            "field_goals_pct": 66.7,
            "three_points_made": 5,
            "three_points_att": 7,
            "three_points_pct": 71.4,
            "two_points_made": 3,
            "two_points_att": 5,
            "two_points_pct": 60,
            "blocked_att": 0,
            "free_throws_made": 2,
            "free_throws_att": 2,
            "free_throws_pct": 100,
            "offensive_rebounds": 1,
            "defensive_rebounds": 3,
            "rebounds": 4,
            "assists": 2,
            "turnovers": 2,
            "steals": 2,
            "blocks": 1,
            "assists_turnover_ratio": 1,
            "personal_fouls": 2,
            "tech_fouls": 0,
            "flagrant_fouls": 0,
            "pls_min": 0,
            "points": 23,
            "double_double": false,
            "triple_double": false,
            "effective_fg_pct": 87.5,
            "efficiency": 29,
            "efficiency_game_score": 20.7,
            "fouls_drawn": 5,
            "offensive_fouls": 0,
            "points_in_paint": 6,
            "points_in_paint_att": 4,
            "points_in_paint_made": 3,
            "points_in_paint_pct": 75,
            "points_off_turnovers": 8,
            "true_shooting_att": 12.88,
            "true_shooting_pct": 89.3,
            "coach_ejections": 0,
            "coach_tech_fouls": 0,
            "second_chance_pts": 2,
            "second_chance_pct": 0
          }
        }
      ],
      "rebounds": [
        {
          "full_name": "Kaleb Glenn",
          "jersey_number": "10",
          "id": "00197c18-10fb-48dc-800a-0c10f3eecb83",
          "position": "F",
          "primary_position": "NA",
          "statistics": {
            "minutes": "23:00",
            "field_goals_made": 5,
            "field_goals_att": 7,
            "field_goals_pct": 71.4,
            "three_points_made": 0,
            "three_points_att": 0,
            "three_points_pct": 0,
            "two_points_made": 5,
            "two_points_att": 7,
            "two_points_pct": 71.4,
            "blocked_att": 1,
            "free_throws_made": 0,
            "free_throws_att": 0,
            "free_throws_pct": 0,
            "offensive_rebounds": 3,
            "defensive_rebounds": 4,
            "rebounds": 7,
            "assists": 0,
            "turnovers": 3,
            "steals": 1,
            "blocks": 0,
            "assists_turnover_ratio": 0,
            "personal_fouls": 2,
            "tech_fouls": 0,
            "flagrant_fouls": 0,
            "pls_min": 0,
            "points": 10,
            "double_double": false,
            "triple_double": false,
            "effective_fg_pct": 71.4,
            "efficiency": 11,
            "efficiency_game_score": 7.6,
            "fouls_drawn": 1,
            "offensive_fouls": 1,
            "points_in_paint": 10,
            "points_in_paint_att": 7,
            "points_in_paint_made": 5,
            "points_in_paint_pct": 71.4,
            "points_off_turnovers": 0,
            "true_shooting_att": 7,
            "true_shooting_pct": 71.4,
            "coach_ejections": 0,
            "coach_tech_fouls": 0,
            "second_chance_pts": 2,
            "second_chance_pct": 0
          }
        }
      ],
      "assists": [
        {
          "full_name": "Ty-Laur Johnson",
          "jersey_number": "4",
          "id": "e1e78727-29e9-4b85-9d72-d8a08c5145a1",
          "position": "G",
          "primary_position": "NA",
          "statistics": {
            "minutes": "32:00",
            "field_goals_made": 2,
            "field_goals_att": 7,
            "field_goals_pct": 28.6,
            "three_points_made": 1,
            "three_points_att": 4,
            "three_points_pct": 25,
            "two_points_made": 1,
            "two_points_att": 3,
            "two_points_pct": 33.3,
            "blocked_att": 0,
            "free_throws_made": 2,
            "free_throws_att": 2,
            "free_throws_pct": 100,
            "offensive_rebounds": 0,
            "defensive_rebounds": 5,
            "rebounds": 5,
            "assists": 6,
            "turnovers": 5,
            "steals": 1,
            "blocks": 0,
            "assists_turnover_ratio": 1.2,
            "personal_fouls": 3,
            "tech_fouls": 0,
            "flagrant_fouls": 0,
            "pls_min": 0,
            "points": 7,
            "double_double": false,
            "triple_double": false,
            "effective_fg_pct": 35.7,
            "efficiency": 9,
            "efficiency_game_score": 3.4,
            "fouls_drawn": 3,
            "offensive_fouls": 0,
            "points_in_paint": 2,
            "points_in_paint_att": 2,
            "points_in_paint_made": 1,
            "points_in_paint_pct": 50,
            "points_off_turnovers": 2,
            "true_shooting_att": 7.88,
            "true_shooting_pct": 44.4,
            "coach_ejections": 0,
            "coach_tech_fouls": 0,
            "second_chance_pts": 0,
            "second_chance_pct": 0
          }
        }
      ]
    }
  },
  "away": {
    "name": "Panthers",
    "alias": "PITT",
    "market": "Pittsburgh",
    "id": "24051034-96bb-4f78-a3a6-312f3258780f",
    "points": 83,
    "rank": 0,
    "remaining_timeouts": 1,
    "scoring": [
      {
        "type": "half",
        "number": 1,
        "sequence": 1,
        "points": 40
      },
      {
        "type": "half",
        "number": 2,
        "sequence": 2,
        "points": 43
      }
    ],
    "leaders": {
      "points": [
        {
          "full_name": "Blake Hinson",
          "jersey_number": "2",
          "id": "d6544619-11bb-41c0-91dc-237bfb899e9d",
          "position": "F",
          "primary_position": "NA",
          "statistics": {
            "minutes": "34:00",
            "field_goals_made": 5,
            "field_goals_att": 14,
            "field_goals_pct": 35.7,
            "three_points_made": 3,
            "three_points_att": 9,
            "three_points_pct": 33.3,
            "two_points_made": 2,
            "two_points_att": 5,
            "two_points_pct": 40,
            "blocked_att": 1,
            "free_throws_made": 8,
            "free_throws_att": 8,
            "free_throws_pct": 100,
            "offensive_rebounds": 2,
            "defensive_rebounds": 1,
            "rebounds": 3,
            "assists": 0,
            "turnovers": 3,
            "steals": 1,
            "blocks": 0,
            "assists_turnover_ratio": 0,
            "personal_fouls": 3,
            "tech_fouls": 0,
            "flagrant_fouls": 0,
            "pls_min": 0,
            "points": 21,
            "double_double": false,
            "triple_double": false,
            "effective_fg_pct": 46.4,
            "efficiency": 13,
            "efficiency_game_score": 11.7,
            "fouls_drawn": 4,
            "offensive_fouls": 1,
            "points_in_paint": 4,
            "points_in_paint_att": 4,
            "points_in_paint_made": 2,
            "points_in_paint_pct": 50,
            "points_off_turnovers": 5,
            "true_shooting_att": 17.52,
            "true_shooting_pct": 59.9,
            "coach_ejections": 0,
            "coach_tech_fouls": 0,
            "second_chance_pts": 7,
            "second_chance_pct": 0
          }
        }
      ],
      "rebounds": [
        {
          "full_name": "Jaland Lowe",
          "jersey_number": "15",
          "id": "6aa7ab54-bef0-418e-ad8d-146287e813a8",
          "position": "G",
          "primary_position": "NA",
          "statistics": {
            "minutes": "27:00",
            "field_goals_made": 3,
            "field_goals_att": 6,
            "field_goals_pct": 50,
            "three_points_made": 2,
            "three_points_att": 3,
            "three_points_pct": 66.7,
            "two_points_made": 1,
            "two_points_att": 3,
            "two_points_pct": 33.3,
            "blocked_att": 1,
            "free_throws_made": 1,
            "free_throws_att": 2,
            "free_throws_pct": 50,
            "offensive_rebounds": 2,
            "defensive_rebounds": 4,
            "rebounds": 6,
            "assists": 3,
            "turnovers": 1,
            "steals": 1,
            "blocks": 0,
            "assists_turnover_ratio": 3,
            "personal_fouls": 4,
            "tech_fouls": 0,
            "flagrant_fouls": 0,
            "pls_min": 0,
            "points": 9,
            "double_double": false,
            "triple_double": false,
            "effective_fg_pct": 66.7,
            "efficiency": 10,
            "efficiency_game_score": 8.7,
            "fouls_drawn": 1,
            "offensive_fouls": 1,
            "points_in_paint": 0,
            "points_in_paint_att": 2,
            "points_in_paint_made": 0,
            "points_in_paint_pct": 0,
            "points_off_turnovers": 0,
            "true_shooting_att": 6.88,
            "true_shooting_pct": 65.4,
            "coach_ejections": 0,
            "coach_tech_fouls": 0,
            "second_chance_pts": 0,
            "second_chance_pct": 0
          }
        },
        {
          "full_name": "Carlton Carrington",
          "jersey_number": "7",
          "id": "cae0a81b-d11f-42b1-8422-b8e466d4682a",
          "position": "G",
          "primary_position": "NA",
          "statistics": {
            "minutes": "40:00",
            "field_goals_made": 6,
            "field_goals_att": 10,
            "field_goals_pct": 60,
            "three_points_made": 2,
            "three_points_att": 5,
            "three_points_pct": 40,
            "two_points_made": 4,
            "two_points_att": 5,
            "two_points_pct": 80,
            "blocked_att": 0,
            "free_throws_made": 2,
            "free_throws_att": 2,
            "free_throws_pct": 100,
            "offensive_rebounds": 0,
            "defensive_rebounds": 6,
            "rebounds": 6,
            "assists": 5,
            "turnovers": 1,
            "steals": 1,
            "blocks": 1,
            "assists_turnover_ratio": 5,
            "personal_fouls": 2,
            "tech_fouls": 0,
            "flagrant_fouls": 0,
            "pls_min": 0,
            "points": 16,
            "double_double": false,
            "triple_double": false,
            "effective_fg_pct": 70,
            "efficiency": 23,
            "efficiency_game_score": 16.6,
            "fouls_drawn": 1,
            "offensive_fouls": 0,
            "points_in_paint": 2,
            "points_in_paint_att": 1,
            "points_in_paint_made": 1,
            "points_in_paint_pct": 100,
            "points_off_turnovers": 5,
            "true_shooting_att": 10.88,
            "true_shooting_pct": 73.5,
            "coach_ejections": 0,
            "coach_tech_fouls": 0,
            "second_chance_pts": 2,
            "second_chance_pct": 0
          }
        },
        {
          "full_name": "Guillermo Diaz Graham",
          "jersey_number": "25",
          "id": "efc808a9-daf4-4a88-902d-f620f2652256",
          "position": "F",
          "primary_position": "NA",
          "statistics": {
            "minutes": "27:00",
            "field_goals_made": 2,
            "field_goals_att": 6,
            "field_goals_pct": 33.3,
            "three_points_made": 0,
            "three_points_att": 3,
            "three_points_pct": 0,
            "two_points_made": 2,
            "two_points_att": 3,
            "two_points_pct": 66.7,
            "blocked_att": 0,
            "free_throws_made": 1,
            "free_throws_att": 2,
            "free_throws_pct": 50,
            "offensive_rebounds": 4,
            "defensive_rebounds": 2,
            "rebounds": 6,
            "assists": 2,
            "turnovers": 1,
            "steals": 1,
            "blocks": 0,
            "assists_turnover_ratio": 2,
            "personal_fouls": 2,
            "tech_fouls": 0,
            "flagrant_fouls": 0,
            "pls_min": 0,
            "points": 5,
            "double_double": false,
            "triple_double": false,
            "effective_fg_pct": 33.3,
            "efficiency": 12,
            "efficiency_game_score": 5.2,
            "fouls_drawn": 6,
            "offensive_fouls": 0,
            "points_in_paint": 4,
            "points_in_paint_att": 3,
            "points_in_paint_made": 2,
            "points_in_paint_pct": 66.7,
            "points_off_turnovers": 5,
            "true_shooting_att": 6.88,
            "true_shooting_pct": 36.3,
            "coach_ejections": 0,
            "coach_tech_fouls": 0,
            "second_chance_pts": 0,
            "second_chance_pct": 0
          }
        }
      ],
      "assists": [
        {
          "full_name": "Carlton Carrington",
          "jersey_number": "7",
          "id": "cae0a81b-d11f-42b1-8422-b8e466d4682a",
          "position": "G",
          "primary_position": "NA",
          "statistics": {
            "minutes": "40:00",
            "field_goals_made": 6,
            "field_goals_att": 10,
            "field_goals_pct": 60,
            "three_points_made": 2,
            "three_points_att": 5,
            "three_points_pct": 40,
            "two_points_made": 4,
            "two_points_att": 5,
            "two_points_pct": 80,
            "blocked_att": 0,
            "free_throws_made": 2,
            "free_throws_att": 2,
            "free_throws_pct": 100,
            "offensive_rebounds": 0,
            "defensive_rebounds": 6,
            "rebounds": 6,
            "assists": 5,
            "turnovers": 1,
            "steals": 1,
            "blocks": 1,
            "assists_turnover_ratio": 5,
            "personal_fouls": 2,
            "tech_fouls": 0,
            "flagrant_fouls": 0,
            "pls_min": 0,
            "points": 16,
            "double_double": false,
            "triple_double": false,
            "effective_fg_pct": 70,
            "efficiency": 23,
            "efficiency_game_score": 16.6,
            "fouls_drawn": 1,
            "offensive_fouls": 0,
            "points_in_paint": 2,
            "points_in_paint_att": 1,
            "points_in_paint_made": 1,
            "points_in_paint_pct": 100,
            "points_off_turnovers": 5,
            "true_shooting_att": 10.88,
            "true_shooting_pct": 73.5,
            "coach_ejections": 0,
            "coach_tech_fouls": 0,
            "second_chance_pts": 2,
            "second_chance_pct": 0
          }
        }
      ]
    }
  }
}

This Gamebox Score example highlights key player performances and half-by-half scoring. Mike James led the Louisville Cardinals with 23 points, shooting an impressive 66.7% from the field, while Kaleb Glenn contributed 7 rebounds. On the Pittsburgh Panthers' side, Blake Hinson led the team with 21 points and Carlton Carrington added 5 assists. The Cardinals scored 34 and 36 points in each half, while the Panthers posted 40 and 43 points, showcasing the Panthers' consistent offensive performance throughout the game.

The visual shows a summary from the Gamebox Score feed for a basketball game between the Pittsburgh Panthers and the Louisville Cardinals, detailing key game statistics like individual player performances and team scores.


📸

Accessing Headshots and Team Logos

To access team logos and player headshots, use the Images API.


Use Case:

You can use this player performance data to enhance your sports app by offering detailed breakdowns of key moments in the game. You can display individual player stats, such as scoring contributions, rebounds, and assists, allowing users to see how each player's efforts influenced the game's outcome. Additionally, you can provide insights into shooting efficiency, defensive plays, and player matchups, helping users understand how these factors shaped critical turning points.



Game Statistics

Game statistics in basketball encompass quantifiable data points collected during a game, detailing metrics such as points scored, rebounds, assists, steals, and turnovers. These statistics are crucial for evaluating team performance, individual player contributions, and overall game strategy, providing insight into both offensive and defensive effectiveness.


Option 1 - Using the Game Summary Feed

The Game Summary feed provides comprehensive game-level statistics, including detailed team and player performance metrics for each team in an NCAAMB game.


How to Pull the Game Summary Feed:

  • Request this feed no sooner than 10 minutes before the scheduled start of the game (status = scheduled) based on your specific needs.
  • Once the game is in progress (status = inprogress), you may query the feed as necessary.
  • The endpoint offers real-time data updates and maintains a two-second TTL once the game status changes to inprogress.
  • Utilize the Daily Change Log to capture data changes after a game has ended.

Game Summary Example:

{
  "id": "0dceb8cd-a3ef-4936-b3d2-cc2d24bb9d53",
  "status": "closed",
  "coverage": "full",
  "scheduled": "2024-01-06T17:00:00+00:00",
  "conference_game": true,
  "attendance": 10883,
  "lead_changes": 0,
  "times_tied": 0,
  "clock": "00:00",
  "half": 2,
  "track_on_court": false,
  "entry_mode": "LDE",
  "clock_decimal": "00:00",
  "time_zones": {
    "venue": "US/Eastern",
    "home": "US/Eastern",
    "away": "US/Eastern"
  },
  "season": {
    "id": "05b9e2ec-8916-432f-8a56-6579eb825dd0",
    "year": 2023,
    "type": "REG",
    "name": "Regular Season"
  },
  "venue": {
    "id": "b5f6d7ee-034b-4653-b6da-e0a01ed6f91a",
    "name": "KFC Yum! Center",
    "capacity": 22090,
    "address": "1 Arena Plaza",
    "city": "Louisville",
    "state": "KY",
    "zip": "40202",
    "country": "USA",
    "location": {
      "lat": "38.2575",
      "lng": "-85.753889"
    }
  },
  "home": {
    "name": "Cardinals",
    "alias": "LOU",
    "market": "Louisville",
    "id": "b795ddbc-baab-4499-8803-52e8608520ab",
    "points": 70,
    "rank": 0,
    "remaining_timeouts": 1,
    "scoring": [
      {
        "type": "half",
        "number": 1,
        "sequence": 1,
        "points": 34
      },
      {
        "type": "half",
        "number": 2,
        "sequence": 2,
        "points": 36
      }
    ],
    "statistics": {
      "minutes": "3:20:00",
      "field_goals_made": 24,
      "field_goals_att": 47,
      "field_goals_pct": 51.1,
      "three_points_made": 10,
      "three_points_att": 21,
      "three_points_pct": 47.6,
      "two_points_made": 14,
      "two_points_att": 26,
      "two_points_pct": 53.8,
      "blocked_att": 2,
      "free_throws_made": 12,
      "free_throws_att": 14,
      "free_throws_pct": 85.7,
      "offensive_rebounds": 6,
      "defensive_rebounds": 21,
      "assists": 15,
      "steals": 4,
      "blocks": 3,
      "assists_turnover_ratio": 0.88,
      "personal_fouls": 17,
      "ejections": 0,
      "foulouts": 0,
      "points": 70,
      "fast_break_pts": 4,
      "second_chance_pts": 7,
      "team_turnovers": 1,
      "points_off_turnovers": 12,
      "team_rebounds": 0,
      "flagrant_fouls": 0,
      "player_tech_fouls": 0,
      "team_tech_fouls": 0,
      "coach_tech_fouls": 0,
      "points_in_paint": 26,
      "team_offensive_rebounds": 0,
      "team_defensive_rebounds": 0,
      "total_rebounds": 27,
      "total_turnovers": 18,
      "personal_rebounds": 27,
      "player_turnovers": 17,
      "field_goals_at_rim_made": 8,
      "field_goals_at_rim_att": 10,
      "field_goals_at_rim_pct": 80,
      "field_goals_at_midrange_made": 1,
      "field_goals_at_midrange_att": 7,
      "field_goals_at_midrange_pct": 14.3,
      "bench_points": 24,
      "biggest_lead": 0,
      "effective_fg_pct": 61.7,
      "efficiency": 76,
      "efficiency_game_score": 49.2,
      "fouls_drawn": 18,
      "offensive_fouls": 1,
      "pls_min": -13,
      "points_in_paint_att": 19,
      "points_in_paint_made": 13,
      "points_in_paint_pct": 68.4,
      "total_fouls": 17,
      "true_shooting_att": 53.16,
      "true_shooting_pct": 65.8,
      "coach_ejections": 0,
      "most_unanswered": {
        "points": 6,
        "own_score": 47,
        "opp_score": 55
      },
      "periods": [
        {
          "type": "REG",
          "id": "d73c7e95-ed97-4ed2-9ca2-573655dccc03",
          "number": 1,
          "sequence": 1,
          "minutes": "1:00:00",
          "field_goals_made": 13,
          "field_goals_att": 24,
          "field_goals_pct": 54.2,
          "three_points_made": 4,
          "three_points_att": 9,
          "three_points_pct": 44.4,
          "two_points_made": 9,
          "two_points_att": 15,
          "two_points_pct": 60,
          "blocked_att": 2,
          "free_throws_made": 4,
          "free_throws_att": 4,
          "free_throws_pct": 100,
          "offensive_rebounds": 1,
          "defensive_rebounds": 11,
          "rebounds": 12,
          "assists": 5,
          "turnovers": 10,
          "steals": 2,
          "blocks": 1,
          "assists_turnover_ratio": 0.5,
          "personal_fouls": 8,
          "offensive_fouls": 1,
          "points": 34,
          "second_chance_pts": 2,
          "team_turnovers": 1,
          "points_off_turnovers": 9,
          "team_rebounds": 0,
          "flagrant_fouls": 0,
          "player_tech_fouls": 0,
          "team_tech_fouls": 0,
          "coach_tech_fouls": 0,
          "pls_min": -6,
          "effective_fg_pct": 62.5,
          "bench_points": 11,
          "points_in_paint": 16,
          "points_in_paint_att": 11,
          "points_in_paint_made": 8,
          "points_in_paint_pct": 72.7,
          "true_shooting_att": 25.76,
          "true_shooting_pct": 66,
          "biggest_lead": 0,
          "fouls_drawn": 8,
          "total_turnovers": 11,
          "efficiency": 31,
          "efficiency_game_score": 19.4
        },
        {
          "type": "REG",
          "id": "8cca57fb-8a3d-455a-9d79-edc55b558c2d",
          "number": 2,
          "sequence": 2,
          "minutes": "1:00:00",
          "field_goals_made": 11,
          "field_goals_att": 23,
          "field_goals_pct": 47.8,
          "three_points_made": 6,
          "three_points_att": 12,
          "three_points_pct": 50,
          "two_points_made": 5,
          "two_points_att": 11,
          "two_points_pct": 45.5,
          "blocked_att": 0,
          "free_throws_made": 8,
          "free_throws_att": 10,
          "free_throws_pct": 80,
          "offensive_rebounds": 5,
          "defensive_rebounds": 10,
          "rebounds": 15,
          "assists": 10,
          "turnovers": 7,
          "steals": 2,
          "blocks": 2,
          "assists_turnover_ratio": 1.43,
          "personal_fouls": 9,
          "offensive_fouls": 0,
          "points": 36,
          "second_chance_pts": 5,
          "team_turnovers": 0,
          "points_off_turnovers": 3,
          "team_rebounds": 0,
          "flagrant_fouls": 0,
          "player_tech_fouls": 0,
          "team_tech_fouls": 0,
          "coach_tech_fouls": 0,
          "pls_min": -7,
          "effective_fg_pct": 60.9,
          "bench_points": 13,
          "points_in_paint": 10,
          "points_in_paint_att": 8,
          "points_in_paint_made": 5,
          "points_in_paint_pct": 62.5,
          "true_shooting_att": 27.4,
          "true_shooting_pct": 65.7,
          "biggest_lead": 0,
          "fouls_drawn": 10,
          "total_turnovers": 7,
          "efficiency": 45,
          "efficiency_game_score": 29.8
        }
      ]
    },
    "coaches": [
      {
        "id": "160cec76-3364-46bf-8809-944af0731e04",
        "full_name": "Kenny Payne",
        "first_name": "Kenny",
        "last_name": "Payne",
        "position": "Head Coach"
      }
    ],
    "players": [
      {
        "full_name": "Curtis Williams",
        "jersey_number": "1",
        "id": "d425788c-a53c-4d55-b714-8f13bcd00179",
        "first_name": "Curtis",
        "last_name": "Williams",
        "position": "G-F",
        "primary_position": "NA",
        "played": true,
        "active": true,
        "statistics": {
          "minutes": "24:00",
          "field_goals_made": 4,
          "field_goals_att": 8,
          "field_goals_pct": 50,
          "three_points_made": 2,
          "three_points_att": 5,
          "three_points_pct": 40,
          "two_points_made": 2,
          "two_points_att": 3,
          "two_points_pct": 66.7,
          "blocked_att": 0,
          "free_throws_made": 1,
          "free_throws_att": 2,
          "free_throws_pct": 50,
          "offensive_rebounds": 0,
          "defensive_rebounds": 1,
          "rebounds": 1,
          "assists": 2,
          "turnovers": 2,
          "steals": 0,
          "blocks": 1,
          "assists_turnover_ratio": 1,
          "personal_fouls": 2,
          "tech_fouls": 0,
          "flagrant_fouls": 0,
          "pls_min": 0,
          "points": 11,
          "double_double": false,
          "triple_double": false,
          "effective_fg_pct": 62.5,
          "efficiency": 8,
          "efficiency_game_score": 6.2,
          "fouls_drawn": 2,
          "offensive_fouls": 0,
          "points_in_paint": 2,
          "points_in_paint_att": 1,
          "points_in_paint_made": 1,
          "points_in_paint_pct": 100,
          "points_off_turnovers": 2,
          "true_shooting_att": 8.88,
          "true_shooting_pct": 61.9,
          "coach_ejections": 0,
          "coach_tech_fouls": 0,
          "second_chance_pts": 0,
          "second_chance_pct": 0,
          "periods": [
            {
              "type": "REG",
              "id": "d73c7e95-ed97-4ed2-9ca2-573655dccc03",
              "number": 1,
              "sequence": 1,
              "minutes": "00:00",
              "field_goals_made": 3,
              "field_goals_att": 5,
              "field_goals_pct": 60,
              "three_points_made": 1,
              "three_points_att": 2,
              "three_points_pct": 50,
              "two_points_made": 2,
              "two_points_att": 3,
              "two_points_pct": 66.7,
              "blocked_att": 0,
              "free_throws_made": 0,
              "free_throws_att": 0,
              "free_throws_pct": 0,
              "offensive_rebounds": 0,
              "defensive_rebounds": 1,
              "rebounds": 1,
              "assists": 1,
              "turnovers": 1,
              "steals": 0,
              "blocks": 1,
              "assists_turnover_ratio": 1,
              "personal_fouls": 1,
              "offensive_fouls": 0,
              "tech_fouls": 0,
              "flagrant_fouls": 0,
              "pls_min": 0,
              "points": 7,
              "effective_fg_pct": 70,
              "efficiency": 7,
              "efficiency_game_score": 5,
              "points_in_paint": 2,
              "points_in_paint_att": 1,
              "points_in_paint_made": 1,
              "points_in_paint_pct": 100,
              "true_shooting_att": 5,
              "true_shooting_pct": 70,
              "fouls_drawn": 1,
              "points_off_turnovers": 2,
              "second_chance_pts": 0
            },
            {
              "type": "REG",
              "id": "8cca57fb-8a3d-455a-9d79-edc55b558c2d",
              "number": 2,
              "sequence": 2,
              "minutes": "00:00",
              "field_goals_made": 1,
              "field_goals_att": 3,
              "field_goals_pct": 33.3,
              "three_points_made": 1,
              "three_points_att": 3,
              "three_points_pct": 33.3,
              "two_points_made": 0,
              "two_points_att": 0,
              "two_points_pct": 0,
              "blocked_att": 0,
              "free_throws_made": 1,
              "free_throws_att": 2,
              "free_throws_pct": 50,
              "offensive_rebounds": 0,
              "defensive_rebounds": 0,
              "rebounds": 0,
              "assists": 1,
              "turnovers": 1,
              "steals": 0,
              "blocks": 0,
              "assists_turnover_ratio": 1,
              "personal_fouls": 1,
              "offensive_fouls": 0,
              "tech_fouls": 0,
              "flagrant_fouls": 0,
              "pls_min": 0,
              "points": 4,
              "effective_fg_pct": 50,
              "efficiency": 1,
              "efficiency_game_score": 1.2,
              "points_in_paint": 0,
              "points_in_paint_att": 0,
              "points_in_paint_made": 0,
              "points_in_paint_pct": 0,
              "true_shooting_att": 3.88,
              "true_shooting_pct": 51.5,
              "fouls_drawn": 1,
              "points_off_turnovers": 0,
              "second_chance_pts": 0
            }
          ]
        }
      },
      {
        "full_name": "Danilo Jovanovich",
        "jersey_number": "13",
        "id": "b7d79cee-1752-4517-92aa-002dca436e10",
        "first_name": "Danilo",
        "last_name": "Jovanovich",
        "position": "F",
        "primary_position": "NA",
        "played": true,
        "active": true,
        "starter": true,
        "statistics": {
          "minutes": "11:00",
          "field_goals_made": 0,
          "field_goals_att": 1,
          "field_goals_pct": 0,
          "three_points_made": 0,
          "three_points_att": 0,
          "three_points_pct": 0,
          "two_points_made": 0,
          "two_points_att": 1,
          "two_points_pct": 0,
          "blocked_att": 0,
          "free_throws_made": 2,
          "free_throws_att": 2,
          "free_throws_pct": 100,
          "offensive_rebounds": 0,
          "defensive_rebounds": 0,
          "rebounds": 0,
          "assists": 0,
          "turnovers": 1,
          "steals": 0,
          "blocks": 0,
          "assists_turnover_ratio": 0,
          "personal_fouls": 1,
          "tech_fouls": 0,
          "flagrant_fouls": 0,
          "pls_min": 0,
          "points": 2,
          "double_double": false,
          "triple_double": false,
          "effective_fg_pct": 0,
          "efficiency": 0,
          "efficiency_game_score": -0.1,
          "fouls_drawn": 1,
          "offensive_fouls": 0,
          "points_in_paint": 0,
          "points_in_paint_att": 0,
          "points_in_paint_made": 0,
          "points_in_paint_pct": 0,
          "points_off_turnovers": 0,
          "true_shooting_att": 1.88,
          "true_shooting_pct": 53.2,
          "coach_ejections": 0,
          "coach_tech_fouls": 0,
          "second_chance_pts": 0,
          "second_chance_pct": 0,
          "periods": [
            {
              "type": "REG",
              "id": "d73c7e95-ed97-4ed2-9ca2-573655dccc03",
              "number": 1,
              "sequence": 1,
              "minutes": "00:00",
              "field_goals_made": 0,
              "field_goals_att": 1,
              "field_goals_pct": 0,
              "three_points_made": 0,
              "three_points_att": 0,
              "three_points_pct": 0,
              "two_points_made": 0,
              "two_points_att": 1,
              "two_points_pct": 0,
              "blocked_att": 0,
              "free_throws_made": 2,
              "free_throws_att": 2,
              "free_throws_pct": 100,
              "offensive_rebounds": 0,
              "defensive_rebounds": 0,
              "rebounds": 0,
              "assists": 0,
              "turnovers": 1,
              "steals": 0,
              "blocks": 0,
              "assists_turnover_ratio": 0,
              "personal_fouls": 1,
              "offensive_fouls": 0,
              "tech_fouls": 0,
              "flagrant_fouls": 0,
              "pls_min": 0,
              "points": 2,
              "effective_fg_pct": 0,
              "efficiency": 0,
              "efficiency_game_score": -0.1,
              "points_in_paint": 0,
              "points_in_paint_att": 0,
              "points_in_paint_made": 0,
              "points_in_paint_pct": 0,
              "true_shooting_att": 1.88,
              "true_shooting_pct": 53.2,
              "fouls_drawn": 1,
              "points_off_turnovers": 0,
              "second_chance_pts": 0
            },
            {
              "type": "REG",
              "id": "8cca57fb-8a3d-455a-9d79-edc55b558c2d",
              "number": 2,
              "sequence": 2,
              "minutes": "00:00",
              "field_goals_made": 0,
              "field_goals_att": 0,
              "field_goals_pct": 0,
              "three_points_made": 0,
              "three_points_att": 0,
              "three_points_pct": 0,
              "two_points_made": 0,
              "two_points_att": 0,
              "two_points_pct": 0,
              "blocked_att": 0,
              "free_throws_made": 0,
              "free_throws_att": 0,
              "free_throws_pct": 0,
              "offensive_rebounds": 0,
              "defensive_rebounds": 0,
              "rebounds": 0,
              "assists": 0,
              "turnovers": 0,
              "steals": 0,
              "blocks": 0,
              "assists_turnover_ratio": 0,
              "personal_fouls": 0,
              "offensive_fouls": 0,
              "tech_fouls": 0,
              "flagrant_fouls": 0,
              "pls_min": 0,
              "points": 0,
              "effective_fg_pct": 0,
              "efficiency": 0,
              "efficiency_game_score": 0,
              "points_in_paint": 0,
              "points_in_paint_att": 0,
              "points_in_paint_made": 0,
              "points_in_paint_pct": 0,
              "true_shooting_att": 0,
              "true_shooting_pct": 0,
              "fouls_drawn": 0,
              "points_off_turnovers": 0,
              "second_chance_pts": 0
            }
          ]
        }
      }
    ]
  }
}

In this example from a Louisville Cardinals basketball game, the statistics highlight key metrics such as total points scored, field goal percentages, three-point shooting efficiency, and other vital data points like rebounds, assists, and turnovers. It also includes specific metrics like points in the paint, fast break points, and second-chance points. This comprehensive breakdown offers a detailed overview of the team’s offensive and defensive performance, helping to analyze game strategy, player efficiency, and the overall execution throughout the game.

The visual represents key basketball game statistics, highlighting metrics such as time spent in the lead, the biggest lead, and the maximum points scored in a row by a team. In this example, Pittsburgh spent 39:14 minutes in the lead, maintaining a 19-point biggest lead and scoring 10 consecutive points. This format provides an effective way to convey game dynamics and team performance, allowing users to quickly grasp the effectiveness of strategies and key moments during the game.



Use Case

You can use game statistics in your app to allow coaches and sports analysts to evaluate team performance and efficiency. This data provides valuable insights into field goal percentages, time spent in the lead, and the largest scoring runs, offering a clear understanding of how the game unfolded. By analyzing metrics such as rebounding, fouls, and shooting efficiency, users can make informed decisions on player rotations and strategies.


Option 2 - Using the Push Statistics Feed

The Push Statistics feed offers the same live stat data as the Game Summary feed, with its main advantage being continuous real-time updates through a single API call, thereby reducing the total number of API calls required.


Streamline your access to live game updates by combining the Push Statistics feed:

  1. Open a connection with a single call to the Push Statistics feed to receive real-time updates.
  2. Push feeds automatically deliver JSON payloads through a push service, minimizing the number of calls required.

Note: To utilize the Push feature, you must be a Realtime customer. Additionally, using the Game Summary feed as a backup is recommended for uninterrupted coverage.


How to Connect to the Push Statistics Feed:

  • Add the match parameter with the specific game id. Without the match parameter the feed will return data for all live NCAAMB games.
  • In the event of a disconnection from the Push Events Feed, it's not possible to resume where you left off.
    • To ensure continuous coverage, use multiple Push Feeds and supplement with RESTful feeds like Game Summary as a fallback to retrieve any missed timeline information during live games.

Supplementing Stats Feeds with the Game Play-by-Play Feed

If you choose to use the Game Summary or Push Statistics feeds and need detailed play-related statistics such as attempted field goals, missed three-pointers, and turnovers, consider supplementing with the Game Play-by-Play feed. This integration will provide comprehensive game data, enriching your solution with in-depth coverage of key plays and player actions.

👍

Tip - Compare Data Points

Compare the data points returned by the Game Play-by-Play feed with those from the Game Summary or Push Statistics feed to understand the specific information each provides.



Daily Change Log

The Daily Change Log endpoint allows for efficient tracking of daily changes to the NCAAMB API without depleting your API call limits. It updates you on significant changes like schedule adjustments, game results, player updates (such as name or number changes), and team modifications.

The table below outlines scenarios and use cases for utilizing the Daily Change Log for applications that offer live game updates.

DataUse Case
Game-Play-by-PlayTrack changes in play details such as new plays added or corrections to existing play records.
Game SummaryMonitor updates in player statistics and team performance metrics post-game corrections.
Game BoxscoreMonitor adjustments in game summary data, including final scores or statistical errors being rectified.

To use the Daily Change Log feed for monitoring changes to recent games:

  1. Identify Change Types: First, review the Daily Change Log to identify the types of changes reported. These could be related to games, players, or teams. Each entry in the log will list relevant IDs (game, player, or team ID), depending on the type of change.

  2. Use IDs to Retrieve Specifics:

    • Game Changes: If the ID is found within the "results" node, it typically indicates a change in game results. This ID is a game ID.
    • Player and Team Changes: Similarly, IDs associated with players or teams indicate changes relevant to these entities, such as updates to player information or team rosters.
  3. Pull Detailed Data: Use the identified IDs to pull detailed information from the relevant feed. For example:

    • Game Play-by-Play Feed: If a game ID is mentioned, you can pull this feed to check for any new plays added or modifications to existing plays.
    • Game Statistics Feed: Use the game ID to retrieve updated player statistics and team performance metrics to see what specific data was altered.
    • Game Boxscore Feed: Pull this feed using the game ID to review any updates to the game summary, including scores and other significant game statistics.
  4. Verify Changes: After pulling the detailed data from the relevant feeds, compare the newly retrieved data against previously stored data to verify the changes and update your records accordingly.

⏱️

Update Frequency

TTL / Cache: 300 seconds

Data Updates:

  • Entries populate live for changes to teams, players, game statistics, schedules, and standings.
  • Start time of the log is 05:00:00 UTC; end time is 04:59:59 UTC

For optimal results, set a regular schedule to pull every 10 minutes or less (depending on your use case) to access the feed.