Discover/Athletic API
live

Athletic APIathletic.net

Access cross country and track & field data from Athletic.net: meet results, athlete profiles, team rosters, rankings, and meet search across 8 endpoints.

This API takes change requests — .
Endpoint health
verified 2d ago
get_states
search
get_team_roster
get_athlete_profile
get_meet_info
6/6 passing latest checkself-healing
Endpoints
8
Updated
1mo ago

What is the Athletic API?

The Athletic.net API exposes 8 endpoints covering cross country and track & field competition data across the United States and select international meets. The get_meet_results endpoint returns individual athlete placements, team scores, and division breakdowns for any indexed meet. Other endpoints cover athlete profiles with full race history, team rosters by season, state/country-level rankings, and full-text search across athletes, teams, and meets.

This call costs2 credits / call— charged only on success
Try it
Search keyword, supports single and multi-word queries.
api.parse.bot/scraper/4645a8ef-1028-446c-9864-2a1c305b5cf8/<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/4645a8ef-1028-446c-9864-2a1c305b5cf8/search?query=Nike+Cross+Nationals' \
  -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 athletic-net-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: Athletic.net SDK — search meets, fetch results, explore athletes."""
from parse_apis.athletic_net_api import AthleticNet, Sport, Gender, ResourceNotFound

client = AthleticNet()

# Search for a well-known cross country meet
for result in client.searchresults.search(query="Nike Cross Nationals", limit=3):
    print(result.textsuggest, result.type, result.score)

# Construct a meet by ID and list its divisions
meet = client.meet(id=248003)
for div in meet.divisions.list(limit=5):
    print(div.div_name, div.gender, div.meters)

# Get race results for a specific division within that meet
top_result = meet.results(div_id="984426", sport=Sport.XC, limit=1).first()
if top_result:
    print(top_result.first_name, top_result.last_name, top_result.result, top_result.place)

# Look up the top finisher's full profile
try:
    athlete = client.athletes.get(athlete_id=str(top_result.athlete_id), sport=Sport.XC)
    print(athlete.first_name, athlete.last_name, athlete.gender, athlete.age)
except ResourceNotFound as exc:
    print(f"Athlete not found: {exc}")

# View top rankings for a division by gender
for ranked in client.rankedathletes.top(div_id="74938", gender=Gender.MALE, limit=3):
    print(ranked.rank, ranked.athlete_name, ranked.team_name, ranked.state)

# Get a team roster
team = client.team(id=7721)
for entry in team.roster(year="2024", limit=3):
    print(entry.name, entry.gender)

print("exercised: searchresults.search / meet.divisions.list / meet.results / athletes.get / rankedathletes.top / team.roster")
All endpoints · 8 totalmissing one? ·

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.

