Integration GuidesReference Docs
Coverage MatrixDocumentationChange LogLog InContact Us
Integration Guides

Tracking Standings and Rankings

The Postgame Standings feed carries the conference tables: conference, division, and subdivision ranks, records, win percentage, points for and against, streaks, strength of schedule and victory, and record splits by setting and by opponent level, updating after games conclude. The Rankings (By Week) and Rankings (Current Week) feeds carry the top 25 polls: the Associated Press, Amway Coaches, College Football Playoff, FCS Media, and AFCA FCS Coaches polls.

This scenario is commonly used to:

  • Render conference standings tables
  • Publish the weekly top 25 for each poll, with movement from the previous week
  • Show conference, home, and road record splits
  • Feed tiebreaker and strength-of-schedule displays
ℹ️

Standings versus rankings

In college football, standings and rankings (polls) serve different purposes. Standings reflect a team's performance within a conference, based on its win-loss record and conference record; they determine eligibility for conference championships and bowl games. Rankings are subjective assessments of teams by sports writers, coaches, and analysts; the key polls are the AP Poll, the Coaches Poll, and the College Football Playoff (CFP) Rankings, and they weigh factors like win-loss record, strength of schedule, performance, and voter opinion. Rankings influence postseason matchups and national championship contenders.



Relevant Feeds

FeedUse
Postgame StandingsThe tables themselves, by {season_year}/{season_type}
Rankings (By Week)The top 25 for a given poll, year, and week
Rankings (Current Week)The current top 25 for a given poll
SeasonsSeason catalog; confirm a season is on file before requesting its tables


Reading the Table

Standings nest divisions[] > conferences[] > teams[]: the top level is the NCAA division (I-A, alias FBS, in the sample; the I-AA division, alias FCS, holds conferences such as the Coastal Athletic Association in the same way), then each conference (Big Ten, alias BIG-TEN), then its teams. Every team that appeared on a Division I schedule is listed under its own division, so Division II, Division III, NAIA, and USCAA programs appear alongside FBS and FCS; rank is populated for FBS and FCS teams and is usually absent below Division I, so filter to those two divisions before sorting by rank. The season block names the year and type the tables belong to (the 2023 regular season below). The first Big Ten rows in the response:

