Discover/KenPom API
live

KenPom APIkenpom.com

Access KenPom Division I college basketball ratings via API. Retrieve team efficiency metrics, rankings, tempo, and strength-of-schedule data from 2002 to 2026.

Endpoint health
verified 5d ago
search_teams
search_coaches
get_ratings
get_ratings_by_conference
4/4 passing latest checkself-healing
Endpoints
4
Updated
21d ago

What is the KenPom API?

The KenPom API exposes 4 endpoints covering Pomeroy College Basketball Ratings for every Division I team from the 2002 through 2026 seasons. The get_ratings endpoint returns the full rankings table with adjusted efficiency margin, offensive and defensive efficiency, tempo, luck, and strength-of-schedule fields. Two search endpoints let you find teams and coaches by name substring, and get_ratings_by_conference narrows results to a single conference abbreviation.

Try it
The season year (2002-2026).
api.parse.bot/scraper/6092ec52-1c27-4ba8-88d3-b6893da27e69/<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/6092ec52-1c27-4ba8-88d3-b6893da27e69/get_ratings?year=2024' \
  -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 kenpom-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.

from parse_apis.kenpom_college_basketball_api import KenPom, TeamRating, Season

kenpom = KenPom()

# Get ratings for the 2025 season
season = kenpom.season(year="2025")
for team in season.ratings(limit=5):
    print(team.team, team.conference, team.adj_em, team.w_l)

# Filter by conference
for team in season.ratings_by_conference(conference="ACC"):
    print(team.rank, team.team, team.adj_oe, team.adj_de)

# Search for teams by name
for team in kenpom.teams.search(query="Michigan"):
    print(team.name)

# Search for coaches by name
for coach in kenpom.coaches.search(query="Izzo"):
    print(coach.name)
All endpoints · 4 totalmissing one? ·

Fetches the main Pomeroy College Basketball Ratings table for a given season. Returns all Division I teams with their rankings, adjusted efficiency margins, tempo, luck, and strength-of-schedule metrics. Each team includes rank, conference, win-loss record, and 10 paired metric/rank columns. Defaults to the current season when year is omitted.

Input
ParamTypeDescription
yearstringThe season year (2002-2026).
Response
{
  "type": "object",
  "fields": {
    "year": "string indicating the requested season year",
    "ratings": "array of TeamRating objects"
  },
  "sample": {
    "data": {
      "year": "2025",
      "ratings": [
        {
          "w_l": "35-4",
          "luck": "-.026",
          "rank": "1",
          "team": "Duke",
          "adj_t": "66.0",
          "adj_de": "90.8",
          "adj_em": "+39.29",
          "adj_oe": "130.1",
          "luck_rank": "252",
          "adj_t_rank": "269",
          "conference": "ACC",
          "sos_adj_de": "101.9",
          "sos_adj_em": "+11.51",
          "sos_adj_oe": "113.4",
          "adj_de_rank": "5",
          "adj_oe_rank": "1",
          "ncsos_adj_em": "+9.46",
          "sos_adj_de_rank": "55",
          "sos_adj_em_rank": "51",
          "sos_adj_oe_rank": "43",
          "ncsos_adj_em_rank": "21"
        }
      ]
    },
    "status": "success"
  }
}

About the KenPom API

Ratings and Efficiency Metrics

The get_ratings endpoint accepts an optional year parameter (2002–2026) and returns an array of team rating objects covering every Division I program for that season. Each object includes rank, team, conference, w_l, adj_em (adjusted efficiency margin), adj_oe with its rank, adj_de with its rank, and adj_t (adjusted tempo) with its rank. Omitting the year returns the current season's data. These metrics are the core of the Pomeroy system — adj_em is the margin the team would be expected to outscore an average team per 100 possessions on a neutral floor.

Conference Filtering

get_ratings_by_conference shares the same year parameter and adds a required conference string. Matching is case-insensitive against the abbreviations used in the ratings table — ACC, B12, SEC, B10, and so on. The response echoes the requested abbreviation back in a conference field and includes a count of matched teams, making it straightforward to verify the filter hit the right group.