Input
ParamTypeDescription
queryrequiredstringSearch keyword, supports single and multi-word queries.
Response
{
  "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

Search and Meet Discovery

The search endpoint accepts a keyword query and returns up to ~10 results typed as Team, XCMeet, TFMeet, or Athlete, each with an id_db, textsuggest, subtext, and relevance score. It does not paginate — you get the top matches only. To browse meets for a country, get_country_meets accepts an ISO Alpha3 country code (e.g. NZL, AUS, GBR), a sport filter (xc or tf), and a page parameter; it returns 12 meets per page with meet_id, name, date, location, has_results, and total_pages.

Meet Metadata and Results

get_meet_info takes a meet_id and returns the meet's Name, MeetDate, Location, HasResults, SeasonID, and an array of xcDivisions (or tfDivisions) each with an IDMeetDiv, Gender, DivName, and DistanceDisplay. It also returns a jwtMeet token required by get_meet_results. Pass that div_id to get_meet_results to retrieve resultsXC — individual rows with Place, Result, SortValue, AthleteID, FirstName, LastName, SchoolName, and Grade — alongside teamScores with Place, Name, and Points.

Athlete Profiles and Team Rosters

get_athlete_profile accepts an athlete_id and returns the athlete's FirstName, LastName, Gender, age, IDAthlete, SchoolID, an allTeams map of school affiliations with SchoolName and MascotUrl, a meets map of meet metadata, and a resultsXC array of historical results including Result, Place, Distance, MeetID, and SeasonID. get_team_roster takes a team_id and optional year and returns an athletes array with ID, Name, Gender, and rsMugshot.

Rankings and Geography

get_top_rankings returns ranked athletes for a given div_id and gender, with each row including rank, AthleteID, AthleteName, Result, TeamName, State, MeetName, and ResultDate. The get_states endpoint requires no inputs and returns a full list of US states, Canadian provinces, and world countries with ISO codes — useful for constructing geographic filters used elsewhere in the API.

Reliability & maintenanceVerified

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.

Last verified
2d ago
Latest check
6/6 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 meet results dashboard showing individual placements and team scores from get_meet_results
  • Track an athlete's personal-record progression across seasons using resultsXC from get_athlete_profile
  • Display a team's current cross country roster with athlete IDs for linking individual profiles via get_team_roster
  • Rank top performers in a division by gender using get_top_rankings with div_id and gender filters
  • Aggregate international meet calendars for a country using get_country_meets with ISO Alpha3 codes
  • Power a search-as-you-type feature for finding athletes, teams, or meets using the search endpoint
  • Seed a geographic filter UI with state, province, and country codes from get_states
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 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.

Frequently asked questions
Does Athletic.net have an official developer API?+
Athletic.net does not publish a documented public developer API. The Parse API provides structured access to the same meet, athlete, and ranking data available on the site.
What does get_meet_results return, and how do I know which division ID to use?+
Call get_meet_info first with your meet_id. It returns an xcDivisions (or tfDivisions) array where each entry has an IDMeetDiv, Gender, DivName, and DistanceDisplay. Pass one of those IDMeetDiv values as div_id to get_meet_results to get individual placements in resultsXC and team standings in teamScores.
Does the search endpoint return all matching results?+
No. search returns up to approximately 10 top matches ordered by relevance score, with no pagination. It works well for look-up by name but is not designed for exhaustive enumeration. For browsing meets by country, get_country_meets provides paginated results with 12 meets per page.
Does the API cover track & field event-level results such as field events or relay splits?+
Not currently. The current endpoints cover cross country race results and basic track & field meet metadata, but do not expose individual track event results (e.g. 100m times, high jump marks, relay splits) as distinct structured fields. You can fork this API on Parse and revise it to add an endpoint targeting specific TF event result data.
Is there a way to retrieve results for all divisions in a meet at once?+
get_meet_results is scoped to one div_id per request. To collect all divisions, call get_meet_info to list every entry in xcDivisions or tfDivisions, then call get_meet_results once per IDMeetDiv. There is no single-call bulk endpoint for all divisions. You can fork the API on Parse and revise it to add a batch-division endpoint if needed.
Page content last updated . Spec covers 8 endpoints from athletic.net.
Related APIs in SportsSee all →
results.usatf.org API
Access meet information, competition schedules, and event results from USATF track and field competitions. Look up athlete profiles, browse daily schedules, and retrieve detailed results from meets including para nationals events.
tfrrs.org API
Search athletes, view their performance history, and look up detailed results from track and field meets including event standings and team rosters. Get comprehensive information about cross country and track competitions with athlete times, placements, and meet details all in one place.
WorldAthletics.org API
Search for professional athletes and access their competition results, performance records, and complete career history from World Athletics. Track athlete achievements across events, view detailed competition outcomes, and explore career milestones all in one place.
scorecatonline.com API
Access live gymnastics competition results, schedules, and meet information from across the country, with the ability to search meets, view session scores, and filter by state and season. Get detailed breakdowns of individual and team performances at specific gymnastics events.
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.
milesplit.com API
Access high school track and field rankings from MileSplit by state, event, and year. Retrieve team-level standings for relay events and individual athlete rankings for sprint and distance events across all US states.
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.
olympics.com API
Access Olympic Games results, medal tables, and athlete profiles to track performances across disciplines and events. Search featured athletes, view competition outcomes, and stay updated on medal standings from the official Olympics source.