College rankings and polls API

The AP Top 25, coaches polls and (college football) the College Football Playoff rankings: each ranked team with rank, previous rank, trend, record, points and first-place votes, plus others receiving votes and teams that dropped out. Latest release by default, or a past week. Data is aggregated from public sources and is typically 20-30 seconds behind live play (about 1 second after our source). There is no SLA.

Paths and parameters

GET/api/v1/sports/{sport}/leagues/{league}/rankings

Get college polls and rankings. AP Top 25, coaches polls and, for college football, the College Football Playoff rankings, FCS and Division II/III polls. Leagues: football/college-football and basketball/mens-college-basketball. Without `week`, the latest release of each poll. Each poll lists the ranked teams with record, points and first-place votes, plus others receiving votes and teams that dropped out.

  • sport (path, required): Sport slug: football, basketball, baseball, hockey, soccer.
  • league (path, required): League slug, e.g. nfl, college-football, nba, mens-college-basketball, mlb, nhl, eng.1, usa.1.
  • poll (query): One poll: ap, coaches, cfp, fcs, afca, or a poll id. Default: every poll.
  • week (query): A past week of the season (1-25). Default: the latest release.
  • season (query): Season year for `week` (default: current). College basketball 2026-27 = 2027.
  • seasonType (query): With `week`: 1 preseason, 2 regular season (default), 3 postseason.

Live example

Request

curl -H "Authorization: Bearer $RSA_API_KEY" \
  "https://www.realtimesportsapi.com/api/v1/sports/football/leagues/college-football/rankings?poll=ap"

Response captured from live data at 2026-11-07 13:48 UTC (refreshed every few minutes). Long arrays are trimmed; meta.rateLimit values are illustrative for a Free key. Trimmed to the top 3 of 25 ranked teams, 1 of 10 others receiving votes and 1 of 4 dropped out.

Response

{
  "success": true,
  "data": [
    {
      "id": "1",
      "name": "AP Top 25",
      "shortName": "AP Poll",
      "type": "ap",
      "week": {
        "number": 10,
        "label": "Week 10",
        "seasonType": 2
      },
      "season": 2026,
      "date": "2026-11-01T07:00Z",
      "lastUpdated": "2026-11-01T22:08Z",
      "ranks": [
        {
          "rank": 1,
          "previousRank": 1,
          "trend": "-",
          "points": 1740,
          "firstPlaceVotes": 62,
          "record": "8-0",
          "team": {
            "id": "2390",
            "name": "Hurricanes",
            "location": "Miami",
            "displayName": "Miami Hurricanes",
            "abbreviation": "MIA",
            "conference": "ACC",
            "logo": "https://www.realtimesportsapi.com/api/images/proxy?id=GgcVSgNPTUMITUgaFFQVVVQXBVwOHV5LRQBZD1lbBllDXR0CWxFaV1xZTB9aXQpYQVRe"
          }
        },
        {
          "rank": 2,
          "previousRank": 3,
          "trend": "+1",
          "points": 1648,
          "firstPlaceVotes": 7,
          "record": "7-1",
          "team": {
            "id": "61",
            "name": "Bulldogs",
            "location": "Georgia",
            "displayName": "Georgia Bulldogs",
            "abbreviation": "UGA",
            "conference": "SEC",
            "logo": "https://www.realtimesportsapi.com/api/images/proxy?id=GgcVSgNPTUMITUgaFFQVVVQXBVwOHV5LRQBZD1lbBllDXR0CWxFaV1xZTBtYSkoYVg"
          }
        },
        {
          "rank": 3,
          "previousRank": 6,
          "trend": "+3",
          "points": 1540,
          "firstPlaceVotes": 1,
          "record": "8-0",
          "team": {
            "id": "254",
            "name": "Utes",
            "location": "Utah",
            "displayName": "Utah Utes",
            "abbreviation": "UTAH",
            "conference": "Big 12",
            "logo": "https://www.realtimesportsapi.com/api/images/proxy?id=GgcVSgNPTUMITUgaFFQVVVQXBVwOHV5LRQBZD1lbBllDXR0CWxFaV1xZTB9cUBQGX10"
          }
        }
      ],
      "othersReceivingVotes": [
        {
          "points": 79,
          "record": "0-0",
          "team": {
            "id": "77",
            "name": "Wildcats",
            "location": "Northwestern",
            "displayName": "Northwestern Wildcats",
            "abbreviation": "NU",
            "conference": "Big Ten",
            "logo": "https://www.realtimesportsapi.com/api/images/proxy?id=GgcVSgNPTUMITUgaFFQVVVQXBVwOHV5LRQBZD1lbBllDXR0CWxFaV1xZTBpeSkoYVg"
          }
        }
      ],
      "droppedOut": [
        {
          "previousRank": 19,
          "record": "0-0",
          "team": {
            "id": "2567",
            "name": "Mustangs",
            "location": "SMU",
            "displayName": "SMU Mustangs",
            "abbreviation": "SMU",
            "conference": "ACC",
            "logo": "https://www.realtimesportsapi.com/api/images/proxy?id=GgcVSgNPTUMITUgaFFQVVVQXBVwOHV5LRQBZD1lbBllDXR0CWxFaV1xZTB9cUg1YQVRe"
          }
        }
      ]
    }
  ],
  "meta": {
    "count": 1,
    "note": "Latest release of each poll.",
    "rateLimit": {
      "limit": 125,
      "remaining": 124,
      "reset": 1796083200000
    }
  }
}

