AllTrails Scraper avatar

AllTrails Scraper

Pricing

Pay per event

Go to Apify Store
AllTrails Scraper

AllTrails Scraper

Scrape AllTrails trail data by keyword or location. Returns trail name, difficulty, distance, elevation gain, GPS coordinates, rating, review count, photos, and full trail descriptions. Bypasses DataDome bot protection using a real browser with residential proxy.

Pricing

Pay per event

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

AllTrails Trail Data Scraper

Scrapes trail data from AllTrails by keyword or location. Returns trail name, difficulty, distance, elevation gain, GPS coordinates, ratings, review counts, photos and full descriptions as structured JSON.


AllTrails Scraper Features

  • Search by keyword, by location, or both
  • Returns 18 fields per trail, including latitude and longitude
  • Extracts difficulty, distance, elevation gain and route type as separate fields
  • Captures rating and review count for popularity ranking
  • Clears AllTrails' DataDome bot protection automatically
  • Caps output with maxItems, so a test run costs what a test run should

What can you do with AllTrails data?

  • Outdoor and travel apps — Seed a trail database with real distances, elevation profiles and coordinates instead of licensing one.
  • Tourism boards — Rank the trails in a region by rating and review volume to see what actually draws visitors.
  • Gear retailers — Match product recommendations to trail difficulty and terrain in a given area.
  • Researchers — Study recreation demand by region, using review counts as a proxy for foot traffic.
  • Route planners — Pull GPS start points in bulk to build a map layer.

How AllTrails Scraper Works

  1. You supply a keyword, a location, or both.
  2. The scraper opens AllTrails search and satisfies DataDome, which turns away ordinary scraping tools.
  3. It walks the result set, opening each trail page and extracting the field set below.
  4. Records stream to the dataset as they are parsed, and the run stops at maxItems.

Input

{
"keyword": "yosemite",
"location": "California, US",
"maxItems": 50
}
FieldTypeDefaultDescription
keywordstringyosemiteSearch term, e.g. grand canyon, waterfall
locationstringLocation filter, e.g. California, US, Rocky Mountain National Park
maxItemsinteger10Maximum trail records to return

Leave location empty to search by keyword alone. Supply both to narrow a common keyword to one region.


AllTrails Scraper Output Fields

{
"trail_id": "yosemite-national-park-mist-trail",
"trail_url": "https://www.alltrails.com/trail/us/california/mist-trail",
"name": "Mist Trail to Vernal and Nevada Falls",
"difficulty": "hard",
"distance_km": "10.9",
"elevation_gain_m": "652",
"route_type": "out and back",
"rating": "4.8",
"num_reviews": "12480",
"latitude": "37.7325",
"longitude": "-119.5583",
"city": "Yosemite Valley",
"region": "California",
"country": "United States",
"tags": "hiking,waterfall,views",
"photo_url": "https://images.alltrails.com/photo.jpg"
}
FieldTypeDescription
trail_idstringAllTrails trail ID (slug from the URL)
trail_urlstringFull URL of the trail page
namestringTrail name
difficultystringDifficulty level — easy, moderate, hard
distance_kmstringTrail distance in kilometres
elevation_gain_mstringElevation gain in metres
route_typestringLoop, out and back, or point to point
ratingstringAverage user rating, 0–5
num_reviewsstringNumber of user reviews
descriptionstringFull trail description text
latitudestringTrail start latitude
longitudestringTrail start longitude
citystringNearest city
regionstringState or region
countrystringCountry
tagsstringActivity tags, comma-separated (hiking, biking, running)
photo_urlstringURL of the primary trail photo
scraped_atstringISO 8601 timestamp of extraction

FAQ

Does the AllTrails Scraper need an AllTrails account?

No. It reads public trail pages. No login, no API key.

How does it get past AllTrails' bot protection?

AllTrails runs DataDome, which rejects ordinary scraping tools outright. This one gets the trail records back. You do not configure any of it.

Can I get GPS tracks or full route geometry?

Not currently. You get the trail's start coordinates, distance, elevation gain and route type. Full GPX geometry is not part of the output.

Why are numeric fields returned as strings?

They come back as the page presents them, without a lossy cast. Parse them to numbers in your own pipeline, where you control the rounding.

How many trails can I pull in one run?

Set maxItems to whatever you need. Keep it low while you are testing the query — you pay per record, so a 10-record trial costs a tenth of a 100-record one.


Need More Features?

Missing a field or a search mode? Open an issue on the actor and it gets looked at.

Why Use AllTrails Scraper?

  • Coordinates on every record — Latitude and longitude come standard, so trail data drops into a map layer without a geocoding pass.
  • The anti-bot problem is already solved — DataDome turns away ordinary scraping tools. This handles it, with nothing for you to set.
  • Pay per trail — No subscription, no minimum. A one-off regional survey costs what those records cost and then stops.