Discover/Sports Reference API
live

Sports Reference APIsports-reference.com

Retrieve college football player career stats from Sports-Reference.com. Passing, rushing, receiving, and scoring totals plus per-season breakdowns by player ID.

This API takes change requests — .
Endpoint health
verified 3h ago
get_player_career_stats
1/1 passing latest checkself-healing
Endpoints
1
Updated
4h ago

What is the Sports Reference API?

The Sports Reference CFB API provides access to college football player statistics through 1 endpoint and over 15 response fields per player. The get_player_career_stats endpoint returns both per-season breakdowns and career totals across passing, rushing/receiving, and scoring categories. You can query any player using a URL-slug identifier like joe-burrow-1 or jamarr-chase-1 and get structured data including position, physical measurements, and full statistical history.

Try it
URL slug identifier for the player (e.g. 'joe-burrow-1', 'jamarr-chase-1'). Lowercase letters, numbers, and hyphens only. Obtainable from the player's Sports Reference URL path.
api.parse.bot/scraper/e8b5e7ca-33c5-4dbf-9db7-62bdcfe20b32/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/e8b5e7ca-33c5-4dbf-9db7-62bdcfe20b32/get_player_career_stats?player_id=joe-burrow-1' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace sports-reference-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: College Football Stats SDK — bounded, re-runnable; every call capped."""
from parse_apis.sports_reference_com_api import CollegeFootball, PlayerNotFound

client = CollegeFootball()

# Fetch career stats for a QB
player = client.players.get(player_id="joe-burrow-1")
print(player.name, player.position, player.height, player.weight)
print("Passing career:", player.career_totals.passing)
print("Rushing/Receiving career:", player.career_totals.rushing_receiving)

# Inspect per-season passing data
for season in player.seasons.passing[:3]:
    print(season)

# Typed error: handle a player that doesn't exist
try:
    missing = client.players.get(player_id="nonexistent-player-999")
    print(missing.name)
except PlayerNotFound as e:
    print(f"Player not found: {e.player_id}")

print("exercised: players.get")
All endpoints · 1 totalmissing one? ·

Retrieve career statistics across all offensive categories (passing, rushing/receiving, scoring) for a college football player. Returns both career totals and per-season breakdowns. The table structure adapts to position: QBs/RBs show rushing-first stats, WRs/TEs show receiving-first stats. Empty category objects indicate the player has no stats in that category.

Input
ParamTypeDescription
player_idrequiredstringURL slug identifier for the player (e.g. 'joe-burrow-1', 'jamarr-chase-1'). Lowercase letters, numbers, and hyphens only. Obtainable from the player's Sports Reference URL path.
Response
{
  "type": "object",
  "fields": {
    "name": "string — player full name",
    "height": "string — height in feet-inches format (e.g. '6-4')",
    "weight": "string — weight in pounds",
    "seasons": "object containing passing, rushing_receiving, and scoring per-season arrays",
    "position": "string — position abbreviation (QB, WR, RB, TE, etc.)",
    "player_id": "string — the player slug identifier",
    "career_totals": "object containing passing, rushing_receiving, and scoring career stat summaries"
  },
  "sample": {
    "data": {
      "name": "Joe Burrow",
      "height": "6-4",
      "weight": "221",
      "seasons": {
        "passing": [
          {
            "pos": "QB",
            "class": "SR",
            "games": "15",
            "pass_td": "60",
            "year_id": "2019*",
            "pass_att": "527",
            "pass_cmp": "402",
            "pass_yds": "5671",
            "conf_abbr": "SEC",
            "pass_rating": "202.0",
            "team_name_abbr": "LSU"
          }
        ],
        "scoring": [
          {
            "pos": "QB",
            "class": "SR",
            "games": "15",
            "all_td": "5",
            "year_id": "2019*",
            "conf_abbr": "SEC",
            "total_points": "30",
            "team_name_abbr": "LSU"
          }
        ],
        "rushing_receiving": [
          {
            "pos": "QB",
            "class": "SR",
            "games": "15",
            "rush_td": "5",
            "year_id": "2019*",
            "rush_att": "115",
            "rush_yds": "368",
            "conf_abbr": "SEC",
            "team_name_abbr": "LSU"
          }
        ]
      },
      "position": "QB",
      "player_id": "joe-burrow-1",
      "career_totals": {
        "passing": {
          "games": "39",
          "pass_td": "78",
          "pass_att": "945",
          "pass_cmp": "650",
          "pass_int": "11",
          "pass_yds": "8852",
          "pass_rating": "172.4",
          "pass_cmp_pct": "68.8"
        },
        "scoring": {
          "games": "39",
          "all_td": "13",
          "total_points": "78",
          "points_per_game": "2.0"
        },
        "rushing_receiving": {
          "rec": "1",
          "games": "39",
          "rec_td": "0",
          "rec_yds": "16",
          "rush_td": "13",
          "rush_att": "258",
          "rush_yds": "820"
        }
      }
    },
    "status": "success"
  }
}

About the Sports Reference API

What the API Returns

