Mountain Project Scraper avatar

Mountain Project Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Mountain Project Scraper

Mountain Project Scraper

Scrape Mountain Project, the largest US rock-climbing route database. Search routes, browse by area or crag, fetch by route ID, or get popular classics: route details with grades, ratings, pitches, length, descriptions, photos, and GPS coordinates. HTTP-only via the public API; no auth required.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

6 days ago

Last modified

Share

Scrape Mountain Project — the largest US rock-climbing route database with 500K+ routes, areas, crags, photos and beta. Search routes by keyword, browse every route under an area or crag, look up routes by ID, or pull the site's popular classic routes. Get full route detail: grades (YDS, French, V-scale and more), route type, star ratings, pitches, length, descriptions, protection, approach, first ascent, GPS coordinates and photos. HTTP-only via Mountain Project's public API — no auth, no cookies, no proxy needed.

What this actor does

  • Four modes: search, browseByArea, byRouteIds, popularRoutes
  • Search both surfaces: searchType=routes (default) or searchType=areas — area search returns crag/area records with ratings, coordinates and breadcrumbs
  • Full route detail: description, approach, protection, descent, first ascent, submitted-by, access notes
  • Grades: YDS / French / V-scale / Ewbanks / UIAA / ZA / British plus aid, ice and mixed grades
  • Filters: route type dropdown, grade range (YDS/V/aid/ice/mixed), minimum star rating, keyword, location
  • Photos: carousel photo URLs from each route page (optional toggle)
  • Area records: sub-area tree, route counts per type, coordinates, radius, overview
  • Empty fields are omitted

Output per route

  • routeId — Mountain Project route ID (e.g. 105924807)
  • name — route name (e.g. "The Nose")
  • difficulty — combined grade string (e.g. 5.9 C2, V2, WI4)
  • gradeYds, gradeFrench, gradeEwbanks, gradeUiaa, gradeZa, gradeBritish — per-system grades (when available)
  • routeTypes[] — e.g. ["Trad", "Aid"] (Trad / Sport / Toprope / Boulder / Ice / Aid / Mixed / Alpine)
  • pitches, lengthFeet, lengthMeters
  • rating — average star rating (0–5), voteCount, pageViews
  • description, approach, protection, descent, accessNotes[]
  • firstAscent, submittedBy
  • areaId, parentAreaId, parentAreaName, breadcrumbs — location path (e.g. California > Yosemite National Park > ...)
  • location{latitude, longitude} GPS coordinates
  • thumbnailUrl, photoUrls[]
  • sourceUrl, mountainProjectUrl, recordType: "route", scrapedAt

Output per area (mode = browseByArea)

  • areaId, name, breadcrumbs, isLeaf, depth
  • summary, overview, approach
  • routeTypeCounts — routes per type (sport, trad, boulder, ice, ...)
  • location (GPS), radius, rating, popularity, childAreaCount
  • thumbnailUrl, sourceUrl, recordType: "area", scrapedAt

Input

FieldTypeDefaultDescription
modestringsearchsearch / browseByArea / byRouteIds / popularRoutes
searchQuerystringel capitanFree-text query (mode=search)
searchTypeenumroutesroutes / areas (mode=search)
areaIdsarrayArea IDs or URLs to browse (mode=browseByArea)
routeIdsarrayRoute IDs or URLs to look up (mode=byRouteIds)
sortBystringrelevancerelevance / rating / longest / shortest / popularity
routeTypestringTrad / Sport / Toprope / Boulder / Ice / Aid / Mixed / Alpine
gradeMinstringe.g. 5.9, V4, WI4, A2, M6
gradeMaxstringe.g. 5.12, V10, WI5, A4, M8
minRatingnumber0–5 star minimum
containsKeywordstringKeep routes with this keyword in name/description
locationKeywordstringKeep routes in this location path, e.g. Yosemite
maxAreaDepthint3Sub-area recursion depth (mode=browseByArea)
includeDetailsbooleantrueFetch full route detail (1 request per route)
includePhotosbooleanfalseScrape photo carousel + votes (1 HTML request per route)
maxItemsint50Hard cap (1–1000)
proxyConfigurationobjectoffOptional; only used automatically on 403/429

Example: search with filters

{
"mode": "search",
"searchQuery": "el capitan",
"routeType": "Trad",
"gradeMin": "5.9",
"gradeMax": "5.12",
"minRating": 3,
"locationKeyword": "Yosemite",
"includeDetails": true,
"maxItems": 20
}

Example: browse a whole crag

{
"mode": "browseByArea",
"areaIds": ["105720495"],
"maxAreaDepth": 3,
"includeDetails": true,
"maxItems": 100
}

Example: lookup by route ID with photos

{
"mode": "byRouteIds",
"routeIds": ["105924807", "https://www.mountainproject.com/route/105748138/hand-traverse"],
"includePhotos": true
}
{
"mode": "popularRoutes",
"minRating": 3,
"maxItems": 10
}

Use cases

  • Climbing guidebook data — build route databases for guidebook apps and training platforms
  • Route discovery — pull the most popular classic routes in an area with photos and beta
  • Location intelligence — GPS coordinates and area trees for outdoor apps and maps
  • Market research — climb-quality signals (ratings, votes, page views) across crags
  • Training content — grade distributions and route-type mixes by region

Data Source

Mountain Project (mountainproject.com) — the largest US climbing-route community database, operated by onX Maps. The actor uses the site's public JSON API (/api/v2/search, /api/v2/routes/<id>, /api/v2/areas/<id>) and publicly rendered pages (/area/classics, route pages). No API key, login or cookies are required.

Limitations

  • browseByArea collects routes from an area's children tree; very large areas (e.g. whole states) have up to 20 direct children and the recursion is bounded by maxAreaDepth and maxItems.
  • Vote counts, page views and the per-system grade breakdown come from the route HTML page and are only populated when includePhotos is enabled (the JSON API exposes the combined grade string and average rating without them).
  • Route-grade filtering supports YDS, V-scale, aid (A/C), ice (WI/AI) and mixed (M) grades; grades in other systems or unparseable strings are passed through, not dropped.
  • Photo carousels show the photos Mountain Project attaches to a route; the full community photo pool for an area is only reachable through the photo search index.
  • The API serves at most 25 results per search page; the actor pages through until maxItems or the result set ends.

FAQ

  • What is the data source? Mountain Project (mountainproject.com), the largest US climbing-route community site, via its public search/detail API and public pages. This actor is a third-party tool and is not affiliated with Mountain Project or onX.
  • Does it require an API key? No. Mountain Project's public /api/v2/* endpoints and public pages need no authentication.
  • Are the photos hotlink-safe? Yes — photo URLs point to the public mountainproject.com/assets/photos/climb/* CDN and load without referer or cookies.
  • How are grades compared for the grade range filter? YDS (5.10d), V-scale (V4), aid (A2), ice (WI4) and mixed (M6) grades map onto a single comparable scale; routes whose grade can't be parsed are not dropped.
  • Why are some fields missing on some routes? Only fields the source actually has are emitted — e.g. boulders have no pitches, sport routes have no protection sections. Empty fields are omitted from every record.
  • How fresh is the data? Records are fetched live at run time from Mountain Project's API and pages.
  • Is there a rate limit? The public endpoints are unthrottled, but the actor still paces requests politely and retries on 429/5xx with backoff.
  • What about areas with very many routes? browseByArea collects routes from the area's children tree; the maxAreaDepth and maxItems inputs bound the size of a run.