Fields

FieldTypeNotes
idstring
namestring
shortNamestring
typestringap, usa (coaches), cfp, fcs, afca (Division II / III)
weekobject
seasonintegerCollege basketball seasons are named by the year they end (2026-27 = 2027).
datestring
lastUpdatedstring
ranksRankEntry[]
othersReceivingVotesobject[]
droppedOutobject[]

League support

Checked against live data on 2026-10-04: 2 available, 0 limited, 0 seasonal or not verified, 27 not available.

Not available
Not available
Not available
Not available
Not available
Not available
Not available
Not available
Not available
Not available
Not available
Not available
Not available
Not available
Not available
Not available
Not available
Not available
Not available
Not available

Code samples

curl

curl -H "Authorization: Bearer $RSA_API_KEY" \
  "https://www.realtimesportsapi.com/api/v1/sports/football/leagues/college-football/rankings?poll=ap"

JavaScript (fetch)

const res = await fetch("https://www.realtimesportsapi.com/api/v1/sports/football/leagues/college-football/rankings?poll=ap", {
  headers: { Authorization: `Bearer ${process.env.RSA_API_KEY}` }
});
const { success, data, meta } = await res.json();
console.log(data, meta.rateLimit);

Python (requests)

import os, requests

res = requests.get(
    "https://www.realtimesportsapi.com/api/v1/sports/football/leagues/college-football/rankings?poll=ap",
    headers={"Authorization": f"Bearer {os.environ['RSA_API_KEY']}"},
    timeout=10,
)
body = res.json()
print(body["data"])

Each request above is 1 call. Free covers 125 calls a month after a 1,000-call first month, at 1 request/second. Starter is $29/month for 10,000 calls (about 333 a day) plus webhooks and WebSocket, so you stop polling for changes; 7-day free trial. Compare plans

Shipping a product with this data?

Polling works on every plan. Production apps usually also want events pushed to them, by webhook or WebSocket, as soon as we detect them (typically 20-30 seconds behind live play). These guides show the setup and the plan each one needs.

Rate limits and pricing

PlanPriceCallsRateWebSocketWebhooks
Free$0125/mo (1,000 first 30 days)1/s500 msgs/moNo
Starter$29/mo ($290/yr)10,000/mo5/sShares monthly poolShares monthly pool
Growth$49/mo ($490/yr)25,000/mo10/sShares monthly poolShares monthly pool
Pro$99/mo ($990/yr)50,000/mo20/s100,000 msgs/mo25,000/mo
Business$179/mo ($1,790/yr)150,000/mo40/s300,000 msgs/mo75,000/mo
Scale$299/mo ($2,990/yr)500,000/mo100/s500,000 msgs/mo100,000/mo

Every successful REST call counts as one call. Over the limit you get HTTP 429 with a Retry-After header. No SLA. Full pricing.

FAQ

What does the rankings endpoint return?
The AP Top 25, coaches polls and (college football) the College Football Playoff rankings: each ranked team with rank, previous rank, trend, record, points and first-place votes, plus others receiving votes and teams that dropped out. Latest release by default, or a past week.
Which leagues support rankings?
Verified on 2026-10-04: College Football, Men's College Basketball. Not available: 27 other leagues.
Is it free to try?
Yes. The Free plan is $0 with 125 calls per month (1,000 in the first 30 days) at 1 request per second, no card required. Every successful call counts as one call.
How fresh is the data?
Data is aggregated from public sources and is typically 20-30 seconds behind live play (about 1 second after our source). There is no SLA.
Can I get updates pushed instead of polling?
Webhooks are included on every paid plan (Starter, Growth, Pro, Business, Scale). WebSocket is included on paid plans, and the Free plan gets a 500-message monthly preview.