---
updatedAt: 2026-09-09T06:51:19.000Z
agentTools:
  siteIndex: https://developer.sportradar.com/llms.txt
  projectIndex: https://developer.sportradar.com/football/llms.txt
---

# Retrieving Seasonal Statistics

The <Anchor label="Seasonal Statistics" target="_blank" href="ref:ncaafb-seasonal-statistics">Seasonal Statistics</Anchor> feed returns a team's complete season statistics: a team-level `record` object and a `players[]` array, both organized by stat category. Seasonal statistics are an aggregation of game statistics across a season, for both teams and players; if you have integrated live game updates, you may already know the <Anchor label="Game Statistics" target="_blank" href="ref:ncaafb-game-statistics">Game Statistics</Anchor> feed, which provides game statistics in real-time, and the seasonal feeds sit alongside it. One call per team per season type covers a stats page, the <Anchor label="Player Profile" target="_blank" href="ref:ncaafb-player-profile">Player Profile</Anchor> follows a player across seasons, and <Anchor label="League Leaders" target="_blank" href="ref:ncaafb-league-leaders">League Leaders</Anchor> ranks players league-wide. Responses in this scenario are shown trimmed to representative slices.

This scenario is commonly used to:

* Build team and player season stat pages
* Follow a player's career season by season
* Rank players league-wide, per division, or within a team
* Power fantasy features with touchdowns and yards gained
* Pair a season's award winners with its statistics for season-in-review features

<br />

***

## Relevant Feeds

| Feed                                                                                                                   | Scope                       | Use                                                                 |
| ---------------------------------------------------------------------------------------------------------------------- | --------------------------- | ------------------------------------------------------------------- |
| <Anchor label="Seasonal Statistics" target="_blank" href="ref:ncaafb-seasonal-statistics">Seasonal Statistics</Anchor> | season year + type, team ID | Team and player season statistics                                   |
| <Anchor label="Player Profile" target="_blank" href="ref:ncaafb-player-profile">Player Profile</Anchor>                | player ID                   | The same player across seasons and teams, with biographical details |
| <Anchor label="League Leaders" target="_blank" href="ref:ncaafb-league-leaders">League Leaders</Anchor>                | season year + type          | Ranked leaderboards per statistic, league-wide and per division     |
| <Anchor label="Awards List" target="_blank" href="ref:ncaafb-awards-list">Awards List</Anchor>                         | league                      | Every award the league presents                                     |
| <Anchor label="Seasonal Awards" target="_blank" href="ref:ncaafb-seasonal-awards">Seasonal Awards</Anchor>             | season year + type          | Award winners for a season                                          |
| <Anchor label="Daily Change Log" target="_blank" href="ref:ncaafb-daily-change-log">Daily Change Log</Anchor>          | date                        | Statistic revisions after a game has ended                          |
| <Anchor label="Game Statistics" target="_blank" href="ref:ncaafb-game-statistics">Game Statistics</Anchor>             | game ID                     | Single-game breakdowns behind a revision                            |

<br />

***

## High-Level Workflow

