What it returns
Schedules, results and rosters for NCAA Division I, II and III schools, read from each school's official athletics website: about 1,000 schools, 16,000 teams, 340,000 games and 445,000 roster entries across 40+ sports.
Three datasets:
- games: one row per scheduled game or event, with sport, date, time, opponent, home/away/neutral, location, conference game, final result (W/L/T), team score, opponent score and box score link where the school posts one.
- rosters: one row per listed player, with sport, name, jersey, position, class year, height, weight, hometown, high school and previous school.
- schools: one row per school, with NCAA division, conference, state, athletics site and the number of sports found.
Filter by school, sport, division, conference, state, opponent and date range. You can also filter for played games only, or search rosters by player name, position, hometown or high school. Games and rosters include each school's division, conference and state.
Source: each school's public schedule and roster pages, for schools whose sites run on the Sidearm Sports or WMT Digital platforms, which together cover most NCAA members, including the major conferences. Schools whose sites run on other platforms are listed with no games or rosters. The school list comes from the NCAA member directory. Data is rebuilt weekly. Sport names are as each school writes them (for example mens-basketball, womens-soccer, softball). A blank field means the school did not publish it.
Charged per row returned.
Request
POST https://api.pushbuild.com/college-sports-data/run with a JSON body. Send your key in the X-API-Key header.
| Field | Type | Description |
|---|---|---|
dataset | string: games, rosters, schools | games (schedules, results and scores), rosters (players) or schools (division, conference, sports found). Default: "games". |
school | string | Part of the official school name, e.g. Abilene Christian. |
sports | list of strings | Sport names as the school's site writes them, matched loosely, e.g. football, mens-basketball, womens-soccer, softball. |
divisions | list of strings | I, II or III (or 1, 2, 3). Leave empty for all. |
conference | string | Part of the conference name, e.g. Big 12, Southland. |
states | list of strings | Two-letter codes of the school's state, e.g. TX, MI. |
opponent | string | Part of the opponent name. |
dateFrom | string | YYYY-MM-DD. |
dateTo | string | YYYY-MM-DD. |
resultsOnly | boolean | Only games with a final result. Default: false. |
playerName | string | Part of the player's name. |
position | string | Position abbreviation as listed, e.g. QB, G, INF. |
hometown | string | Part of the hometown, e.g. Houston or Texas. |
highSchool | string | Part of the high school name. |
maxItems | integer | Maximum items to return (1-500). Default: 100. |
Example
curl -X POST https://api.pushbuild.com/college-sports-data/run \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"sports": ["football"], "maxItems": 20}'
Response
{"count": 20, "truncated": false, "seconds": 1.4, "items": [ { ... } ]}
Each call returns up to 500 items. Records that fail validation or are not found are flagged in the items and not charged.
Pricing
Pay only for results returned: $0.24 per 1,000 records. No charge for errors or empty searches.
Use it from Claude, ChatGPT or Cursor
This API is also an MCP server: https://api.pushbuild.com/mcp/college-sports-data. Add it to any assistant that supports remote MCP servers, with your key in the X-API-Key header. Same prices. Setup for each app.
Tell us what you need built.
Questions about this API, higher volumes, or a data source you need that we don't cover yet.
hello@pushbuild.comWant this data inside your own app or CRM? API integrations and data sync