GET https://api.sportradar.com/ncaafb/trial/v7/en/seasons/2023/REG/standings/season.json
x-api-key: YOUR_API_KEY
{
  "season": {
    "id": "f58c6dbf-9dfe-487e-8b0b-af66af887206",
    "year": 2023,
    "type": "REG",
    "name": "REG"
  },
  "divisions": [
    {
      "id": "43d3cede-6b8f-4158-bc7f-c3c7365e5b32",
      "name": "I-A",
      "alias": "FBS",
      "conferences": [
        {
          "id": "cddff7c9-65e1-4fe0-b052-87fd4213fbfe",
          "name": "Big Ten",
          "alias": "BIG-TEN",
          "teams": [
            {
              "id": "1cdf66a2-f157-4b4f-ad37-bd31e268f0ae",
              "name": "Spartans",
              "market": "Michigan State",
              "alias": "MSU",
              "rank": {
                "conference": 13,
                "division": 98,
                "subdivision": 6
              },
              "streak": {
                "type": "loss",
                "length": 1,
                "desc": "Lost 1"
              },
              "strength_of_schedule": {
                "sos": 0.652,
                "wins": 103,
                "total": 158
              },
              "strength_of_victory": {
                "sov": 0.449,
                "wins": 22,
                "total": 49
              },
              "wins": 4,
              "losses": 8,
              "ties": 0,
              "win_pct": 0.333,
              "points_for": 191,
              "points_against": 340,
              "records": [
                {
                  "category": "d2",
                  "wins": 0,
                  "losses": 0,
                  "ties": 0,
                  "win_pct": 0,
                  "points_for": 0,
                  "points_against": 0
                },
                {
                  "category": "division",
                  "wins": 3,
                  "losses": 8,
                  "ties": 0,
                  "win_pct": 0.273,
                  "points_for": 146,
                  "points_against": 326
                },
                {
                  "category": "road",
                  "wins": 1,
                  "losses": 4,
                  "ties": 0,
                  "win_pct": 0.2,
                  "points_for": 79,
                  "points_against": 139
                },
                {
                  "category": "home",
                  "wins": 3,
                  "losses": 4,
                  "ties": 0,
                  "win_pct": 0.429,
                  "points_for": 112,
                  "points_against": 201
                },
                {
                  "category": "fbs",
                  "wins": 3,
                  "losses": 8,
                  "ties": 0,
                  "win_pct": 0.273,
                  "points_for": 146,
                  "points_against": 326
                },
                {
                  "category": "naia",
                  "wins": 0,
                  "losses": 0,
                  "ties": 0,
                  "win_pct": 0,
                  "points_for": 0,
                  "points_against": 0
                },
                {
                  "category": "fcs",
                  "wins": 1,
                  "losses": 0,
                  "ties": 0,
                  "win_pct": 1,
                  "points_for": 45,
                  "points_against": 14
                },
                {
                  "category": "conference",
                  "wins": 2,
                  "losses": 7,
                  "ties": 0,
                  "win_pct": 0.222,
                  "points_for": 108,
                  "points_against": 278
                },
                {
                  "category": "d3",
                  "wins": 0,
                  "losses": 0,
                  "ties": 0,
                  "win_pct": 0,
                  "points_for": 0,
                  "points_against": 0
                },
                {
                  "category": "uscaa",
                  "wins": 0,
                  "losses": 0,
                  "ties": 0,
                  "win_pct": 0,
                  "points_for": 0,
                  "points_against": 0
                }
              ]
            },
            {
              "id": "2d824a5f-e706-45b8-9d20-434ed5dd5c2f",
              "name": "Fighting Illini",
              "market": "Illinois",
              "alias": "ILL",
              "rank": {
                "conference": 11,
                "division": 87,
                "subdivision": 6
              },
              "streak": {
                "type": "loss",
                "length": 2,
                "desc": "Lost 2"
              },
              "strength_of_schedule": {
                "sos": 0.552,
                "wins": 85,
                "total": 154
              },
              "strength_of_victory": {
                "sov": 0.5,
                "wins": 32,
                "total": 64
              },
              "wins": 5,
              "losses": 7,
              "ties": 0,
              "win_pct": 0.417,
              "points_for": 294,
              "points_against": 353
            },
            {
              "id": "485dd62f-108c-4e32-b171-27f5d493552d",
              "name": "Boilermakers",
              "market": "Purdue",
              "alias": "PUR",
              "rank": {
                "conference": 12,
                "division": 81,
                "subdivision": 7
              },
              "streak": {
                "type": "win",
                "length": 1,
                "desc": "Won 1"
              },
              "strength_of_schedule": {
                "sos": 0.59,
                "wins": 92,
                "total": 156
              },
              "strength_of_victory": {
                "sov": 0.42,
                "wins": 21,
                "total": 50
              },
              "wins": 4,
              "losses": 8,
              "ties": 0,
              "win_pct": 0.333,
              "points_for": 287,
              "points_against": 365
            }
          ]
        }
      ]
    }
  ]
}

The response is shown trimmed to three Big Ten rows, with the ten record splits kept on the first row. The rows render straight into a conference table (the conference record from the conference split in records[], plus overall wins, losses, and win percentage); club marks are placeholders for your own or licensed assets:

BIG TEN2025 REG · Postgame Standings
TEAMCONFWLPCT
INDIndiana Hoosiers9-01601.000
OREOregon Ducks8-1132.867
OSUOhio State Buckeyes9-0122.857
ILLIllinois Fighting Illini5-494.692
WASWashington Huskies5-494.692
Conference records ride the records array; the table shows the top five by win percentage.