<div style={{border: "1px solid #C5CAE9", borderRadius: "12px", overflow: "hidden", margin: "4px 0 8px"}}>
  <div style={{background: "linear-gradient(90deg, #1A237E 0%, #283593 60%, #3949AB 100%)", color: "#FFFFFF", padding: "10px 18px", display: "flex", alignItems: "baseline", justifyContent: "space-between", flexWrap: "wrap", gap: "4px 12px"}}>
    <span style={{fontWeight: 700, fontSize: "14px", letterSpacing: "0.02em"}}>Season Statistics Workflow</span>
    <span style={{fontSize: "12px", opacity: 0.8}}>One call per team per season type</span>
  </div>
  <div style={{padding: "12px 18px", background: "#FFFFFF", display: "flex", flexDirection: "column", gap: "10px"}}>
    <div style={{display: "flex", flexWrap: "wrap", gap: "8px", alignItems: "center"}}>
      <span style={{minWidth: "112px", fontSize: "12px", color: "#6B7280", fontWeight: 700}}>Address</span>
      <span style={{display: "inline-block", padding: "4px 10px", borderRadius: "999px", border: "1px solid #C5CAE9", background: "#F3F6FA", color: "#1A237E", fontSize: "12.5px", fontWeight: 600, fontFamily: "SFMono-Regular, Menlo, Consolas, monospace", whiteSpace: "nowrap"}}>season year + type</span>
      <span style={{display: "inline-block", padding: "4px 10px", borderRadius: "999px", border: "1px solid #C5CAE9", background: "#F3F6FA", color: "#1A237E", fontSize: "12.5px", fontWeight: 600, fontFamily: "SFMono-Regular, Menlo, Consolas, monospace", whiteSpace: "nowrap"}}>team ID</span>
      <span style={{display: "inline-block", padding: "4px 10px", borderRadius: "999px", border: "1px solid #C5CAE9", background: "#FAFAFA", color: "#374151", fontSize: "12px", whiteSpace: "nowrap"}}>season from Seasons, team from Teams</span>
    </div>
    <div style={{display: "flex", flexWrap: "wrap", gap: "8px", alignItems: "center"}}>
      <span style={{minWidth: "112px", fontSize: "12px", color: "#6B7280", fontWeight: 700}}>Team view</span>
      <span style={{display: "inline-block", padding: "4px 10px", borderRadius: "999px", border: "1px solid #C5CAE9", background: "#F3F6FA", color: "#1A237E", fontSize: "12.5px", fontWeight: 600, fontFamily: "SFMono-Regular, Menlo, Consolas, monospace", whiteSpace: "nowrap"}}>Seasonal Statistics</span>
      <span style={{display: "inline-block", padding: "4px 10px", borderRadius: "999px", border: "1px solid #C5CAE9", background: "#FAFAFA", color: "#374151", fontSize: "12px", whiteSpace: "nowrap"}}>record object: rushing, passing, receiving, penalties, and more</span>
    </div>
    <div style={{display: "flex", flexWrap: "wrap", gap: "8px", alignItems: "center"}}>
      <span style={{minWidth: "112px", fontSize: "12px", color: "#6B7280", fontWeight: 700}}>Player view</span>
      <span style={{display: "inline-block", padding: "4px 10px", borderRadius: "999px", border: "1px solid #C5CAE9", background: "#F3F6FA", color: "#1A237E", fontSize: "12.5px", fontWeight: 600, fontFamily: "SFMono-Regular, Menlo, Consolas, monospace", whiteSpace: "nowrap"}}>players[]</span>
      <span style={{display: "inline-block", padding: "4px 10px", borderRadius: "999px", border: "1px solid #C5CAE9", background: "#FAFAFA", color: "#374151", fontSize: "12px", whiteSpace: "nowrap"}}>the same categories per player; rank within the team</span>
    </div>
    <div style={{display: "flex", flexWrap: "wrap", gap: "8px", alignItems: "center"}}>
      <span style={{minWidth: "112px", fontSize: "12px", color: "#6B7280", fontWeight: 700}}>Across seasons</span>
      <span style={{display: "inline-block", padding: "4px 10px", borderRadius: "999px", border: "1px dashed #9FA8DA", background: "#F3F6FA", color: "#1A237E", fontSize: "12.5px", fontWeight: 600, fontFamily: "SFMono-Regular, Menlo, Consolas, monospace", whiteSpace: "nowrap"}}>Player Profile</span>
      <span style={{display: "inline-block", padding: "4px 10px", borderRadius: "999px", border: "1px solid #C5CAE9", background: "#FAFAFA", color: "#374151", fontSize: "12px", whiteSpace: "nowrap"}}>seasons[] per season type and team, plus biographical details</span>
    </div>
    <div style={{display: "flex", flexWrap: "wrap", gap: "8px", alignItems: "center"}}>
      <span style={{minWidth: "112px", fontSize: "12px", color: "#6B7280", fontWeight: 700}}>League-wide</span>
      <span style={{display: "inline-block", padding: "4px 10px", borderRadius: "999px", border: "1px dashed #9FA8DA", background: "#F3F6FA", color: "#1A237E", fontSize: "12.5px", fontWeight: 600, fontFamily: "SFMono-Regular, Menlo, Consolas, monospace", whiteSpace: "nowrap"}}>League Leaders</span>
      <span style={{display: "inline-block", padding: "4px 10px", borderRadius: "999px", border: "1px solid #C5CAE9", background: "#FAFAFA", color: "#374151", fontSize: "12px", whiteSpace: "nowrap"}}>ranked leaders per statistic, NCAAFB, FBS, and FCS</span>
    </div>
    <div style={{display: "flex", flexWrap: "wrap", gap: "8px", alignItems: "center"}}>
      <span style={{minWidth: "112px", fontSize: "12px", color: "#6B7280", fontWeight: 700}}>Honors</span>
      <span style={{display: "inline-block", padding: "4px 10px", borderRadius: "999px", border: "1px dashed #9FA8DA", background: "#F3F6FA", color: "#1A237E", fontSize: "12.5px", fontWeight: 600, fontFamily: "SFMono-Regular, Menlo, Consolas, monospace", whiteSpace: "nowrap"}}>Seasonal Awards</span>
      <span style={{display: "inline-block", padding: "4px 10px", borderRadius: "999px", border: "1px solid #C5CAE9", background: "#FAFAFA", color: "#374151", fontSize: "12px", whiteSpace: "nowrap"}}>award winners for the season; Awards List names every award</span>
    </div>
  </div>
  <div style={{padding: "8px 18px", borderTop: "1px solid #E8EAF6", fontSize: "12px", color: "#6B7280", background: "#FAFAFA"}}>Season statistics and profiles update about five minutes after a game moves to <code>closed</code>, league leaders about 20 minutes after; refresh after game days rather than on a timer.</div>
