MaxPreps APImaxpreps.com ↗
Access MaxPreps high school sports data via API. Search schools, get team rosters, schedules, athlete profiles, rankings, and live scores across all sports.
What is the MaxPreps API?
This API exposes 8 endpoints covering high school sports data from MaxPreps, including school search, team rosters, game schedules, athlete career profiles, national and state rankings, and live scoretracker data. The get_live_and_upcoming_games endpoint returns real-time scores, game status, period, clock, and possession for a given sport and state, while get_athlete_profile surfaces career history, stats by season, awards, and prospect rating data.
curl -X GET 'https://api.parse.bot/scraper/e0a033cc-4c08-49d5-8417-81682c9b3dbf/search_schools?query=Oak+Hill+Academy' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for schools by name or query. Returns matching schools with their IDs, locations, mascots, and paths for use in other endpoints.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | School name or search query (e.g., 'Oak Hill Academy', 'Mater Dei') |
{
"type": "object",
"fields": {
"schools": "array of school objects with school_id, name, city, state, mascot, url, and path"
},
"sample": {
"data": {
"schools": [
{
"url": "https://www.maxpreps.com/va/mouth-of-wilson/oak-hill-academy-warriors/",
"city": "Mouth of Wilson",
"name": "Oak Hill Academy",
"path": "/va/mouth-of-wilson/oak-hill-academy-warriors/",
"state": "VA",
"mascot": "Warriors",
"school_id": "f80db136-2ddf-4840-8835-c02f4785634d"
}
]
},
"status": "success"
}
}About the MaxPreps API
School and Team Data
Start with search_schools, which accepts a query string and returns matching school objects including school_id, name, city, state, mascot, and a path used as input to other endpoints. Once you have a team path, get_team_roster takes that path (with sport appended) and an optional season in YY-YY format, returning a roster array where each player entry includes career_id, athlete_id, jersey, position, height, grade, and a photo_url. get_team_schedule uses the same path format and returns a contests array with date, home_team, away_team, opponent, and win/loss result, plus a tournaments array for postseason play.
Athlete Profiles and Rankings
get_athlete_profile accepts an athlete path and career_id (both sourced from the roster endpoint) and returns career_data with per-season stats and awards, a timeline of articles and game events, club_teams affiliations, and a prospect_report object (or null if no prospect data exists). get_rankings accepts a sport and an optional state parameter — pass a two-letter state code for state-level rankings or 'national' for national standings — and returns a rankings array with rank, schoolName, stateCode, overall record, movement, and a teamLink.
Live Scores and Scoretrackers
get_live_and_upcoming_games requires a sport and state, with optional gender and school filters. It returns a games array where each entry includes contest_id, date, time, status (live, upcoming, or final), away_team, home_team, period, clock, and possession. From any contest_id or game URL, you can fetch granular scoring data: get_scoretracker takes a full MaxPreps game URL, while get_scoretracker_by_id takes the UUID directly. Both return clock, period, status, score per team, possession, last_updated, and football-specific fields down_distance and field_position when available.
The MaxPreps API is a managed, monitored endpoint for maxpreps.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when maxpreps.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 maxpreps.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 live high school football scoreboard filtered by state using
get_live_and_upcoming_gamesandget_scoretracker_by_id. - Track a prospect's season-by-season stats and awards by pulling
career_datafromget_athlete_profile. - Aggregate weekly national basketball rankings using the
get_rankingsendpoint withsport='basketball'andstate='national'. - Populate a team schedule page with opponents, scores, and results for any school and sport via
get_team_schedule. - Build a roster directory for a conference by calling
search_schoolsfor each member school and thenget_team_rosterper team. - Surface prospect reports and club team affiliations for recruiting research using
get_athlete_profilewithcareer_idvalues from rosters. - Monitor live game clock, possession, and down-and-distance for a specific contest using
get_scoretrackerwith a known game URL.
| 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 MaxPreps have an official public developer API?+
What does get_athlete_profile return beyond basic bio data?+
timeline (articles, stat updates, and game events tied to the athlete), career_data (per-season stats, awards, and school info for each year played), club_teams (non-school team affiliations), and prospect_report (a prospect rating object, or null if MaxPreps has no rating for that athlete). You need a career_id and path from get_team_roster to call it.Are individual game box scores or play-by-play data available?+
Does the scoretracker work for all sports, or just football?+
get_scoretracker and get_scoretracker_by_id return clock, period, status, score, possession, and last_updated for any sport where live scoring is tracked. The down_distance and field_position fields are football-specific and will be null for other sports. For upcoming games where no scorekeeper has checked in, score and clock fields are also null.Can I retrieve historical seasons beyond the current year?+
get_team_roster and get_team_schedule both accept an optional season parameter in YY-YY format (e.g., '22-23'). How far back the data extends depends on what MaxPreps has on record for a given team. Rankings and live game endpoints reflect current-season data only.