Row Anatomy

  • id, name, market, and alias identify the team; key rows on id
  • rank carries the team's conference and subdivision positions; a conference that plays in two divisions is ranked as one list, so rank.conference runs 1 to 14 across the Sun Belt rather than restarting for each division
  • wins / losses / ties are the record, with win_pct calculated from them; the essential input for determining standings
  • streak carries the kind, the length, and a display string (Lost 1): the team's current run and a read on recent form
  • points_for / points_against are season totals, reflecting offensive and defensive effectiveness and useful for tiebreakers and assessing overall strength
  • strength_of_schedule and strength_of_victory are objects carrying the computed value (sos, sov) plus the wins and total games behind it; a higher SOS indicates tougher opponents, a higher SOV reflects the strength of the teams defeated, and both add context beyond the win-loss record
  • records[] is a list of split records by category, each with its own wins, losses, ties, win_pct, and points for and against, showing how effective the team is in each setting:
    • division: games against teams in the same division, the basis for divisional standings and playoff implications
    • conference: games against every team in the conference, the input to conference rankings
    • home and road: results at home (home-field advantage) and away from it
    • fbs, fcs, naia, d2, d3, and uscaa: results against each level of competition, so a schedule against FBS opponents reads differently from one padded with NAIA games; a split stays at zero when no such game was played


Rankings Anatomy

Both rankings feeds return one poll per request, addressed by the poll alias. Five polls are available:

  • AP25: The Associated Press

  • EU25: Amway Coaches

  • CFP25: College Football Playoff

  • FCS25: FCS Media

  • FCSC25: AFCA FCS Coaches

  • poll carries the poll's id, alias, and name; season, week, and effective_time place the edition in the calendar (week 5 of 2023 in the sample)

  • rankings[] lists the top 25, each with the team's id, name, market (typically the school or the team's location), and rank, its position relative to other teams in the nation

  • wins / losses / ties are the team's current record, crucial to its rank

  • prev_rank is the team's rank in the previous week, showing how its position has changed; it is present only for teams ranked the week before

  • points rank the teams, reflecting the collective votes of the poll's voters; fp_votes counts the voters who placed the team first, offering additional context on how strongly the team is viewed, and appears only for teams that received a first-place vote

  • candidates[] lists teams that received votes but did not make the top 25, each with its record and the number of votes received (and a prev_rank when the team dropped out of the top 25); these are the teams on the cusp of being ranked

  • A poll mixes objective performance (wins and losses) with subjective assessment (points and first-place votes) and shifts weekly; rankings play a significant role in postseason opportunities and the national championship



Integration Steps


1. Confirm the season

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.

The Seasons feed is the catalog, and the standings path takes the same {season_year}/{season_type} pair; every entry is REG. The response below is trimmed to the first and the two most recent entries:

GET https://api.sportradar.com/ncaafb/trial/v7/en/league/seasons.json
x-api-key: YOUR_API_KEY
{
    "league": {
        "id": "26c1246a-2fc3-4b7e-8999-1685d3ab4676",
        "name": "NCAA Football",
        "alias": "NCAAFB"
    },
    "seasons": [
        {
            "id": "7010df8f-1e08-4021-91b8-ed09676c33de",
            "year": 2013,
            "start_date": "2013-08-29",
            "end_date": "2014-01-14",
            "status": "closed",
            "type": {
                "code": "REG"
            }
        },
        {
            "id": "754e4990-efc7-11ef-bb2a-5d2d22b9215e",
            "year": 2025,
            "start_date": "2025-08-23",
            "end_date": "2026-01-26",
            "status": "closed",
            "type": {
                "code": "REG"
            }
        },
        {
            "id": "fc822580-0db7-11f1-baa3-21a52b3e3c8d",
            "year": 2026,
            "start_date": "2026-08-29",
            "end_date": "2027-02-01",
            "status": "scheduled",
            "type": {
                "code": "REG"
            }
        }
    ]
}

2. Pull the standings postgame

Standings are updated on a two-minute timer after each game is moved to complete, so pull once games reach complete rather than on a fast timer: 2 to 5 minutes after a game moves to complete for the quickest updates, and every hour or less otherwise, depending on your use case. The request and response shape are shown under Reading the Table.


