Rosters and Players
This guide shows you how to query NCAAFB endpoints for rosters, and player participation.
Accessing Available Seasons (Prerequisite)
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.
Introduction to Rosters
An NCAAFB roster is essentially the lineup of players registered under a team. You can access this data through two roster-specific endpoints:
- Team Roster - The Team Roster endpoint provides the complete roster of players for a given team.
- Game Roster - The Game Roster endpoint shows the declared game roster, identifying which players from the full roster will be active for a specific game.
Transferring Schools (Transfer Portal)
In NCAA Football, players can switch schools by entering the NCAA Transfer Portal, even mid-season. Mid-season transfers make the player ineligible to play until the next season, while off-season transfers help players avoid losing playing time and maintain academic progress.
You can track these moves directly using the NCAAFB Transfer Portal endpoint, which provides a list of all players currently in the NCAA Transfer Portal. A player’s ID remains constant even after transferring, ensuring you can track their career across teams without losing data continuity.
When Roster Data is Updated
Seasonal Rosters are maintained by Sportradar and updated starting in the summer and continuing up to the start of the season.
Use the Update Frequencies PageFor recommended pull intervals and timing for each roster-related endpoint, see the Update Frequencies page to ensure you’re calling feeds at the optimal rate.
Accessing Roster Data
Team Rosters
The Team Roster endpoint provides the complete roster of players for a given team.
Team Roster Response Snippet
<team xmlns="http://feed.elasticstats.com/schema/football/team-v7.0.xsd" id="19775492-f1eb-4bc5-9e15-078ebd689c0f" name="Crimson Tide" market="Alabama" alias="ALA" founded="1820" mascot="Big Al" fight_song="Yea Alabama" championships_won="18" conference_titles="30" playoff_appearances="8">
<franchise id="19775492-f1eb-4bc5-9e15-078ebd689c0f" name="Crimson Tide"/>
<venue id="3e133141-8ce3-4e3f-a6c3-72d31f9f1401" name="Bryant-Denny Stadium" city="Tuscaloosa" state="AL" country="USA" zip="35401" address="920 Paul West Bryant Drive" capacity="101821" surface="turf" roof_type="outdoor" sr_id="sr:venue:21438">
<location lat="33.2083" lng="-87.5504"/>
</venue>
<hierarchy>
<division id="43d3cede-6b8f-4158-bc7f-c3c7365e5b32" name="I-A" alias="FBS"/>
<conference id="c7a491c8-d0f2-4ca1-9403-f82db4452dd1" name="Southeastern" alias="SEC"/>
</hierarchy>
<coaches>
<coach id="5c1a8421-6061-4372-b4e5-385c2d8b0dcf" full_name="Kalen DeBoer" first_name="Kalen" last_name="DeBoer" position="Head Coach"/>
</coaches>
<players>
<player id="000d8f6e-5a71-4214-9bd9-b33f43502527" name="Dre Washington" jersey="20" last_name="Washington" first_name="Dre" abbr_name="D.Washington" weight="216.0" height="69" position="RB" birth_place="Hemphill, TX, USA" status="ACT" eligibility="SR">
</player>
<player id="007a8470-9c41-11ed-9b81-9b68194c9dc2" name="Kadyn Proctor" jersey="74" last_name="Proctor" first_name="Kadyn" abbr_name="K.Proctor" weight="360.0" height="79" position="OL" birth_place="Des Moines, IA, USA" status="ACT" eligibility="JR">
</player>
<player id="02ab5fa0-077f-11ed-8214-251cd78b157c" name="Cade Carruth" jersey="16" last_name="Carruth" first_name="Cade" abbr_name="C.Carruth" weight="215.0" height="73" position="QB" birth_place="Trussville, AL, USA" status="ACT" eligibility="SR">
</player>
<player id="03cb69b0-391e-11f0-bcb3-95dd0851e477" name="Jamison Travis" jersey="58" last_name="Travis" first_name="Jamison" abbr_name="J.Travis" weight="305.0" height="74" position="OL" birth_place="Hoover, AL, USA" status="ACT" eligibility="FR">
</player>
{
"id": "19775492-f1eb-4bc5-9e15-078ebd689c0f",
"name": "Crimson Tide",
"market": "Alabama",
"alias": "ALA",
"founded": 1820,
"mascot": "Big Al",
"fight_song": "Yea Alabama",
"championships_won": 18,
"conference_titles": 30,
"playoff_appearances": 8,
"franchise": {
"id": "19775492-f1eb-4bc5-9e15-078ebd689c0f",
"name": "Crimson Tide"
},
"venue": {
"id": "3e133141-8ce3-4e3f-a6c3-72d31f9f1401",
"name": "Bryant-Denny Stadium",
"city": "Tuscaloosa",
"state": "AL",
"country": "USA",
"zip": "35401",
"address": "920 Paul West Bryant Drive",
"capacity": 101821,
"surface": "turf",
"roof_type": "outdoor",
"sr_id": "sr:venue:21438",
"location": {
"lat": "33.2083",
"lng": "-87.5504"
}
},
"division": {
"id": "43d3cede-6b8f-4158-bc7f-c3c7365e5b32",
"name": "I-A",
"alias": "FBS"
},
"conference": {
"id": "c7a491c8-d0f2-4ca1-9403-f82db4452dd1",
"name": "Southeastern",
"alias": "SEC"
},
"coaches": [
{
"id": "5c1a8421-6061-4372-b4e5-385c2d8b0dcf",
"full_name": "Kalen DeBoer",
"first_name": "Kalen",
"last_name": "DeBoer",
"position": "Head Coach"
}
],
"players": [
{
"id": "000d8f6e-5a71-4214-9bd9-b33f43502527",
"name": "Dre Washington",
"jersey": "20",
"last_name": "Washington",
"first_name": "Dre",
"abbr_name": "D.Washington",
"weight": 216,
"height": 69,
"position": "RB",
"birth_place": "Hemphill, TX, USA",
"status": "ACT",
"eligibility": "SR"
},
{
"id": "007a8470-9c41-11ed-9b81-9b68194c9dc2",
"name": "Kadyn Proctor",
"jersey": "74",
"last_name": "Proctor",
"first_name": "Kadyn",
"abbr_name": "K.Proctor",
"weight": 360,
"height": 79,
"position": "OL",
"birth_place": "Des Moines, IA, USA",
"status": "ACT",
"eligibility": "JR"
},
{
"id": "02ab5fa0-077f-11ed-8214-251cd78b157c",
"name": "Cade Carruth",
"jersey": "16",
"last_name": "Carruth",
"first_name": "Cade",
"abbr_name": "C.Carruth",
"weight": 215,
"height": 73,
"position": "QB",
"birth_place": "Trussville, AL, USA",
"status": "ACT",
"eligibility": "SR"
},
{
"id": "03cb69b0-391e-11f0-bcb3-95dd0851e477",
"name": "Jamison Travis",
"jersey": "58",
"last_name": "Travis",
"first_name": "Jamison",
"abbr_name": "J.Travis",
"weight": 305,
"height": 74,
"position": "OL",
"birth_place": "Hoover, AL, USA",
"status": "ACT",
"eligibility": "FR"
}
]
}
When you query the NCAAFB Team Roster endpoint, you’ll receive full team information, such as name, market, founding year, mascot, fight song, championships, conference and division affiliations, and venue details (including location, capacity, and surface type). The response also includes coaching staff and the complete player roster. Each player object contains identifiers, jersey number, position, height, weight, birthplace, class eligibility (e.g., FR, JR, SR), and current status. Use this endpoint to power team pages, display complete rosters, or integrate college football player and team data into your application.
Leverage Team Franchise DataYou can also use the Team Roster endpoint to access detailed franchise data for NCAAFB teams. This information includes the team's founding year, mascot name, records of championships and conference titles won and more.
The following is an example of how you can display a team roster on your platform, showcasing key details such as player names, positions, class, height, weight, and birthplace.

