TeamRankings APIteamrankings.com ↗
Access NFL and college football power rankings, team stats, betting odds, line movement, predictions, and standings from TeamRankings.com via a structured API.
What is the TeamRankings API?
The TeamRankings API exposes 11 endpoints covering NFL and NCAA college football data from TeamRankings.com, including power rankings across dozens of rating categories, over 200 team statistics per league, current betting lines, line movement history, game predictions with win probabilities, ATS and totals picks, betting trends, schedules, standings, and per-team overviews. The get_matchup endpoint, for example, returns projected scores, cover probabilities, and stat comparisons for any scheduled game.
curl -X GET 'https://api.parse.bot/scraper/9731938e-2c39-4862-9240-a6eca749e374/list_ranking_types?league=nfl' \ -H 'X-API-Key: $PARSE_API_KEY'
Lists the power-ranking categories TeamRankings publishes for a league (predictive, home, away, strength of schedule, luck, consistency, and so on). Each item's `ranking` slug is the value accepted by get_rankings. One request; the set differs slightly between the NFL and college football (e.g. division vs conference splits).
| Param | Type | Description |
|---|---|---|
| league | string | League to query. |
{
"type": "object",
"fields": {
"league": "league code echoed back",
"rankings": "array of {ranking: slug accepted by get_rankings, name: site label}"
},
"sample": {
"data": {
"league": "ncaaf",
"rankings": [
{
"name": "Predictive Rankings",
"ranking": "predictive"
},
{
"name": "Home Rating",
"ranking": "home"
},
{
"name": "Luck Rating",
"ranking": "luck"
}
]
},
"status": "success"
}
}About the TeamRankings API
Power Rankings and Team Statistics
The list_ranking_types endpoint enumerates every ranking category TeamRankings publishes for a chosen league — predictive, home, away, strength of schedule, luck, consistency, and others — returning a ranking slug for each. Pass that slug to get_rankings to retrieve the full ranked table: each team's rank, rating (points above average), win-loss record, splits against ranked tiers, season high/low, and last week's rank. The gainers and losers fields identify which teams moved most since the previous week. Historical snapshots are available via the date parameter (ISO YYYY-MM-DD), and available_dates in the response lists every date on record.
list_stats enumerates more than 200 NFL statistics and ~146 college football statistics grouped by category (Scoring Offense, Rushing Defense, Penalties, etc.). Each stat has a stat slug that get_stat accepts, returning a ranked table with six value columns per team: current_season, last_3, last_1, home, away, and previous_season. Values are numeric or null where no data exists (e.g., a team with no away games yet). The same date parameter works here for historical lookups.
Betting Data and Game Predictions
get_odds returns current point spreads, money lines, totals, and a flagged_stale indicator for every scheduled game the site lists — the full remaining NFL season (~200 games) or the coming weeks of college football (~150 games). The matchup_slug on each game connects to two deeper endpoints: get_matchup returns TeamRankings' model output — game-winner pick, ATS pick, totals pick, money-line value pick, projected and most-likely scores, Vegas-implied totals, and a side-by-side stat comparison table. get_line_movement returns the full timestamped history for a chosen market (spread, total, or moneyline), with per-sportsbook columns showing open, high, low, and current values.
Trends, Schedules, Standings, and Team Pages
get_trends filters win-loss, ATS, and over/under records by league, season range (range), conference/division (group_id), and game situation (situation — e.g., is_home, is_fav, is_after_bye). get_schedule returns the full season schedule with neutral-site flags, venue, kickoff time, and — for the NFL — the matchup_slug needed by get_matchup. Schedule results can be filtered by week_id and group_id. get_standings returns conference and division standings for the NFL, with each team row carrying its division; for college football it returns conference standings tables. Finally, get_team aggregates a single team's overview: standing, record, predictive rank, streak, full season schedule with closing lines and results, key offensive and defensive stats, and multiple power rating values.
The TeamRankings API is a managed, monitored endpoint for teamrankings.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when teamrankings.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official teamrankings.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a betting research tool that combines
get_oddsspreads withget_line_movementhistory to surface line movement signals. - Track team momentum week-over-week by comparing
get_rankingsgainers/losers arrays across multiple dates. - Generate pre-game reports by combining
get_matchupwin probabilities and score projections withget_statseason averages. - Analyze ATS performance by filtering
get_trendsby situation (as favorite, after a bye, as home team) across multiple seasons. - Power a standings and schedule dashboard using
get_standingsandget_schedulefiltered by conference and week. - Build a team profile page using
get_teamdata: record, streak, schedule with closing spreads, and key offensive/defensive stats. - Identify statistical mismatches between two opponents by pulling
get_statfor multiple stat slugs and comparing rank positions.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does TeamRankings.com have an official developer API?+
What does `get_matchup` return and how do I get the slug it requires?+
get_matchup requires a matchup_slug — a string in the form jets-titans-week-3-2025 — which you can find in the matchup_slug field on any game returned by get_odds or (for the NFL) get_schedule. The endpoint returns each team's win probability, ATS cover probability, over/under probability, projected and most-likely scores, Vegas-implied totals, and a stat comparison table. Note that score_projection rows include a premium_locked flag; locked rows return null values for that field.Is college football coverage the same as the NFL across all endpoints?+
league parameter, but there are a few differences. College football schedule rows do not carry a matchup_slug, so get_matchup and get_line_movement are not reachable from the schedule for college games — only from get_odds. College football standings return conference tables rather than the AFC/NFC division structure the NFL uses. Stat count also differs: the NFL has over 200 stat slugs; college football has roughly 146.Does the API cover player-level statistics or only team-level data?+
How fresh are the betting odds and line movement data?+
get_odds includes a flagged_stale boolean on each team's line to indicate when the site has marked a line as potentially outdated. get_line_movement returns a timestamped history array sorted newest-first, starting with 'Current' and 'Open' rows, so you can compare the current line against when it was posted. There is no explicit cache-age field; for time-sensitive use cases, re-querying before game time is advisable.