Olympics APIolympics.com ↗
Access Olympic Games editions, medal tables, athlete profiles, discipline lists, and event results from olympics.com via 7 structured endpoints.
What is the Olympics API?
This API surfaces 7 endpoints covering the full breadth of official Olympic data from olympics.com — past games editions, per-discipline event results, country medal tables, and individual athlete profiles. The get_medal_table endpoint returns gold, silver, and bronze counts for every nation that medaled in a given games edition, while get_athlete_profile delivers career-level stats including total medal counts, biographical text, disciplines, and full Olympic results history.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/6370143b-626a-4292-afab-80c2c2caa166/list_olympic_games' \ -H 'X-API-Key: $PARSE_API_KEY'
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 olympics-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.
"""Walkthrough: Olympics.com SDK — explore games, medals, disciplines, and athletes."""
from parse_apis.olympics_com_api import Olympics, GamesSlug, NotFound
client = Olympics()
# List all Olympic Games editions, take the first few
for game in client.games.list(limit=5):
print(game.title, game.year, game.season)
# Construct a specific Game by slug and explore its disciplines
paris = client.game(slug="paris-2024")
for discipline in paris.disciplines.list(limit=5):
print(discipline.title, discipline.slug)
# Get the medal table for Paris 2024
for entry in paris.medal_entries.list(limit=3):
print(entry.country, entry.gold, entry.silver, entry.bronze, entry.total)
# List events for a discipline using the GamesSlug enum
event = client.events.list(games_slug=GamesSlug.PARIS_2024, discipline_slug="athletics", limit=1).first()
if event:
print(event.title, event.gender)
# Get event results with medal winners
result = client.eventresults.list(games_slug=GamesSlug.TOKYO_2020, discipline_slug="swimming", limit=1).first()
if result:
print(result.event_title)
for award in result.awards:
print(award.medal_type, award.athlete_name, award.country_code)
# Browse featured athletes and drill into a profile
preview = client.athletepreviews.list(limit=1).first()
if preview:
try:
athlete = preview.details()
print(athlete.display_name, athlete.gender, athlete.year_of_birth)
print(athlete.medals.GOLD, athlete.medals.SILVER, athlete.medals.BRONZE)
except NotFound as exc:
print(f"Athlete not found: {exc}")
print("exercised: games.list / game.disciplines.list / game.medal_entries.list / events.list / eventresults.list / athletepreviews.list / preview.details")
List all Olympic Games editions (Summer, Winter, Youth) with their slug identifiers, years, and seasons. Returns both upcoming and past games. Use the slug to construct a Game and access its disciplines or medal table.
No input parameters required.
{
"type": "object",
"fields": {
"games": "array of game objects with slug, title, year, season, and url",
"total": "integer count of games returned"
},
"sample": {
"data": {
"games": [
{
"url": "https://www.olympics.com/en/olympic-games/los-angeles-2028/",
"slug": "los-angeles-2028",
"year": null,
"title": "LA28",
"season": null
},
{
"url": "https://www.olympics.com/en/olympic-games/paris-2024/",
"slug": "paris-2024",
"year": "2024",
"title": "Paris 2024",
"season": "Summer"
}
],
"total": 69
},
"status": "success"
}
}About the Olympics API
Games, Disciplines, and Events
list_olympic_games returns all editions — Summer, Winter, and Youth — with each entry including a season, year, title, and slug. Those slugs (e.g. paris-2024, beijing-2022) are the primary key for all other endpoints. list_disciplines accepts a games_slug and returns the array of sports contested at that edition, each with a slug, title, and sport_discipline_id. This endpoint only works for completed games that have medal data; passing a future games slug returns an upstream error. list_events narrows further by accepting both a games_slug and a discipline_slug, returning every individual event with its slug, title, and gender category.
Results and Medal Tables
get_event_results takes the same games_slug + discipline_slug pair and returns results for every event in that discipline in one call. Each entry in the events array includes an awards array identifying gold, silver, and bronze medalists by medal_type, rank, and athlete_name. get_medal_table accepts a games_slug and returns the full country standings — country, country_code, gold, silver, bronze, total — for every nation that appeared on the podium, along with a total_countries count.
Athlete Data
search_featured_athletes returns a curated list of notable athletes currently highlighted on olympics.com, each with name, slug, country, country_code, discipline, and a thumbnail URL. Those slugs feed directly into get_athlete_profile, which returns a richer record: biography, quote, career medals broken down by GOLD/SILVER/BRONZE, the athlete's disciplines array (with ODF codes), gender, and an image_url template. Olympic results history with placements is also included in the profile response.
The Olympics API is a managed, monitored endpoint for olympics.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when olympics.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 olympics.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 historical medal-count dashboard comparing nations across multiple games editions using
get_medal_table. - Populate an athlete directory with career stats, bios, and discipline affiliations from
get_athlete_profile. - Track which countries dominated specific disciplines (e.g. swimming, athletics) by cross-referencing
get_event_resultswithget_medal_table. - Generate a sport-by-sport breakdown of all events and gender categories for a given games using
list_events. - Create a game-edition browser listing all Summer, Winter, and Youth Olympics with year and slug from
list_olympic_games. - Power a sports trivia app with gold/silver/bronze medalist names per event from
get_event_results. - Surface featured athlete cards with thumbnails, country flags, and discipline tags using
search_featured_athletes.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 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.
Does olympics.com have an official developer API?+
What does `get_event_results` return, and how granular is the medal data?+
get_event_results returns results for all events within one discipline at a completed games in a single call. Each event object includes an awards array where each entry specifies medal_type (gold, silver, bronze), rank, and athlete_name. Team events include country affiliation. The total_events field tells you how many events had results available.Can I retrieve results for upcoming or in-progress Olympic Games?+
list_disciplines, list_events, get_event_results, and get_medal_table all require a completed games slug. Passing a slug for a future or ongoing games that lacks finalized medal data returns an upstream error. The data scope is limited to editions where official results exist.Does the API return full Olympic schedule or heat-level results, not just medal winners?+
Can I look up any athlete by name, or only the ones in `search_featured_athletes`?+
search_featured_athletes returns a curated set of highlighted athletes and is the primary way to discover athlete slugs. get_athlete_profile then accepts any valid slug (e.g. usain-bolt, simone-biles). If you need to search athletes outside the featured list, the current API does not expose a general athlete search endpoint. You can fork this API on Parse and revise it to add a broader athlete search capability.