</div>

<br />

***

## Integration Steps

<br />

### 1. Pull the team's season

Season years and types come from the <Anchor label="Seasons" target="_blank" href="ref:ncaafb-seasons">Seasons</Anchor> feed, which lists every season with data; checking it first, especially when planning ahead for a season whose data is not yet loaded, prevents unnecessary errors and streamlines retrieval. Team IDs for every active team come from the <Anchor label="Teams" target="_blank" href="ref:ncaafb-teams">Teams</Anchor> feed. Address the Seasonal Statistics feed with the season year, the season type, and the team ID; the response carries the team's `record` object and the seasonal statistics of its individual players. Team ids come from the <Anchor label="Teams" target="_blank" href="ref:ncaafb-teams">Teams</Anchor> feed or the <Anchor label="League Hierarchy" target="_blank" href="ref:ncaafb-league-hierarchy">League Hierarchy</Anchor>; the [Fundamentals](https://developer.sportradar.com/football/docs/ncaafb-ig-fundamentals) page walks that catalog.

<br />

<Callout icon="🕑" theme="default">
  ### Data Availability

  Seasonal statistics date back to the 2013 season, although availability can vary by player and team.
</Callout>

<br />

The 2023 regular season for the Alabama Crimson Tide (team ID `19775492-f1eb-4bc5-9e15-078ebd689c0f`):

```http
GET https://api.sportradar.com/ncaafb/trial/v7/en/seasons/2023/REG/teams/19775492-f1eb-4bc5-9e15-078ebd689c0f/statistics.json
x-api-key: YOUR_API_KEY
```
```json Seasonal Statistics, team (json)
{
  "id": "19775492-f1eb-4bc5-9e15-078ebd689c0f",
  "name": "Crimson Tide",
  "market": "Alabama",
  "alias": "BAMA",
  "season": {
    "id": "f58c6dbf-9dfe-487e-8b0b-af66af887206",
    "year": 2023,
    "type": "REG",
    "name": "REG"
  },
  "record": {
    "games_played": 14,
    "touchdowns": {
      "pass": 23,
      "rush": 32,
      "total_return": 3,
      "total": 58,
      "fumble_return": 1,
      "int_return": 1,
      "kick_return": 0,
      "punt_return": 1,
      "other": 0
    },
    "rushing": {
      "avg_yards": 4.308,
      "attempts": 561,
      "touchdowns": 32,
      "tlost": 39,
      "tlost_yards": -134,
      "yards": 2417,
      "longest": 78,
      "longest_touchdown": 53,
      "redzone_attempts": 103
    },
    "receiving": {
      "targets": 322,
      "receptions": 208,
      "avg_yards": 14.837,
      "yards": 3086,
      "touchdowns": 23,
      "yards_after_catch": 3087,
      "longest": 79,
      "longest_touchdown": 79,
      "redzone_targets": 29,
      "air_yards": -1
    },
    "penalties": {
      "penalties": 78,
      "yards": 655
    },
    "passing": {
      "attempts": 325,
      "completions": 208,
      "cmp_pct": 64,
      "interceptions": 6,
      "sack_yards": 360,
      "rating": 172.73,
      "touchdowns": 23,
      "avg_yards": 10.603,
      "sacks": 49,
      "longest": 79,
      "longest_touchdown": 79,
      "air_yards": -1,
      "redzone_attempts": 29,
      "net_yards": 3086,
      "yards": 3086,
      "gross_yards": 3446,
      "int_touchdowns": 0
    }
  },
  "opponents": {
    "games_played": 14,
    "touchdowns": {
      "pass": 17,
      "rush": 15,
      "total_return": 0,
      "total": 32,
      "fumble_return": 0,
      "int_return": 0,
      "kick_return": 0,
      "punt_return": 0,
      "other": 0
    }
  }
}
```

