IFSC Climbing APIifsc-climbing.com ↗
Access IFSC world rankings, competition results, athlete profiles, event calendars, and news via a single API. 6 endpoints covering all major climbing disciplines.
What is the IFSC Climbing API?
The IFSC Climbing API provides 6 endpoints covering world rankings, event results, athlete profiles, competition schedules, site-wide search, and news from ifsc-climbing.com. The get_rankings endpoint returns ranked athlete lists with per-event score breakdowns across Boulder and Lead disciplines for both men and women. The get_event_results endpoint goes deeper, returning round-by-round ascent details for any finished or ongoing competition.
curl -X GET 'https://api.parse.bot/scraper/30000c31-8532-4170-87e6-c4868eaf08ac/get_rankings?dcat_id=5' \ -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 ifsc-climbing-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.
from parse_apis.world_climbing_ifsc_api import WorldClimbing, DisciplineCategory, Ranking, Event, Athlete, AthleteResult
client = WorldClimbing()
# Get Boulder Women world rankings using the enum
for ranking in client.rankings.list(dcat_id=DisciplineCategory.BOULDER_WOMEN):
print(ranking.name, ranking.rank, ranking.score, ranking.country)
for breakdown in ranking.score_breakdown:
print(breakdown.event_name, breakdown.gained_pts)
# Browse event calendar for 2025
for event in client.events.list(season=2025):
print(event.title, event.venue, event.local_start_date)
# Get detailed results for a specific event using the enum
event = client.event("ifsc-world-cup-bern-2025")
for result in event.results(event_id=1411, dcat_id=DisciplineCategory.LEAD_MEN):
print(result.rank, result.name, result.country)
for rnd in result.rounds:
print(rnd.round_name, rnd.score)
for ascent in rnd.ascents:
print(ascent.route_name, ascent.top, ascent.points)
# Get athlete profile and check their discipline categories
athlete = client.athletes.get(athlete_id=1147, slug="janja-garnbret")
print(athlete.firstname, athlete.lastname, athlete.country, athlete.age)
for res in athlete.all_results:
print(res.event_name, res.discipline, res.rank, res.d_cat)
# Search the site
for group in client.searchresultgroups.search(query="boulder"):
print(group.type, group.count)
for doc in group.documents:
print(doc.title, doc.slug)
# Get latest news
for article in client.newsarticles.list():
print(article.title, article.content_date, article.slug)
Retrieve athlete world rankings by discipline category ID. Returns ranked athletes with their score breakdowns across events. Each ranking entry includes the athlete's total score and per-event point contributions. Paginates as a single page.
| Param | Type | Description |
|---|---|---|
| dcat_id | integer | Discipline category ID. |
{
"type": "object",
"fields": {
"ranking": "array of athlete ranking objects with athlete_id, name, rank, score, country, score_breakdown",
"dcat_name": "string, discipline category name",
"discipline_kind": "string, discipline type"
},
"sample": {
"data": {
"ranking": [
{
"name": "MCNEICE Erin",
"rank": 1,
"score": "5155.0",
"country": "GBR",
"lastname": "MCNEICE",
"firstname": "Erin",
"photo_url": "https://d1n1qj9geboqnb.cloudfront.net/ifsc/public/plnpwzpr487nyh1dgre50i0gmo2l",
"athlete_id": 11468,
"federation_id": 11,
"score_breakdown": [
{
"rank": 4,
"event_id": 1417,
"included": true,
"event_name": "IFSC World Championships Seoul 2025",
"gained_pts": "1220.0",
"discipline_kind": "boulder"
}
]
}
],
"dcat_name": "BOULDER Women",
"discipline_kind": "boulder"
},
"status": "success"
}
}About the IFSC Climbing API
Rankings and Competition Results
get_rankings accepts a dcat_id parameter with four accepted values — 5 (Lead Women), 6 (Lead Men), 7 (Boulder Women), 8 (Boulder Men) — and returns an array of athlete ranking objects that include rank, score, country, and a score_breakdown array showing how points were accumulated across individual events. Those event IDs in score_breakdown feed directly into get_event_results, which requires a dcat_id, an event_id, and an event_slug. The response includes the full ranked list for that event with per-round detail and ascent data, plus an event status field indicating whether the competition is finished or ongoing.
Athletes and Schedules
get_athlete_profile takes an athlete slug (e.g. janja-garnbret) and a numeric athlete_id, returning biographical fields like firstname, lastname, and country, along with an all_results array covering the athlete's full competition history — each entry tagged with season, rank, discipline, event_name, event_id, and d_cat. get_event_calendar returns the season's event list including slug, title, localStartDate, localEndDate, venue, and location. The optional season integer parameter lets you pull calendars for prior years.
Search and News
search_site accepts a free-text query and returns results grouped by type (athletes, events, news, photos, videos, documents), each group including a count and a documents array. The response also includes a total_count across all types — useful for building autocomplete or discovery features. get_news_articles requires no inputs and returns the homepage news feed as an array of objects with slug, title, tags, contentDate, thumbnail, and nested fields carrying description and videoId where applicable.
The IFSC Climbing API is a managed, monitored endpoint for ifsc-climbing.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ifsc-climbing.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 ifsc-climbing.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?+
- Display live IFSC world rankings for Boulder or Lead disciplines in a climbing app, using
get_rankingsto pullrank,score, andcountryfor all athletes. - Build a competition result viewer that retrieves round-by-round ascent data for any event using
get_event_resultswith a knownevent_idandevent_slug. - Populate an athlete profile page with career history by calling
get_athlete_profileand iterating over theall_resultsarray to chart rankings across seasons. - Generate a season competition calendar with venue and date information using
get_event_calendarand the optionalseasonparameter. - Implement a search feature across athletes, events, and news using
search_sitewith aquerystring and filtering results bytype. - Feed a news section or climbing media site by pulling the latest articles and video highlights via
get_news_articles, using thevideoIdfield for embed links. - Track a specific athlete's ranking trajectory by cross-referencing
get_rankingsscore_breakdownevent IDs withget_event_resultsdata.
| 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 IFSC have an official public developer API?+
What discipline categories are supported by `get_rankings` and `get_event_results`?+
dcat_id with four values: 5 (Lead Women), 6 (Lead Men), 7 (Boulder Women), and 8 (Boulder Men). Speed climbing is not currently covered. The API addresses Boulder and Lead disciplines only. You can fork it on Parse and revise to add a Speed discipline endpoint if that data becomes available.Does `get_athlete_profile` include biographical details like age, height, or social media links?+
firstname, lastname, country (3-letter code), and numeric id, plus the full all_results competition history. Extended biographical fields such as age, height, or social media handles are not currently exposed. You can fork the API on Parse and revise it to add those fields if the source exposes them.Can I retrieve historical rankings from previous seasons?+
get_event_calendar supports a season parameter for past years, and get_athlete_profile returns an all_results array that spans multiple seasons with per-result season tags. However, get_rankings does not expose a season filter — it returns current world rankings only. You can fork the API on Parse and revise it to add a historical rankings endpoint.What does `search_site` return beyond athlete profiles?+
type, which can include athletes, events, news articles, photos, videos, and documents. Each group has a count and a documents array. The total_count field gives the aggregate across all types. The search is site-wide, not restricted to a single content type.