The get_player_career_stats endpoint accepts a player_id string — a lowercase hyphenated slug matching the player's profile URL on Sports-Reference's CFB section — and returns a structured object. Top-level fields include name, position, height, weight, and the player_id echo. Statistics are split into two top-level objects: seasons and career_totals.

Season and Career Data Structure

Both seasons and career_totals contain three parallel sub-objects: passing, rushing_receiving, and scoring. The seasons object holds arrays of per-year entries so you can track a player's statistical progression year by year. career_totals collapses those arrays into single summary rows. The table layout adapts to position: quarterbacks and running backs present rushing-centric stat ordering, while wide receivers and tight ends lead with receiving figures.

Player Identification

Players are identified by a player_id slug. Disambiguating suffixes (e.g., -1, -2) handle name collisions between players who share a name. There is no search-by-name endpoint currently — you need to know the slug before making a request. Common slugs follow the pattern firstname-lastname-1 using only lowercase letters, digits, and hyphens.

Coverage Scope

The API covers offensive skill-position statistics: passing yards/TDs/interceptions, rushing yards/attempts/TDs, receptions/receiving yards/TDs, and scoring totals. Defensive stats, special teams data, and team-level statistics are outside the current endpoint's scope.

Reliability & maintenanceVerified

The Sports Reference API is a managed, monitored endpoint for sports-reference.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when sports-reference.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 sports-reference.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.

Last verified
3h ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a college-to-pro comparison tool using career receiving yards and TD totals from career_totals.rushing_receiving
  • Track a quarterback's season-by-season passing progression using the seasons.passing array
  • Populate a player profile card with name, position, height, and weight fields
  • Compare multi-year scoring output for running backs using seasons.scoring breakdowns
  • Validate NFL draft prospect stats by pulling full college career totals before a player's draft year
  • Build a historical CFB stats database indexed by player_id slugs for batch enrichment
  • Generate season-over-season receiving efficiency charts for wide receivers and tight ends
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Sports-Reference.com have an official developer API?+
Sports-Reference does not publish a public developer API for its CFB data. All data access typically goes through the website at sports-reference.com/cfb.
What does `career_totals` actually contain versus `seasons`?+
seasons is an object with three arrays — passing, rushing_receiving, and scoring — where each array element represents one academic year. career_totals uses the same three keys but collapses all years into single summary rows, giving you lifetime aggregate figures like total career passing yards or career rushing touchdowns without needing to sum the season array yourself.
Does the API cover defensive players, linemen, or special teams stats?+
Not currently. The endpoint covers offensive categories only: passing, rushing/receiving, and scoring. Defensive stats (tackles, sacks, interceptions) and special teams figures (kick/punt return yards) are not in the current response. You can fork this API on Parse and revise it to add an endpoint targeting those stat tables.
Can I look up a player by name rather than by their slug ID?+
The current API accepts only a player_id slug as input — there is no name-search or autocomplete endpoint. You need to know the slug (e.g., joe-burrow-1) before calling get_player_career_stats. You can fork this API on Parse and revise it to add a player search endpoint that resolves names to slugs.
How are players with the same name handled?+
Disambiguating numeric suffixes are appended to the slug — for example, two players named John Smith would appear as john-smith-1 and john-smith-2. The suffix is part of the required player_id input, so you need to use the correct one to retrieve the intended player's stats.
Page content last updated . Spec covers 1 endpoint from sports-reference.com.
Related APIs in SportsSee all →
baseball-reference.com API
Access comprehensive MLB and college baseball (NCAA Division I) statistics from Baseball-Reference. Retrieve player career and season stats, team rosters and performance data, game box scores, season schedules, league leaders, and college conference standings — all from a single API.
pro-football-reference.com API
Access comprehensive NFL data including season schedules, team standings, player statistics, game boxscores, play-by-play details, and player profiles to research teams, players, and game information. Search for specific players and dive into detailed game analysis with boxscore information and minute-by-minute play data.
stathead.com API
Search and analyze NFL player performance on a game-by-game basis. Access detailed football statistics — passing, rushing, receiving, and more — filterable by season, team, game type, or statistical thresholds.
stats.ncaa.org API
Access comprehensive NCAA sports statistics to search for players, teams, and coaches, view game box scores and play-by-play data, and review team schedules, rosters, and rankings. Get detailed head coach records and scoreboard information to analyze performance across college sports.
winwithodds.com API
Get detailed NFL season-long player prop projections filtered by position and scoring format to optimize your fantasy lineup decisions. Access comprehensive stats to compare player performance forecasts across different league settings.
statmuse.com API
Get instant access to comprehensive sports statistics, player performance data, and team information across NBA, NFL, MLB, NHL, and more using natural language queries. Search for specific athletes or teams and discover historical sports information with intuitive search suggestions.
fbref.com API
Access comprehensive football statistics including player profiles, team performance data, league standings, and detailed match reports all in one place. Search for specific players and teams, compare their stats, and get up-to-date information on leagues and match outcomes.
whoscored.com API
Search for players and teams, then dive deep into their performance metrics, match statistics, and detailed passing data to analyze football games and player abilities. Get comprehensive insights on team performance, individual player stats, and play-by-play event information to power your football analysis and decision-making.