AllTrails Scraper — Trails, Ratings, Photos, Difficulty
Pricing
from $0.90 / 1,000 results
AllTrails Scraper — Trails, Ratings, Photos, Difficulty
Pull AllTrails hiking-trail data by location: name, description, photos, ratings, reviews, difficulty, length, elevation, route type, parking, coordinates. No login.
Pricing
from $0.90 / 1,000 results
Rating
0.0
(0)
Developer
Arpit Gandhi
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
12 days ago
Last modified
Categories
Share
🏔️ AllTrails Scraper — Trail Data Extractor
Pull AllTrails hiking-trail data in seconds. Photos, ratings, reviews, difficulty, elevation, route type, coordinates — for any national park, US state, city, or custom coordinates. No login required. ⛰️
📊 20+ fields per trail · 🌍 any location worldwide · 🚫 no auth · ⚡ live data every run
🚀 Quick start
Give it a location and your session (a one-time capture — see below):
{ "location": "Yosemite National Park", "maxItems": 50, "session": "{...your session JSON...}" }
Run it and get clean, structured trail records as JSON, CSV, Excel, XML, or JSONL.
🔑 Getting a session
The scraper talks to AllTrails' mobile API, which needs an anonymous app session — an app-level key plus a DataDome cookie. No AllTrails account is involved (the actor refuses account tokens by design), so nothing of yours is at risk.
To capture one (takes ~2 minutes, lasts until DataDome rotates it):
- Run any HTTP proxy on your computer (mitmproxy, Charles, Proxyman) and point your phone's Wi-Fi proxy at it, with the proxy's certificate trusted.
- Open the AllTrails app and search anything.
- Find a request to
api-v5.alltrails.comand copy its request headers as a JSON object — the important ones arex-at-key,x-at-client-id,user-agent, andcookie. - Paste that JSON object into the session input field (it is stored encrypted).
If runs start failing with a 401/403, the DataDome cookie rotated — capture a fresh one the same way.
⚙️ Input
| Field | Type | Required | Description |
|---|---|---|---|
location | string | ✅ yes | A park, region, US state, city, or coordinates — "Yosemite National Park", "Colorado", "Denver, CO", or "37.7261, -119.5587". |
session | string | ✅ yes | Your AllTrails session as a JSON object of headers — see Getting a session above. Stored encrypted. |
maxItems | integer | no | How many trails to return (default 10). |
includeDetails | boolean | no | Also fetch each trail's detail page for parking, full photo gallery, and highlights (slower, richer). Default off. |
proxyConfiguration | object | no | Proxy — residential recommended (AllTrails is behind DataDome). |
Examples
{ "location": "Zion National Park", "maxItems": 100, "includeDetails": true }
{ "location": "39.7392, -104.9903", "maxItems": 25 }
📤 Output — one record per trail
{"id": "10027503","name": "Clouds Rest Trail","description": "One of Yosemite's classic high-country hikes with 360° summit views…","imageUrl": "https://www.alltrails.com/api/alltrails/trails/10027503/profile_photo","imageGallery": ["https://…"],"rating": 4.9,"reviewCount": 6320,"difficulty": "Hard","difficultyScore": 5,"lengthMiles": 12.6,"lengthKm": 20.28,"elevationGainFt": 3116,"elevationGainM": 950,"routeType": "Out & Back","area": "Yosemite National Park","city": "Yosemite Valley","state": "California","country": "United States","latitude": 37.82563,"longitude": -119.47054,"parking": "Trailhead parking available","dogsAllowed": false,"kidFriendly": false,"verifiedMapId": 287858466,"url": "https://www.alltrails.com/trail/us/california/clouds-rest--6","scrapedAt": "2026-07-14T11:55:48.167Z"}
🧾 Fields
| Field | Description |
|---|---|
🆔 id, 🔗 url | AllTrails trail ID and canonical URL |
🏷️ name, 📝 description | Trail name and description |
🖼️ imageUrl, imageGallery | Hero photo + gallery (gallery with includeDetails) |
⭐ rating, 💬 reviewCount | Average rating and number of reviews |
🎯 difficulty, difficultyScore | Easy / Moderate / Hard + AllTrails 1–7 score |
📏 lengthMiles, lengthKm | Trail length |
⛰️ elevationGainFt, elevationGainM | Elevation gain |
🛤️ routeType | Loop · Out & Back · Point to Point |
🏞️ area, city, state, country | Location detail |
📍 latitude, longitude | Coordinates |
🅿️ parking | Parking info (with includeDetails) |
🐶 dogsAllowed, 🚸 kidFriendly | Access flags where AllTrails exposes them |
📅 scrapedAt | ISO timestamp of the run |
💡 Built for
- 🧭 Travel & outdoor brands — location-aware trail content
- 📱 App developers — power hike-discovery without owning a crawler
- 🏨 Hospitality & tourism — recommend nearby trails to guests
- 📊 Researchers & marketers — outdoor-recreation trends, geo-targeted content
❓ Notes
- No login / account needed — pulls AllTrails' public trail catalog.
- Live data — every run reflects AllTrails at run time.
- Route/loop GPS geometry for each trail is available too (via
verifiedMapId) — ask if you want it added to the output.
Not affiliated with AllTrails. Scrapes publicly available trail data.