thecrag.com APIthecrag.com ↗
Access climbing area details, route grades, styles, star ratings, photos, and geographic hierarchy from theCrag.com via 6 structured endpoints.
curl -X GET 'https://api.parse.bot/scraper/db6724e6-21fb-4a2d-8f1f-693ae17bf058/search?query=Yosemite' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for areas, routes, and climbers by keyword on theCrag.com. Returns matching results grouped by type.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search keyword (e.g. 'Yosemite', 'El Capitan') |
{
"type": "object",
"fields": {
"results": "array of search result objects, each with type (area/route/climber), name, url, and description"
},
"sample": {
"data": {
"results": [
{
"url": "https://www.thecrag.com/en/climbing/united-states/yosemite-national-park",
"name": "Yosemite National Park",
"type": "area",
"description": null
},
{
"url": "https://www.thecrag.com/en/climbing/united-states/new-river-gorge/route/14483011",
"name": "New Yosemite / Climbing Under the Influence",
"type": "route",
"description": null
},
{
"url": "https://www.thecrag.com/climber/yosemite74",
"name": "Niklas Bergstrom",
"type": "climber",
"description": null
}
]
},
"status": "success"
}
}About the thecrag.com API
The theCrag API exposes 6 endpoints for retrieving climbing data from theCrag.com, including area details, route listings, individual route specs, photos, and keyword search. The get_route_details endpoint returns grade, style, length, star rating, GPS coordinates, and a full breadcrumb path for any route URL. The get_area_hierarchy endpoint lets you traverse the full geographic tree of climbing areas by node ID, making it straightforward to build location-aware climbing tools.
What the API Covers
These 6 endpoints cover four data types from theCrag.com: climbing areas, individual routes, photos, and search results. The search endpoint accepts a keyword query and returns results grouped by type — area, route, or climber — each with a name, URL, and short description. Area results can be fed directly into get_area_details or get_area_routes using the returned URL.
Area and Route Data
get_area_details returns the area name, summary, location (lat/lng), routes_count, photos_count, a breadcrumbs array for navigation context, and a sub_areas array listing immediate child areas with their own IDs, URLs, and types. The node_id field in that response is the input key for get_area_hierarchy, which returns the children of any node — letting you walk the full geographic tree from a root node down to individual crags. get_area_routes paginates through routes in an area, returning each route's name, url, grade, style, and stars.
Route Details and Photos
get_route_details provides the most granular route-level data: grade, style (e.g. Boulder, Sport, Trad), length, stars, GPS location, description text, and a breadcrumbs chain showing the full area path. get_area_photos paginates through photos attached to an area, returning thumbnail, full_image, url, and caption per photo.
Pagination and Inputs
Both get_area_routes and get_area_photos accept an optional page parameter for pagination. All area and route endpoints require a full thecrag.com URL as input, which you can obtain from search results or the sub-area arrays returned by area endpoints. get_area_hierarchy accepts an optional node_id; omitting it returns the top-level children of the global root.
- Build a climbing trip planner that fetches area summaries, sub-areas, and GPS coordinates via
get_area_details. - Generate a graded route list for a specific crag by paginating through
get_area_routesresults. - Display a photo gallery for any climbing area using
get_area_photosthumbnail and full-image URLs. - Power a route search feature using the
searchendpoint to find areas or routes by keyword. - Construct a hierarchical climbing directory by walking node IDs with
get_area_hierarchy. - Build a route detail page showing grade, style, length, and description from
get_route_details. - Filter and compare routes by style (Sport, Trad, Boulder) across multiple areas using paginated route listings.
| 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 | 250 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 theCrag.com have an official developer API?+
What does `get_area_hierarchy` return, and how do I start traversing from the top?+
get_area_hierarchy returns a children array of area objects, each with id, name, url, sub_area_count, and type. If you omit the node_id parameter, the endpoint returns the top-level geographic children (continent or country level). To go deeper, pass the node_id from any returned child, or use the node_id field from a get_area_details response.Does the API return ascent logs or tick lists for individual users?+
What grade systems does the API return, and can I filter routes by grade?+
grade field returns the grade as displayed on theCrag.com for that route, which may follow any of the systems used on the site (Yosemite Decimal, Fontainebleau, UIAA, etc.) depending on the area's regional default. The current endpoints do not support filtering routes by grade range — get_area_routes returns all routes for an area paginated. You can fork this API on Parse and revise it to add grade-range filtering logic.Is location data (lat/lng) available for all areas and routes?+
location field is returned by both get_area_details and get_route_details, but it reflects what theCrag.com has recorded for that node. Some areas or routes may have null or approximate coordinates if the source data is incomplete. No separate geocoding or fallback is applied.