Athletic APIathletic.net ↗
Access Athletic.net data via API: athlete profiles, meet results, team rosters, cross country rankings, and meet documents for XC and track & field.
What is the Athletic API?
The Athletic.net API exposes 9 endpoints covering cross country and track & field data from the United States and select international meets, including athlete profiles, meet results, team rosters, and rankings. The get_meet_results endpoint returns individual race placements, team scores, and school affiliations for a specific division. get_athlete_profile returns full career race history, including XC times with distances, placements, and season IDs across all recorded seasons.
curl -X GET 'https://api.parse.bot/scraper/4645a8ef-1028-446c-9864-2a1c305b5cf8/search?query=Nike+Cross+Nationals' \ -H 'X-API-Key: $PARSE_API_KEY'
Full-text search across athletes, teams, and meets by keyword. Returns matching results with type classification (Team, XCMeet, TFMeet, Athlete) and relevance scores. Results are ordered by score descending. No pagination — returns up to ~10 best matches.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search keyword, supports single and multi-word queries. |
{
"type": "object",
"fields": {
"results": "array of search result objects with id_db, type, textsuggest, subtext, score",
"num_found": "integer total number of matches"
},
"sample": {
"data": {
"results": [
{
"type": "Team",
"id_db": "67595",
"score": 8350.503,
"subtext": "Portland, Oregon",
"textsuggest": "NXN Nike Cross Nationals"
}
],
"num_found": 142
},
"status": "success"
}
}About the Athletic API
What the API covers
The API provides access to Athletic.net's indexed catalog of cross country and track & field data. Nine endpoints cover four main data types: meets, athletes, teams, and rankings. The search endpoint performs full-text lookup across all three entity types — athletes, teams (schools), and meets — returning type, id_db, textsuggest, and a relevance score for up to roughly 10 results. Meet discovery can also go through get_country_meets, which accepts ISO Alpha3 country codes (e.g. NZL, GBR) and paginates 12 meets per page with total_meets and total_pages in the response.
Meet data
get_meet_info returns meet metadata — Name, MeetDate, Location, HasResults, SeasonID — along with a jwtMeet token and division arrays (xcDivisions or tfDivisions). Each division entry carries an IDMeetDiv that feeds directly into get_meet_results. That endpoint returns three parallel arrays: resultsXC (individual placements with Place, Result, AthleteID, FirstName, LastName, SchoolName, Grade), teamScores (ranked team totals with Points), and teams (school metadata). get_meet_documents adds a layer for a given meet: it returns publicly posted attachments with absolute download URLs, mime_type, and size_bytes, plus posts (body text, section label info or results) and official_links extracted from those posts.
Athlete and team data
get_athlete_profile returns a merged identity and history object. The resultsXC array includes IDResult, Result, SortValue, Place, MeetID, Distance, and SeasonID per race entry. allTeams maps school IDs to SchoolName, Level, and MascotUrl, allowing multi-team career tracking. get_team_roster returns the athlete list for a school for a given year, with each entry carrying ID, Name, Gender, and rsMugshot.
Rankings and reference data
get_top_rankings returns a ranked list for a specific div_id and optional gender filter. Each entry includes rank, AthleteID, AthleteName, Result, TeamName, State, MeetName, and ResultDate. get_states returns the full reference list of US states, Canadian provinces, and countries with ISO codes — useful for constructing filters for other endpoints that require region or country parameters.
The Athletic API is a managed, monitored endpoint for athletic.net — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when athletic.net 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 athletic.net 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 recruiting tool that pulls an athlete's full XC race history via
get_athlete_profileto chart progression across seasons. - Aggregate team standings from
get_meet_resultsto compare school performance at specific invitational meets. - Display ranked leaderboards for a state division using
get_top_rankingswith gender anddiv_idfilters. - Index upcoming and historical meets by country using
get_country_meetswith ISO Alpha3 codes for international coverage. - Fetch downloadable course maps and meet packets via
get_meet_documentsto surface them in a meet-preview app. - Track roster changes year-over-year by calling
get_team_rosterwith differentyearvalues for the sameteam_id. - Power a meet-search autocomplete by using the
searchendpoint with multi-word queries and filtering results bytype(XCMeet, TFMeet).
| 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 Athletic.net have an official developer API?+
How do `get_meet_info` and `get_meet_results` relate to each other?+
get_meet_info must be called first for a given meet_id. It returns both the division list (xcDivisions or tfDivisions) and a jwtMeet token. The IDMeetDiv values from those division arrays are the required div_id inputs for get_meet_results, which then returns individual placements (resultsXC), team scores (teamScores), and participating schools (teams).Does the API cover track & field event-level results (e.g., 100m, shot put) or only cross country?+
sport: 'tf' as a parameter, but the documented response fields (such as resultsXC and xcDivisions) are oriented around cross country data. Detailed per-event track & field breakdowns — split times, field event distances, heat sheets — are not currently in the response schema. You can fork this API on Parse and revise it to add endpoints targeting those result types.Is the `search` endpoint paginated, and what is the maximum number of results it returns?+
search is not paginated. It returns up to approximately 10 best-matching results ordered by relevance score descending. num_found in the response indicates the total match count in the index, but only the top results are returned. If you need full result sets, get_country_meets supports pagination at 12 meets per page.Does the API expose athlete photos or social profile links beyond the roster mugshot URL?+
get_team_roster endpoint includes an rsMugshot field per athlete. Beyond that, the API does not currently return social media links, biographical narratives, or additional media. You can fork this API on Parse and revise it to surface additional profile fields if they become available on the source.