Game Rosters
The Game Roster endpoint shows the declared game roster, identifying which players from the full roster will be active for a specific game.
Game Roster Response Snippet
{
"id": "7d6f5a07-70d9-4158-9f68-8a3b60eaecd4",
"status": "closed",
"scheduled": "2024-09-28T23:30:00+00:00",
"attendance": 100077,
"entry_mode": "LDE",
"clock": "00:00",
"quarter": 4,
"coverage": "full",
"sr_id": "sr:match:49406363",
"game_type": "regular",
"conference_game": true,
"duration": "3:44",
"weather": {
"condition": "Overcast",
"humidity": 69,
"temp": 73,
"wind": {
"speed": 4,
"direction": "WNW"
}
},
"summary": {
"season": {
"id": "908fbc20-f5c7-11ee-a306-c311afc28263",
"year": 2024,
"type": "REG",
"name": "REG"
},
"week": {
"id": "37636880-8503-4ad4-ac8d-4ebacda95edf",
"sequence": 5,
"title": "5"
},
"venue": {
"id": "3e133141-8ce3-4e3f-a6c3-72d31f9f1401",
"name": "Bryant-Denny Stadium",
"city": "Tuscaloosa",
"state": "AL",
"country": "USA",
"zip": "35401",
"address": "920 Paul West Bryant Drive",
"capacity": 101821,
"surface": "turf",
"roof_type": "outdoor",
"sr_id": "sr:venue:21438",
"location": {
"lat": "33.2083",
"lng": "-87.5504"
}
},
"home": {
"id": "19775492-f1eb-4bc5-9e15-078ebd689c0f",
"name": "Crimson Tide",
"market": "Alabama",
"alias": "BAMA",
"used_timeouts": 0,
"remaining_timeouts": 3,
"points": 41,
"used_challenges": 0,
"remaining_challenges": 1,
"record": {
"wins": 4,
"losses": 1,
"ties": 0
}
},
"away": {
"id": "2eef738d-c637-4b12-b8df-4b79efcce71e",
"name": "Bulldogs",
"market": "Georgia",
"alias": "UGA",
"used_timeouts": 2,
"remaining_timeouts": 1,
"points": 34,
"used_challenges": 0,
"remaining_challenges": 1,
"record": {
"wins": 4,
"losses": 1,
"ties": 0
}
}
},
"time_zones": {
"venue": "US/Central",
"home": "US/Central",
"away": "US/Eastern"
},
"broadcast": {
"network": "ABC"
},
"home": {
"id": "19775492-f1eb-4bc5-9e15-078ebd689c0f",
"name": "Crimson Tide",
"market": "Alabama",
"alias": "BAMA",
"coaches": [
{
"id": "5c1a8421-6061-4372-b4e5-385c2d8b0dcf",
"full_name": "Kalen DeBoer",
"first_name": "Kalen",
"last_name": "DeBoer",
"position": "Head Coach"
}
],
"players": [
{
"id": "bbc93aa0-36e2-11ee-9a89-3b8abc909f3c",
"name": "Noland Asberry",
"jersey": "51",
"last_name": "Asberry",
"first_name": "Noland",
"abbr_name": "N.Asberry",
"weight": 190,
"height": 73,
"position": "LB",
"birth_place": "Mobile, AL, USA",
"status": "dnp",
"eligibility": "JR",
"in_game_status": "active"
},
{
"id": "c08a2280-0780-11ed-85eb-75e0de02a2bc",
"name": "Jay Loper Jr.",
"jersey": "32",
"last_name": "Loper",
"first_name": "Jay",
"abbr_name": "J.Loper",
"weight": 180,
"height": 71,
"position": "WR",
"birth_place": "Daphne, AL, USA",
"status": "dnp",
"eligibility": "JR",
"name_suffix": "Jr.",
"in_game_status": "active"
},
{
"id": "ae2fa980-8e80-11ec-8d02-85ead82574a9",
"name": "Parker Brailsford",
"jersey": "72",
"last_name": "Brailsford",
"first_name": "Parker",
"abbr_name": "P.Brailsford",
"weight": 290,
"height": 74,
"position": "OL",
"birth_place": "Mesa, AZ, USA",
"status": "started",
"eligibility": "SO",
"in_game_status": "active"
},
{
"id": "fd3a8160-9c50-11ed-9b81-9b68194c9dc2",
"name": "James Smith",
"jersey": "23",
"last_name": "Smith",
"first_name": "James",
"abbr_name": "J.Smith",
"weight": 296,
"height": 75,
"position": "DL",
"birth_place": "Montgomery, AL, USA",
"status": "played",
"eligibility": "SO",
"in_game_status": "active"
}
]
}
}
<game xmlns="http://feed.elasticstats.com/schema/football/roster-v7.0.xsd" id="7d6f5a07-70d9-4158-9f68-8a3b60eaecd4" status="closed" scheduled="2024-09-28T23:30:00+00:00" attendance="100077" entry_mode="LDE" clock="00:00" quarter="4" coverage="full" sr_id="sr:match:49406363" game_type="regular" conference_game="true" duration="3:44">
<weather condition="Overcast" humidity="69" temp="73">
<wind speed="4" direction="WNW"/>
</weather>
<summary>
<season id="908fbc20-f5c7-11ee-a306-c311afc28263" year="2024" type="REG" name="REG"/>
<week id="37636880-8503-4ad4-ac8d-4ebacda95edf" sequence="5" title="5"/>
<venue id="3e133141-8ce3-4e3f-a6c3-72d31f9f1401" name="Bryant-Denny Stadium" city="Tuscaloosa" state="AL" country="USA" zip="35401" address="920 Paul West Bryant Drive" capacity="101821" surface="turf" roof_type="outdoor" sr_id="sr:venue:21438">
<location lat="33.2083" lng="-87.5504"/>
</venue>
<home id="19775492-f1eb-4bc5-9e15-078ebd689c0f" name="Crimson Tide" market="Alabama" alias="BAMA" used_timeouts="0" remaining_timeouts="3" points="41" used_challenges="0" remaining_challenges="1">
<record wins="4" losses="1" ties="0"/>
</home>
<away id="2eef738d-c637-4b12-b8df-4b79efcce71e" name="Bulldogs" market="Georgia" alias="UGA" used_timeouts="2" remaining_timeouts="1" points="34" used_challenges="0" remaining_challenges="1">
<record wins="4" losses="1" ties="0"/>
</away>
</summary>
<time_zones venue="US/Central" home="US/Central" away="US/Eastern"/>
<broadcast network="ABC"/>
<home id="19775492-f1eb-4bc5-9e15-078ebd689c0f" name="Crimson Tide" market="Alabama" alias="BAMA">
<coach id="5c1a8421-6061-4372-b4e5-385c2d8b0dcf" full_name="Kalen DeBoer" first_name="Kalen" last_name="DeBoer" position="Head Coach"/>
<player id="bbc93aa0-36e2-11ee-9a89-3b8abc909f3c" name="Noland Asberry" jersey="51" last_name="Asberry" first_name="Noland" abbr_name="N.Asberry" weight="190.0" height="73" position="LB" birth_place="Mobile, AL, USA" status="dnp" eligibility="JR" in_game_status="active">
</player>
<player id="c08a2280-0780-11ed-85eb-75e0de02a2bc" name="Jay Loper Jr." jersey="32" last_name="Loper" first_name="Jay" abbr_name="J.Loper" weight="180.0" height="71" position="WR" birth_place="Daphne, AL, USA" status="dnp" eligibility="JR" name_suffix="Jr." in_game_status="active">
</player>
<player id="ae2fa980-8e80-11ec-8d02-85ead82574a9" name="Parker Brailsford" jersey="72" last_name="Brailsford" first_name="Parker" abbr_name="P.Brailsford" weight="290.0" height="74" position="OL" birth_place="Mesa, AZ, USA" status="started" eligibility="SO" in_game_status="active">
</player>
<player id="fd3a8160-9c50-11ed-9b81-9b68194c9dc2" name="James Smith" jersey="23" last_name="Smith" first_name="James" abbr_name="J.Smith" weight="296.0" height="75" position="DL" birth_place="Montgomery, AL, USA" status="played" eligibility="SO" in_game_status="active">
</player>
When you query the NCAAFB Game Roster endpoint, you’ll get game-specific roster data for both teams, along with rich game context. The response includes metadata like game status, schedule, attendance, duration, weather conditions, venue details, broadcast information, and team records. For each team, you’ll receive coaches and a game-day roster of players. Player objects include identifiers, jersey numbers, position, size, birthplace, eligibility class (e.g., SO, JR), and real-time fields like status
(started
, played
, dnp
) and in_game_status
(active
). Use this feed to track which players are active for a given matchup, display in-game player availability, or power live roster views tied to specific games.
Player Participation and In-Game Player Status
- The
status
refers to the overall game status of a player, indicating whether they were deactivated, did not play (dnp
), played, or started in the game.- The
in_game_status
indicates the real-time condition of a player during the game, such as whether they are active, probable, questionable, doubtful, out, benched, or unknown.
Leveraging In-Game Player StatusesYou can use the Game Roster feed to track in-game player status updates with the
in_game_status
datapoint. This status updates in real-time to show whether players areactive
,probable
,questionable
,doubtful
,benched
,out
, orunknown
during the game.For more on tracking live game and play-by-play data, see the **Live Game Updates **integration scenario.
Player Profile Data
Use the Player Profile endpoint to go beyond roster data, accessing detailed player information including biographical data, salary, draft history, and seasonal statistics.
Player Profile Data Response Snippet
<?xml version="1.0" encoding="UTF-8"?>
<player xmlns="http://feed.elasticstats.com/schema/football/profile-v7.0.xsd" id="63ffbaa0-affb-11ee-8afe-79eb599093df" name="Ryan Williams" jersey="2" last_name="Williams" first_name="Ryan" abbr_name="R.Williams" weight="178.0" height="72" position="WR" birth_place="Mobile, AL, USA" status="ACT" eligibility="SO">
<team id="19775492-f1eb-4bc5-9e15-078ebd689c0f" name="Crimson Tide" market="Alabama" alias="ALA"/>
<season id="908fbc20-f5c7-11ee-a306-c311afc28263" year="2024" type="REG" name="REG">
<team id="19775492-f1eb-4bc5-9e15-078ebd689c0f" name="Crimson Tide" market="Alabama" alias="ALA">
<statistics games_played="13" games_started="13">
<rushing avg_yards="12.0" attempts="4" touchdowns="2" yards="48" longest="29" longest_touchdown="29" redzone_attempts="1" tlost="1" tlost_yards="-5" first_downs="3"/>
<receiving receptions="48" targets="86" yards="865" avg_yards="18.021" longest="84" touchdowns="8" longest_touchdown="84" yards_after_catch="864" redzone_targets="9" air_yards="1" first_downs="25"/>
<punt_returns returns="12" yards="120" avg_yards="10.0" touchdowns="0" longest="38" faircatches="3" longest_touchdown="0"/>
<penalties penalties="2" yards="10" first_downs="0"/>
<kick_returns returns="2" yards="14" avg_yards="7.0" touchdowns="0" longest="14" faircatches="0" longest_touchdown="0"/>
<fumbles fumbles="2" lost_fumbles="1" own_rec="0" 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"/>
</statistics>
</team>
</season>
</player>
{
"id": "63ffbaa0-affb-11ee-8afe-79eb599093df",
"name": "Ryan Williams",
"jersey": "2",
"last_name": "Williams",
"first_name": "Ryan",
"abbr_name": "R.Williams",
"weight": 178,
"height": 72,
"position": "WR",
"birth_place": "Mobile, AL, USA",
"status": "ACT",
"eligibility": "SO",
"team": {
"id": "19775492-f1eb-4bc5-9e15-078ebd689c0f",
"name": "Crimson Tide",
"market": "Alabama",
"alias": "ALA"
},
"seasons": [
{
"id": "908fbc20-f5c7-11ee-a306-c311afc28263",
"year": 2024,
"type": "REG",
"name": "REG",
"teams": [
{
"id": "19775492-f1eb-4bc5-9e15-078ebd689c0f",
"name": "Crimson Tide",
"market": "Alabama",
"alias": "ALA",
"statistics": {
"games_played": 13,
"games_started": 13,
"rushing": {
"avg_yards": 12,
"attempts": 4,
"touchdowns": 2,
"yards": 48,
"longest": 29,
"longest_touchdown": 29,
"redzone_attempts": 1,
"tlost": 1,
"tlost_yards": -5,
"first_downs": 3
},
"receiving": {
"receptions": 48,
"targets": 86,
"yards": 865,
"avg_yards": 18.021,
"longest": 84,
"touchdowns": 8,
"longest_touchdown": 84,
"yards_after_catch": 864,
"redzone_targets": 9,
"air_yards": 1,
"first_downs": 25
},
"punt_returns": {
"returns": 12,
"yards": 120,
"avg_yards": 10,
"touchdowns": 0,
"longest": 38,
"faircatches": 3,
"longest_touchdown": 0
},
"penalties": {
"penalties": 2,
"yards": 10,
"first_downs": 0
},
"kick_returns": {
"returns": 2,
"yards": 14,
"avg_yards": 7,
"touchdowns": 0,
"longest": 14,
"faircatches": 0,
"longest_touchdown": 0
},
"fumbles": {
"fumbles": 2,
"lost_fumbles": 1,
"own_rec": 0,
"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
}
}
}
]
}
],
}
When you query the NCAAFB Player Profile endpoint, you’ll get a full record for an individual player. The response includes identifiers, jersey number, name, position, physical attributes, birthplace, eligibility class (e.g., SO, JR, SR), and current team information. It also provides detailed season-by-season statistics broken down by category—such as rushing, receiving, punt returns, kick returns, fumbles, and penalties—along with games played and games started. Use this endpoint to build player profile pages, track performance trends across seasons, or integrate individual player stats into fantasy, betting, or analytics applications.
Daily Change Log
The Daily Change Log endpoint provides an efficient way to monitor daily updates within the NCAAFB API, including roster adjustments, and corrections to player stats, without exhausting your API call quota.
The table below outlines scenarios and use cases for utilizing the Daily Change Log based on team roster and player updates.
Data | Use Case |
---|---|
Team Rosters | Use this data to keep track of adjustments like player transfers, eligibility changes, or updates to the active roster. |
Game Rosters | Useful for verifying rosters after a game or adjustments to player participation. |
Steps:
-
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.
-
Use IDs to Retrieve Specifics:
- Game Roster Changes: If the ID is found within the "results" node, this can indicate a post-game correction to the game roster. 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 team rosters.
-
Pull Detailed Data: Use the identified IDs to pull detailed information from the relevant feed. For example:
- Team Rosters Feed: If a team ID is mentioned, you can pull this feed to check for any updates to team rosters.
- Game Roster Feed: Use the game ID to retrieve updated game rosters and to see what specific data was altered.
-
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.
Updated 8 days ago