3. Pull a week's poll

Rankings (By Week) is addressed by {poll_type}/{season_year}/{week_number} and returns that edition of the poll. The Associated Press poll for week 5 of the 2023 season, shown trimmed to three ranked rows (1, 6, and 23) and two vote-getters so that every field behavior appears:

GET https://api.sportradar.com/ncaafb/trial/v7/en/polls/AP25/2023/5/rankings.json
x-api-key: YOUR_API_KEY
{
  "poll": {
    "id": "aef92d2e-6f2d-462a-972b-f38859ddb96f",
    "alias": "AP25",
    "name": "Associated Press Top 25"
  },
  "season": 2023,
  "week": 5,
  "effective_time": "2023-09-24T18:11:00+00:00",
  "rankings": [
    {
      "id": "2eef738d-c637-4b12-b8df-4b79efcce71e",
      "name": "Bulldogs",
      "market": "Georgia",
      "rank": 1,
      "wins": 4,
      "losses": 0,
      "ties": 0,
      "prev_rank": 1,
      "points": 1562,
      "fp_votes": 55
    },
    {
      "id": "eeb3ce19-6ddd-4c91-afab-811c6cc81974",
      "name": "Nittany Lions",
      "market": "Penn State",
      "rank": 6,
      "wins": 4,
      "losses": 0,
      "ties": 0,
      "prev_rank": 7,
      "points": 1244
    },
    {
      "id": "772536c7-c3e8-40d1-ac6e-232d719dc052",
      "name": "Tigers",
      "market": "Missouri",
      "rank": 23,
      "wins": 4,
      "losses": 0,
      "ties": 0,
      "points": 197
    }
  ],
  "candidates": [
    {
      "id": "0dd26ea7-79fb-4ea8-bf48-7c31108e14a3",
      "name": "Wildcats",
      "market": "Kansas State",
      "wins": 3,
      "losses": 1,
      "ties": 0,
      "votes": 57
    },
    {
      "id": "a18d7cf8-1263-45f2-a938-04032d2f7cf5",
      "name": "Buffaloes",
      "market": "Colorado",
      "wins": 3,
      "losses": 1,
      "ties": 0,
      "prev_rank": 19,
      "votes": 32
    }
  ]
}

4. Track the current poll

Rankings (Current Week) drops the week from the path and returns the latest edition in the same shape. Rankings are updated within 15 minutes after their release to the public: the AP and Coaches polls typically on Sundays, the two FCS polls on Mondays, and the CFP rankings, which begin after week 10, on Tuesdays. Pull every hour or less on those days during the season, depending on your use case:

GET https://api.sportradar.com/ncaafb/trial/v7/en/polls/AP25/2023/rankings.json
x-api-key: YOUR_API_KEY

5. Catch off-cycle corrections with the Daily Change Log

Standings and rankings typically remain stable once games conclude and results are recorded, but rare changes can occur: an adjustment following a review of play outcomes, a correction of a data error, or a late-reported result that affects standings. When a game ID appears in the results node of the Daily Change Log, some data associated with that game has changed (not necessarily the final score), so refetch the Postgame Standings for that game's season and the current Rankings, compare against what you have stored, and update your records accordingly. Polling cadence, the league-day window, and change-log samples are on Monitoring Data Changes.



Best Practices

  • Sort standings rows by the rank values rather than by list position; the rows above arrive as conference ranks 13, 11, and 12, and rank within the FBS and FCS divisions, where every row carries one
  • Key standings and rankings rows by the team id so a poll position joins to the team's record, and treat name, market, and alias as display data
  • Store rankings per poll alias and week, and keep effective_time so a re-pulled poll replaces the right edition
  • Refresh standings after each game day completes, rankings on release days, and both again whenever the Daily Change Log lists a game from the season you display
  • Cache values and pull cadence for every feed on this page are on Update Frequencies

Did this page help you?