Pulling Schedules
Schedule feeds are the backbone of an NCAA Football integration: they carry every game's ID, participants, venue, broadcast, weather, status, and (once games finish) quarter-by-quarter scoring. Most other scenarios start here; to retrieve live game data, for instance, you first pull a schedule feed to obtain the game IDs for the games you are targeting. This scenario confirms the season, loads its schedule, keeps the near-term window fresh, and reconciles schedule changes. Responses are shown trimmed to representative slices.
This scenario is commonly used to:
- Populate season and week schedule views
- Build team-specific schedules by filtering on team ID
- Discover game IDs for boxscore, play-by-play, and statistics drilldowns
- Show final scores and quarter splits without polling game feeds
- Detect postponements, reschedules, and deleted games
- Lay out postseason matchups from the Tournament Schedule
Relevant Feeds
| Feed | Scope | Use |
|---|---|---|
| Season Schedule | {season_year}/{season_type} | Complete schedule for a given season (past, current, or upcoming), including venue and broadcast info and scoring results by quarter |
| Weekly Schedule | season + {week_number} | One week of a season, including venue, weather conditions, broadcast info, and scoring results by quarter, plus the deleted_games list |
| Current Season Schedule | none | The current season without knowing the year |
| Current Week Schedule | none | The current week without tracking week numbers |
| Tournament Schedule | {tournament_id} | Date, time, location, and other event details for every matchup in a given tournament |
| Seasons | none | Season catalog: the prerequisite for every season-scoped feed |
High-Level Workflow
The strip below is the same season as a shape: how many games each week holds, how the late weeks turn from regular games into championships, bowls, and playoff rounds, and which single segment the Current Week Schedule serves at any moment.
Integration Steps
1. Confirm the season
Every season-scoped schedule feed takes a {season_year}/{season_type} pair, so start from the Seasons catalog to confirm which seasons and season types are on file:
GET https://api.sportradar.com/ncaafb/trial/v7/en/league/seasons.json
x-api-key: YOUR_API_KEYTo 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.
Schedule ReleasesSchedules in the NCAAFB API are typically released by May each year.
2. Load the season
Pull the Season Schedule for the season and type you cover; it returns past, current, and upcoming seasons alike. The response nests weeks[], each with games[], and every game carries venue and broadcast info and scoring results by quarter. Store the game IDs, team IDs, and scheduled times:
GET https://api.sportradar.com/ncaafb/trial/v7/en/games/2025/REG/schedule.json
x-api-key: YOUR_API_KEY{
"id": "754e4990-efc7-11ef-bb2a-5d2d22b9215e",
"year": 2025,
"type": "REG",
"name": "REG",
"weeks": [
{
"id": "c6cd2df1-2ab8-4b0d-992b-1cfacdd81dfd",
"sequence": 1,
"title": "1",
"games": [
{
"id": "ff0532c8-cc0d-473a-b47f-421eccf4d427",
"status": "closed",
"scheduled": "2025-08-23T16:00:00+00:00",
"attendance": 47221,
"entry_mode": "LDE",
"coverage": "full",
"sr_id": "sr:match:59689321",
"neutral_site": true,
"game_type": "regular",
"conference_game": true,
"duration": "3:22",
"expected_latency": 25,
"venue": {
"id": "c98ace28-f447-46f4-a0d1-af3b94e00cc3",
"name": "Aviva Stadium",
"city": "Dublin",
"country": "IRL",
"address": "62 Lansdowne Road",
"capacity": 49000,
"surface": "turf",
"roof_type": "outdoor"
},
"home": {
"id": "0dd26ea7-79fb-4ea8-bf48-7c31108e14a3",
"name": "Kansas State Wildcats",
"alias": "KSU",
"game_number": 1
},
"away": {
"id": "d335c726-44aa-4b69-8271-59d42d691cba",
"name": "Iowa State Cyclones",
"alias": "ISU",
"game_number": 1
},
"broadcast": {
"network": "ESPN",
"satellite": "206"
},
"time_zones": {
"venue": "Europe/London",
"home": "US/Central",
"away": "US/Central"
},
"weather": {
"condition": "Partly cloudy",
"humidity": 88,
"temp": 67,
"wind": {
"speed": 2,
"direction": "ESE"
}
},
"scoring": {
"home_points": 21,
"away_points": 24
}
}
]
}
]
}<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" charset="UTF-8" href="/xslt/football/schedule-v7.0.xsl"?>
<!-- Generation started @ 2026-09-01 09:00:01 +0000 -->
<season xmlns="http://feed.elasticstats.com/schema/football/schedule-v7.0.xsd" id="754e4990-efc7-11ef-bb2a-5d2d22b9215e" year="2025" type="REG" name="REG">
<week id="c6cd2df1-2ab8-4b0d-992b-1cfacdd81dfd" sequence="1" title="1">
<game id="ff0532c8-cc0d-473a-b47f-421eccf4d427" status="closed" scheduled="2025-08-23T16:00:00+00:00" attendance="47221" entry_mode="LDE" coverage="full" sr_id="sr:match:59689321" neutral_site="true" game_type="regular" conference_game="true" duration="3:22" expected_latency="25">
<venue id="c98ace28-f447-46f4-a0d1-af3b94e00cc3" name="Aviva Stadium" city="Dublin" country="IRL" address="62 Lansdowne Road" capacity="49000" surface="turf" roof_type="outdoor">
<location lat="53.3353" lng="-6.2284"/>
</venue>
<home id="0dd26ea7-79fb-4ea8-bf48-7c31108e14a3" name="Kansas State Wildcats" alias="KSU" game_number="1"/>
<away id="d335c726-44aa-4b69-8271-59d42d691cba" name="Iowa State Cyclones" alias="ISU" game_number="1"/>
<broadcast network="ESPN" satellite="206"/>
<time_zones venue="Europe/London" home="US/Central" away="US/Central"/>
<weather condition="Partly cloudy" humidity="88" temp="67">
<wind speed="2" direction="ESE"/>
</weather>
<scoring home_points="21" away_points="24">
<quarter id="a439d3ee-21ac-4b5b-aef2-59ab88e11b94" number="1" sequence="1" home_points="0" away_points="7"/>
<quarter id="0d94bab8-f0f9-4bd8-b0b4-f946f81d5e9a" number="2" sequence="2" home_points="7" away_points="0"/>
<quarter id="7bc75bea-fccf-4b1f-99c0-f93c3b5dae0e" number="3" sequence="3" home_points="0" away_points="7"/>
<quarter id="f994009f-fb21-4fd7-a0ae-1781a0d9218e" number="4" sequence="4" home_points="14" away_points="10"/>
</scoring>
</game>
<!-- ... omitted for brevity -->
<!-- ... omitted for brevity -->
</week>
<!-- ... omitted for brevity -->
</season>
<!-- Generation ended @ 2026-09-01 09:00:07 +0000 -->The response is shown trimmed to the opening game of Week 1; the JSON slice omits the per-quarter scoring.periods entries that the XML tab shows as quarter elements.
You can filter season schedule data by team ID to generate team-specific schedules, such as the example below for the Alabama Crimson Tide. Club marks are placeholders for your own or licensed assets:
Accessing Headshots and Team LogosTo access team logos and player headshots, use the Images API.
When you do not need to know the season year, the Current Season Schedule returns the current season in the same shape:
GET https://api.sportradar.com/ncaafb/trial/v7/en/games/current_season/schedule.json
x-api-key: YOUR_API_KEY3. Refresh the near-term window
To pull schedule data one week at a time, and reduce payload size compared to the entire season, use the Weekly Schedule. It returns past, current, and upcoming weeks for any available season, including venue, weather conditions, broadcast info, and scoring results by quarter. {week_number} is a zero-padded string (01 through 21):
GET https://api.sportradar.com/ncaafb/trial/v7/en/games/2025/REG/02/schedule.json
x-api-key: YOUR_API_KEY{
"id": "754e4990-efc7-11ef-bb2a-5d2d22b9215e",
"year": 2025,
"type": "REG",
"name": "REG",
"week": {
"id": "73eacecf-7726-4de3-9419-3b821e998a83",
"sequence": 2,
"title": "2",
"games": [
{
"id": "fefcd061-2c97-4356-bf87-d11b398148fc",
"status": "closed",
"scheduled": "2025-09-05T23:00:00+00:00",
"attendance": 48717,
"entry_mode": "LDE",
"coverage": "full",
"sr_id": "sr:match:59838584",
"game_type": "regular",
"conference_game": false,
"duration": "3:33",
"expected_latency": 25,
"venue": {
"id": "e0947a41-9e85-488e-bcb3-6682dd56283e",
"name": "L&N Federal Credit Union Stadium",
"city": "Louisville",
"state": "KY",
"country": "USA",
"zip": "40209",
"address": "2800 S Floyd Street",
"capacity": 61000,
"surface": "artificial",
"roof_type": "outdoor"
},
"home": {
"id": "1e8edb90-ea5e-4663-9a65-a30e51583711",
"name": "Louisville Cardinals",
"alias": "LOU",
"game_number": 2
},
"away": {
"id": "b59ad9ae-b8ec-4f8e-9bd2-ec5b4af41e57",
"name": "James Madison Dukes",
"alias": "JMU",
"game_number": 2
},
"broadcast": {
"network": "ESPN2",
"satellite": "209"
},
"time_zones": {
"venue": "US/Eastern",
"home": "US/Eastern",
"away": "US/Eastern"
},
"weather": {
"condition": "Overcast ",
"humidity": 54,
"temp": 80,
"wind": {
"speed": 9,
"direction": "NW"
}
},
"scoring": {
"home_points": 28,
"away_points": 14
}
}
]
}
}<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" charset="UTF-8" href="/xslt/football/schedule-v7.0.xsl"?>
<!-- Generation started @ 2026-09-01 09:10:09 +0000 -->
<season xmlns="http://feed.elasticstats.com/schema/football/schedule-v7.0.xsd" id="754e4990-efc7-11ef-bb2a-5d2d22b9215e" year="2025" type="REG" name="REG">
<week id="73eacecf-7726-4de3-9419-3b821e998a83" sequence="2" title="2">
<game id="fefcd061-2c97-4356-bf87-d11b398148fc" status="closed" scheduled="2025-09-05T23:00:00+00:00" attendance="48717" entry_mode="LDE" coverage="full" sr_id="sr:match:59838584" game_type="regular" conference_game="false" duration="3:33" expected_latency="25">
<venue id="e0947a41-9e85-488e-bcb3-6682dd56283e" name="L&N Federal Credit Union Stadium" city="Louisville" state="KY" country="USA" zip="40209" address="2800 S Floyd Street" capacity="61000" surface="artificial" roof_type="outdoor">
<location lat="38.2064" lng="-85.7583"/>
</venue>
<home id="1e8edb90-ea5e-4663-9a65-a30e51583711" name="Louisville Cardinals" alias="LOU" game_number="2"/>
<away id="b59ad9ae-b8ec-4f8e-9bd2-ec5b4af41e57" name="James Madison Dukes" alias="JMU" game_number="2"/>
<broadcast network="ESPN2" satellite="209"/>
<time_zones venue="US/Eastern" home="US/Eastern" away="US/Eastern"/>
<weather condition="Overcast " humidity="54" temp="80">
<wind speed="9" direction="NW"/>
</weather>
<scoring home_points="28" away_points="14">
<quarter id="07fb0d07-6e5b-4bc8-b8de-ebe1f543f3ad" number="1" sequence="1" home_points="0" away_points="7"/>
<quarter id="59fadea3-a174-4e83-9fe1-fe8d08040fea" number="2" sequence="2" home_points="6" away_points="0"/>
<quarter id="e2d8cd8c-685a-4583-b47a-b00720d634da" number="3" sequence="3" home_points="8" away_points="7"/>
<quarter id="67a69dd7-65a0-4f5a-b1f8-7f2639cf8977" number="4" sequence="4" home_points="14" away_points="0"/>
</scoring>
</game>
<!-- ... omitted for brevity -->
<!-- ... omitted for brevity -->
</week>
</season>
<!-- Generation ended @ 2026-09-01 09:10:09 +0000 -->The response is shown trimmed to one game of Week 2.
During the season, the Current Week Schedule keeps the active window fresh without tracking week numbers; it returns the week in play in the same week shape:
GET https://api.sportradar.com/ncaafb/trial/v7/en/games/current_week/schedule.json
x-api-key: YOUR_API_KEY4. Read scores from the schedule
Game and period scores populate in the schedule feeds when a game reaches complete; quarter splits ride scoring.periods (the quarter elements under scoring in XML). For a scores view, the schedule alone is enough; reserve the game feeds on the Tracking Live Games page for live windows and drive-level detail.
5. Pull the Tournament Schedule
The Tournament Schedule provides the date, time, location, and other event details for every matchup taking place in a given tournament, keyed by the tournament ID from the Tournament List:
GET https://api.sportradar.com/ncaafb/trial/v7/en/tournaments/77b49a1b-e3a0-4833-9ab0-799367dd97b1/schedule.json
x-api-key: YOUR_API_KEYFor tracking tournaments and building brackets, see the Tracking Playoffs integration scenario.
6. Reconcile deletions and reschedules
When a game is removed from coverage (for example, a duplicate or erroneously created game), it stays visible so that you can reconcile it:
- The game remains available in game-level feeds (Boxscore, Play-by-Play, Roster, Statistics) with a
deleted: trueflag. - Season and Weekly Schedule responses carry a top-level
deleted_gamesarray listing the IDs of games deleted from that schedule. - The Daily Change Log adds a
deleted_gamesnode on days when a deletion occurs.
To keep your system consistent:
- Store deleted game IDs so downstream processing (statistics, standings, displays) suppresses them rather than treating a previously ingested game as still active.
- Reconcile the
deleted_gamesarray against your stored games on each schedule pull. - A
postponedgame keeps its ID and status; its makeup game arrives under a new game ID, so match the makeup by teams and week and keep re-pulling the affected week until it appears (the status flows are on the Game Status Workflow page).
7. Watch the Daily Change Log for schedule changes
The Daily Change Log lists IDs and timestamps for schedules, teams, players, results, and game stats that were modified on a given date, so you can pick up schedule changes without re-pulling every week. For this scenario, act on the game entries and the deleted_games node: refetch the Weekly Schedule for each week that carries a changed game, and apply the deletion handling from step 6. The feed's mechanics, entity types, and polling cadence are on the Monitoring Data Changes page.
Common Use Cases
- Season view: Season Schedule once, refreshed on the Update Frequencies cadence
- Team schedule page: the Season Schedule filtered by team ID, as in the Alabama slate above
- This week's slate: Current Week Schedule on a timer
- Scores ticker: Current Week Schedule plus status-driven game-feed polling during game windows, as described on the Tracking Live Games page
- Postseason bracket: Tournament Schedule with the Tracking Playoffs page
Best Practices
- Key stored games by ID and update rows in place; never key on kickoff time or matchup
- Reconcile
deleted_gameson every Season or Weekly Schedule pull, and suppress deleted IDs downstream - Treat
time-tbdkickoff times as provisional - Let the Daily Change Log drive off-cycle refreshes so you capture schedule changes without making unnecessary calls; see Monitoring Data Changes
- Depending on the endpoint, schedule data may update hourly or in real time; the Update Frequencies page carries the recommended pull interval for each schedule feed, so align your polling with it
Updated 8 days ago