The record is shown trimmed to the touchdowns, rushing, receiving, penalties, and passing blocks, and the `opponents` object to its touchdowns block. The full response carries comprehensive team seasonal statistics including punts and returns, kicking, defense, first downs, extra points, and efficiency, with the same category set repeated under `opponents`, which supports deep dives into team strategies and individual performances, such as analyzing rush attempts, average yards per carry, and the impact of penalties on game outcomes. A team page built from it, showing details such as points scored, total yards per game, passing yards per game, and rushing yards per game, lets users quickly compare team performances and evaluate offensive strengths across different teams and conferences:

<div style={{border: "1px solid #C5CAE9", borderRadius: "12px", overflow: "hidden", margin: "4px 0 8px", maxWidth: "640px"}}>
<div style={{background: "linear-gradient(90deg, #1A237E 0%, #283593 60%, #3949AB 100%)", color: "#FFFFFF", padding: "8px 16px", fontSize: "12px", fontWeight: 700, letterSpacing: "0.04em", display: "flex", justifyContent: "space-between", flexWrap: "wrap", gap: "4px 12px"}}><span>ALABAMA · TEAM SEASON</span><span style={{opacity: 0.8, fontWeight: 500}}>2025 REG · Seasonal Statistics</span></div>
<div style={{display: "flex", alignItems: "center", gap: "8px", padding: "8px 14px", borderTop: "1px solid #E8EAF6", background: "#FFFFFF"}}><span style={{flex: "1 1 120px", minWidth: "0", fontSize: "12.5px", fontWeight: 500, color: "#1A237E", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap"}}>Passing yards</span><span style={{width: "60px", textAlign: "right", fontSize: "12.5px", fontWeight: 700, color: "#1A237E", fontFamily: "SFMono-Regular, Menlo, Consolas, monospace", flex: "none"}}>3953</span></div>
<div style={{display: "flex", alignItems: "center", gap: "8px", padding: "8px 14px", borderTop: "1px solid #E8EAF6", background: "#FFFFFF"}}><span style={{flex: "1 1 120px", minWidth: "0", fontSize: "12.5px", fontWeight: 500, color: "#1A237E", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap"}}>Rushing yards</span><span style={{width: "60px", textAlign: "right", fontSize: "12.5px", fontWeight: 700, color: "#1A237E", fontFamily: "SFMono-Regular, Menlo, Consolas, monospace", flex: "none"}}>1562</span></div>
<div style={{display: "flex", alignItems: "center", gap: "8px", padding: "8px 14px", borderTop: "1px solid #E8EAF6", background: "#FFFFFF"}}><span style={{flex: "1 1 120px", minWidth: "0", fontSize: "12.5px", fontWeight: 500, color: "#1A237E", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap"}}>First downs</span><span style={{width: "60px", textAlign: "right", fontSize: "12.5px", fontWeight: 700, color: "#1A237E", fontFamily: "SFMono-Regular, Menlo, Consolas, monospace", flex: "none"}}>305</span></div>
<div style={{display: "flex", alignItems: "center", gap: "8px", padding: "8px 14px", borderTop: "1px solid #E8EAF6", background: "#FFFFFF"}}><span style={{flex: "1 1 120px", minWidth: "0", fontSize: "12.5px", fontWeight: 500, color: "#1A237E", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap"}}>Penalties</span><span style={{width: "60px", textAlign: "right", fontSize: "12.5px", fontWeight: 700, color: "#1A237E", fontFamily: "SFMono-Regular, Menlo, Consolas, monospace", flex: "none"}}>67</span></div>
<div style={{padding: "8px 14px", borderTop: "1px solid #E8EAF6", fontSize: "12px", color: "#6B7280", background: "#FAFAFA"}}>One call per team per season type returns the record object plus every player line.</div>
</div>

> 📘 Recommended pull
>
> Seasonal statistics update on a five-minute timer after a game moves to `closed`. For the fastest updates, call the feed five to ten minutes after a game moves to `closed`; otherwise pull it on an as-needed basis.

<br />

### 2. Read the player list

Each entry in `players[]` carries the same category structure, populated for the categories that player accumulated. Jalen Milroe's entry from the same response:

```json Seasonal Statistics, player (json)
{
  "id": "c795fe68-566f-4cab-9fbc-4a51e2b1d73f",
  "name": "Jalen Milroe",
  "jersey": "4",
  "position": "QB",
  "games_played": 13,
  "games_started": 13,
  "rushing": {
    "avg_yards": 3.298,
    "attempts": 161,
    "touchdowns": 12,
    "yards": 531,
    "longest": 53,
    "longest_touchdown": 53,
    "redzone_attempts": 28,
    "tlost": 6,
    "tlost_yards": -18,
    "first_downs": 44
  },
  "penalties": {
    "penalties": 2,
    "yards": 10,
    "first_downs": 0
  },
  "passing": {
    "attempts": 284,
    "completions": 187,
    "cmp_pct": 65.845,
    "yards": 2834,
    "avg_yards": 9.979,
    "sacks": 44,
    "sack_yards": 328,
    "touchdowns": 23,
    "longest": 79,
    "interceptions": 6,
    "rating": 172.17,
    "longest_touchdown": 79,
    "air_yards": -1,
    "redzone_attempts": 25,
    "gross_yards": 2834,
    "first_downs": 116,
    "int_touchdowns": 0
  },
  "fumbles": {
    "fumbles": 3,
    "lost_fumbles": 2,
    "own_rec": 6,
    "own_rec_yards": 0,
    "opp_rec": 0,
    "opp_rec_yards": 0,
    "out_of_bounds": 0,
    "forced_fumbles": 0,
    "own_rec_tds": 0,
    "opp_rec_tds": 0,
    "ez_rec_tds": 0
  },
  "defense": {
    "tackles": 0,
    "assists": 0,
    "combined": 0,
    "sacks": 0,
    "sack_yards": 0,
    "interceptions": 0,
    "passes_defended": 0,
    "forced_fumbles": 0,
    "fumble_recoveries": 0,
    "qb_hits": 0,
    "tloss": 0,
    "tloss_yards": 0,
    "safeties": 0,
    "sp_tackles": 0,
    "sp_assists": 0,
    "sp_forced_fumbles": 0,
    "sp_fumble_recoveries": 0,
    "sp_blocks": 0,
    "misc_tackles": 1,
    "misc_assists": 0,
    "misc_forced_fumbles": 0,
    "misc_fumble_recoveries": 0
  },
  "conversions": {
    "pass_attempts": 1,
    "pass_successes": 1,
    "rush_attempts": 0,
    "rush_successes": 0,
    "receive_attempts": 0,
    "receive_successes": 0,
    "defense_attempts": 0,
    "defense_successes": 0
  }
}
```

Milroe rushed for 531 yards with 12 touchdowns on 161 attempts, and he made 187 completions out of 284 passing attempts, accumulating 2,834 yards and 23 touchdowns, with 6 interceptions and a passer rating of 172.17: contributions in both rushing and passing during the season, with penalties, fumbles, defense, and conversions carried in their own blocks. Key statistics such as rushing yards, passing completions, touchdowns, and interceptions read directly from these blocks, and ranking the entries within the team by any category builds a team leaderboard.

<br />

### 3. Follow a player across seasons

Team-scoped season stats answer "this team's season"; the <Anchor label="Player Profile" target="_blank" href="ref:ncaafb-player-profile">Player Profile</Anchor> answers "this player's career", with player seasonal statistics for each season they have played, one `seasons[]` entry per season, season type, and team, along with biographical details and draft information. `eligibility` carries the player's class year (`JR` for the player below).

Player IDs come from Seasonal Statistics when you are already retrieving seasonal data and want comprehensive career statistics, or from Team Roster when you have a team ID and need player IDs; the <Anchor label="NCAAFB API Map" target="_blank" href="https://developer.sportradar.com/football/reference/ncaafb-overview#api-map">NCAAFB API Map</Anchor> lists every feed that carries player data.

```http
GET https://api.sportradar.com/ncaafb/trial/v7/en/players/c795fe68-566f-4cab-9fbc-4a51e2b1d73f/profile.json
x-api-key: YOUR_API_KEY
```
```json Player Profile (json)
{
  "id": "c795fe68-566f-4cab-9fbc-4a51e2b1d73f",
  "name": "Jalen Milroe",
  "jersey": "4",
  "last_name": "Milroe",
  "first_name": "Jalen",
  "abbr_name": "J.Milroe",
  "weight": 225,
  "height": 74,
  "position": "QB",
  "birth_place": "Katy, TX, USA",
  "status": "ACT",
  "eligibility": "JR",
  "team": {
    "id": "19775492-f1eb-4bc5-9e15-078ebd689c0f",
    "name": "Crimson Tide",
    "market": "Alabama",
    "alias": "BAMA"
  },
  "seasons": [
    {
      "id": "d1132b13-2c29-4e6d-9011-b627c7fd9a17",
      "year": 2021,
      "type": "REG",
      "name": "REG",
      "teams": [
        {
          "id": "19775492-f1eb-4bc5-9e15-078ebd689c0f",
          "name": "Crimson Tide",
          "market": "Alabama",
          "alias": "BAMA",
          "statistics": {
            "games_played": 5,
            "games_started": 0,
            "rushing": {
              "avg_yards": 3.8,
              "attempts": 15,
              "touchdowns": 0,
              "yards": 57,
              "longest": 15,
              "longest_touchdown": 0,
              "redzone_attempts": 2,
              "tlost": 2,
              "tlost_yards": -9,
              "first_downs": 4
            },
            "passing": {
              "attempts": 7,
              "completions": 3,
              "cmp_pct": 42.857,
              "yards": 41,
              "avg_yards": 5.857,
              "sacks": 2,
              "sack_yards": 9,
              "touchdowns": 1,
              "longest": 24,
              "interceptions": 0,
              "rating": 139.2,
              "longest_touchdown": 24,
              "air_yards": 0,
              "redzone_attempts": 4,
              "gross_yards": 41,
              "first_downs": 2,
              "int_touchdowns": 0
            }
          }
        }
      ]
    },
    {
      "id": "ff53e5e4-10ef-4842-a0b7-b489956fa07e",
      "year": 2022,
      "type": "REG",
      "name": "REG",
      "teams": [
        {
          "id": "19775492-f1eb-4bc5-9e15-078ebd689c0f",
          "name": "Crimson Tide",
          "market": "Alabama",
          "alias": "BAMA",
          "statistics": {
            "games_played": 8,
            "games_started": 1,
            "rushing": {
              "avg_yards": 8.484,
              "attempts": 31,
              "touchdowns": 1,
              "yards": 263,
              "longest": 77,
              "longest_touchdown": 3,
              "redzone_attempts": 4,
              "tlost": 2,
              "tlost_yards": -11,
              "first_downs": 10
            },
            "passing": {
              "attempts": 53,
              "completions": 31,
              "cmp_pct": 58.491,
              "yards": 297,
              "avg_yards": 5.604,
              "sacks": 4,
              "sack_yards": 25,
              "touchdowns": 5,
              "longest": 35,
              "interceptions": 3,
              "rating": 125.37,
              "longest_touchdown": 35,
              "air_yards": 5,
              "redzone_attempts": 6,
              "gross_yards": 297,
              "first_downs": 18,
              "int_touchdowns": 0
            }
          }
        }
      ]
    },
    {
      "id": "f58c6dbf-9dfe-487e-8b0b-af66af887206",
      "year": 2023,
      "type": "REG",
      "name": "REG",
      "teams": [
        {
          "id": "19775492-f1eb-4bc5-9e15-078ebd689c0f",
          "name": "Crimson Tide",
          "market": "Alabama",
          "alias": "BAMA",
          "statistics": {
            "games_played": 13,
            "games_started": 13,
            "rushing": {
              "avg_yards": 3.298,
              "attempts": 161,
              "touchdowns": 12,
              "yards": 531,
              "longest": 53,
              "longest_touchdown": 53,
              "redzone_attempts": 28,
              "tlost": 6,
              "tlost_yards": -18,
              "first_downs": 44
            },
            "passing": {
              "attempts": 284,
              "completions": 187,
              "cmp_pct": 65.845,
              "yards": 2834,
              "avg_yards": 9.979,
              "sacks": 44,
              "sack_yards": 328,
              "touchdowns": 23,
              "longest": 79,
              "interceptions": 6,
              "rating": 172.17,
              "longest_touchdown": 79,
              "air_yards": -1,
              "redzone_attempts": 25,
              "gross_yards": 2834,
              "first_downs": 116,
              "int_touchdowns": 0
            }
          }
        }
      ]
    }
  ]
}
```

The profile is shown trimmed to the passing and rushing blocks of each season; the full profile also carries penalties, fumbles, defense, and conversions. Milroe's progression from 2021 through 2023, including passing attempts, completions, and touchdowns as well as rushing attempts, average yards per carry, and total touchdowns, supports analysis of a player's growth, consistency, and overall contribution to the Crimson Tide over the seasons.

> 📘 Recommended pull
>
> The Player Profile feed updates on the same five-minute timer after a game moves to `closed`; call it five to ten minutes after a game moves to `closed` for the fastest updates, otherwise on an as-needed basis.

<br />

### 4. Read league leaders

The <Anchor label="League Leaders" target="_blank" href="ref:ncaafb-league-leaders">League Leaders</Anchor> feed provides league leaders across passing, rushing, receiving, defense, scoring, returns, kicking, and punting categories, with individual leaderboards for specific statistics (such as passing yards, tackles, or field goal percentage) inside each category.

<br />

<Callout icon="🕑" theme="default">
  ### Data Availability

  NCAA Football league leaders are available from the 2013 season to the present.
</Callout>

<br />

Request League Leaders with a season year and season type. The response repeats the full category set three times under the `leagues` array: once for NCAA Football overall (`NCAAFB`) and once per division (`FBS`, `FCS`); filter on the league `alias` for the scope you want to display. Each category (for example, `passing`) contains one entry per statistic (for example, `passing_yards`), and each statistic carries its ranked `leaders` list. The 2025 regular season, shown trimmed to the NCAA-wide passing yards leaderboard and its top two leaders:

```http
GET https://api.sportradar.com/ncaafb/trial/v7/en/seasons/2025/REG/leaders.json
x-api-key: YOUR_API_KEY
```
```json League Leaders (json)
{
  "season": {
    "id": "754e4990-efc7-11ef-bb2a-5d2d22b9215e",
    "year": 2025,
    "type": "reg"
  },
  "leagues": [
    {
      "id": "26c1246a-2fc3-4b7e-8999-1685d3ab4676",
      "name": "NCAA Football",
      "alias": "NCAAFB",
      "categories": [
        {
          "name": "passing",
          "categories": [
            {
              "name": "passing_yards",
              "type": "total",
              "sort_direction": "desc",
              "leaders": [
                {
                  "rank": 1,
                  "tied": false,
                  "value": "4379",
                  "player": {
                    "id": "3547d170-59b0-11ef-92d9-c398f52bf4ee",
                    "full_name": "Drew Mestemaker",
                    "jersey_number": "17",
                    "position": "QB",
                    "status": "ACT"
                  },
                  "teams": [
                    {
                      "id": "2a828de7-53d6-4a35-9f55-9aaa226956ed",
                      "name": "Mean Green",
                      "alias": "UNT",
                      "market": "North Texas"
                    }
                  ]
                },
                {
                  "rank": 2,
                  "tied": false,
                  "value": "4070",
                  "player": {
                    "id": "582462e0-acae-11ed-b209-1539f381db49",
                    "full_name": "Keali'i Ah Yat",
                    "jersey_number": "8",
                    "position": "QB",
                    "status": "ACT"
                  },
                  "teams": [
                    {
                      "id": "465236db-280e-49a6-9575-feb4ca20b9b4",
                      "name": "Grizzlies",
                      "alias": "MONT",
                      "market": "Montana"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}
```

A few notes for reading leaderboards:

* Each leader carries a `rank` and a `tied` flag; when players share a value, their entries carry the same rank with `tied: true`.
* `value` is returned as a string for every statistic.
* The `type` and `sort_direction` fields on each statistic describe how the leaderboard is computed and ordered.
* `teams` is an array and lists the team or teams a player was credited with during the season.

> 📘 Recommended pull
>
> League leaders update around 20 minutes after a game moves to `closed`. Pull 20 to 25 minutes after a game moves to `closed` to receive the quickest updates; otherwise pull on an as-needed basis. The TTL/Cache is 15 minutes for the current season.

<br />

### 5. Read seasonal awards

The NCAAFB API also records postseason honors. The <Anchor label="Awards List" target="_blank" href="ref:ncaafb-awards-list">Awards List</Anchor> feed lists every award the league presents:

```http
GET https://api.sportradar.com/ncaafb/trial/v7/en/league/awards.json
x-api-key: YOUR_API_KEY
```

The <Anchor label="Seasonal Awards" target="_blank" href="ref:ncaafb-seasonal-awards">Seasonal Awards</Anchor> feed returns the award winners for a given season. Pair a season's award winners with the seasonal statistics above for season-in-review features:

```http
GET https://api.sportradar.com/ncaafb/trial/v7/en/seasons/2023/REG/awards.json
x-api-key: YOUR_API_KEY
```

<br />

### 6. Refresh after statistic revisions

A game statistic corrected after the game has ended changes seasonal totals, and the <Anchor label="Daily Change Log" target="_blank" href="ref:ncaafb-daily-change-log">Daily Change Log</Anchor> records the update in its `results` node. To keep a season store current: identify the change type by spotting the game IDs listed in `results`; retrieve the detailed data for those games from feeds such as <Anchor label="Game Statistics" target="_blank" href="ref:ncaafb-game-statistics">Game Statistics</Anchor>; pull the Seasonal Statistics feed for the team IDs involved, together with the Player Profile of any player whose totals moved and League Leaders for the season; then verify the change by comparing the newly retrieved data with the records you have stored.

```http
GET https://api.sportradar.com/ncaafb/trial/v7/en/league/2026/09/02/changes.json
x-api-key: YOUR_API_KEY
```

The log's polling cadence, its league-day window, the entity types it lists, deletions, and change-log samples live on [Monitoring Data Changes](https://developer.sportradar.com/football/docs/ncaafb-ig-daily-change-log).

<br />

***

## Common Use Cases

* **Team stats page**: one Seasonal Statistics pull per team per season type, refreshed after game days; updates on rushing yards, passing accuracy, and defensive stats for the season let fans, coaches, and analysts track progress, strategize, and make predictions from comprehensive, current season statistics
* **Team leaderboards**: rank `players[]` within a team by any category
* **League leaders**: League Leaders filtered on the `NCAAFB`, `FBS`, or `FCS` alias
* **Fantasy sports**: real-time updates and deep statistical insights into players like Jalen Milroe; touchdowns and yards gained drive fantasy scoring, so users can strategize player picks and lineup changes, and Player Profile `seasons[]` powers a "Player Performance Tracker" that visualizes a player's stats over seasons, so users spot performance trends, assess the impact of injuries and team changes on a player's output, and optimize draft strategies
* **Team strategy analysis**: rush attempts, average yards per carry, and the impact of penalties on game outcomes, from the team `record`
* **Season in review**: a season's award winners from Seasonal Awards paired with its statistics

<br />

***

## Best Practices

* Check the <Anchor label="Seasons" target="_blank" href="ref:ncaafb-seasons">Seasons</Anchor> feed before addressing a season, and take team IDs from the <Anchor label="Teams" target="_blank" href="ref:ncaafb-teams">Teams</Anchor> feed
* Call Seasonal Statistics and Player Profile five to ten minutes after a game moves to `closed` (both update on a five-minute timer) and League Leaders 20 to 25 minutes after; otherwise pull each feed on an as-needed basis
* Watch the <Anchor label="Daily Change Log" target="_blank" href="ref:ncaafb-daily-change-log">Daily Change Log</Anchor> for stat revisions after a game has ended and refetch the affected team's season; the log's mechanics are on [Monitoring Data Changes](https://developer.sportradar.com/football/docs/ncaafb-ig-daily-change-log)
* Seasonal statistics and league leaders date back to the 2013 season; availability can vary by player and team
* TTLs and the pull cadence for every feed are on [Update Frequencies](https://developer.sportradar.com/football/docs/ncaafb-ig-update-frequencies)