Team and Coach Search

search_teams accepts a query substring and returns an array of matching team name strings. Omitting the query returns the full list of all tracked team names. search_coaches works the same way against coach full names — first and last name. Nicknames and aliases are not matched; only literal substrings of the coach's official name will return results. Both endpoints echo the query back in the response.

Reliability & maintenanceVerified

The KenPom API is a managed, monitored endpoint for kenpom.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when kenpom.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 kenpom.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
5d ago
Latest check
4/4 endpoints 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 season-over-season efficiency trend tracker using adj_em values from multiple get_ratings year calls
  • Compare adjusted offensive and defensive efficiency rankings across all teams in a single conference via get_ratings_by_conference
  • Populate a team autocomplete search box using search_teams with partial name queries
  • Look up which teams a coach has been associated with by first searching for the coach name via search_coaches
  • Generate conference strength reports using count and aggregated adj_em from get_ratings_by_conference
  • Identify the fastest and slowest tempo teams in a given season by sorting on adj_t from get_ratings
  • Backfill historical college basketball analytics databases using the 2002–2026 year range
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 KenPom have an official developer API?+
No. KenPom (kenpom.com) is a subscription-based website operated by Ken Pomeroy and does not publish a public developer API or documented data feed.
What does the `adj_em` field represent and how is it different from win-loss record?+
adj_em is the adjusted efficiency margin — the number of points a team would be expected to outscore an average Division I opponent per 100 possessions on a neutral court, adjusted for the quality of opponents faced. It is a pace-adjusted, opponent-adjusted metric and captures more predictive information than raw w_l record, which is also returned but does not account for schedule strength or game pace.
Does the API return individual game logs, player statistics, or four-factors data?+
Not currently. The API covers season-level team metrics — rankings, adjusted efficiency, tempo, and strength of schedule — for Division I programs. Individual game logs, player-level stats, and four-factors breakdowns are not included. You can fork this API on Parse and revise it to add endpoints covering those data points.
Which conference abbreviations does `get_ratings_by_conference` accept?+
The endpoint uses the same abbreviations that appear in the ratings table, such as ACC, B12, SEC, B10, MWC, WCC, and others. Matching is case-insensitive. If you are unsure of an abbreviation, call get_ratings first and inspect the conference field values in the returned team objects.
How far back does historical data go, and is data available for non-Division I programs?+
The year parameter covers seasons from 2002 through 2026. Data is limited to Division I programs only. Non-Division I teams are not included in any endpoint response. You can fork this API on Parse and revise it if you need to extend coverage to earlier seasons or add additional team tiers as that data becomes accessible.
Page content last updated . Spec covers 4 endpoints from kenpom.com.
Related APIs in SportsSee all →
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.
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.
nikeeyblscholastic.com API
Access comprehensive Nike EYBL Scholastic basketball league data including teams, player bios, schedules, standings, and detailed game box scores. Track team rosters, player statistics, and season performance across the entire league in one place.
maxpreps.com API
Access high school sports data from MaxPreps. Search for schools, retrieve team rosters and schedules, look up athlete profiles, and browse national or state rankings across all sports.
ratemyprofessors.com API
Search for professors by name and retrieve their ratings, reviews, and detailed profiles — including aggregate scores, difficulty ratings, student tags, and course-level feedback.
ncaaf.com API
Access comprehensive college football data to get live scores, team schedules, player statistics, and game details across the NCAAF. Track rankings, compare team rosters, analyze betting odds and spreads, and explore historical results and trends to stay informed on college football.
ncaa.com API
Access live college sports scores, game schedules, detailed boxscores, play-by-play breakdowns, and team statistics across NCAA sports. Search for specific contests and retrieve comprehensive game information for any NCAA sport, division, or team.
mykbostats.com API
Access comprehensive KBO league data including team standings, schedules, rosters, player profiles, and game details to track Korean baseball statistics and performance metrics. Search for players, view depth charts, get foreign player information, and analyze win matrices to stay informed about the Korean Baseball Organization.