AllTrails Scraper — Hiking, Biking & Running Trails avatar

AllTrails Scraper — Hiking, Biking & Running Trails

Pricing

from $0.70 / 1,000 results

Go to Apify Store
AllTrails Scraper — Hiking, Biking & Running Trails

AllTrails Scraper — Hiking, Biking & Running Trails

Scrapes hiking, biking and running trails from AllTrails by park, city, state, country, coordinates or keyword, with difficulty, length, elevation gain, rating, reviews, location and cover photo. Optionally adds full descriptions, recent reviews and surface types.

Pricing

from $0.70 / 1,000 results

Rating

0.0

(0)

Developer

ActorFlow

ActorFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

Categories

Share

AllTrails Scraper — Hiking, Biking & Running Trail Data by Park, City or Coordinates

Scrape trail data from AllTrails (alltrails.com) for any national park, city, state, country, map point or keyword. Each trail comes back with its difficulty, length, elevation gain, rating, review count, location, activities, features and cover photo, exported as JSON, CSV or Excel and callable as an API. Paste a park or city URL, press Start. Switch on extra details to also get the full description, recent reviews and surface types.

AllTrails Scraper

Target website: alltrails.com

✨ Features of this AllTrails trail scraper

  • Trail data extraction — about 35 fields per trail, including difficulty, length (km and miles), elevation gain, route type, rating and popularity
  • Search by park, city, state or country — paste any AllTrails park, city, state or country page
  • Search by coordinates or keyword — find trails within a radius of a map point, or by name, for example "waterfall"
  • Powerful filters — difficulty, route type, activities, required features (dogs on leash, waterfall, kid friendly…), minimum rating and reviews, length and elevation gain
  • Single trail lookup — paste a trail URL to get just that trail
  • Cover photo URL — a full-size image link for every trail
  • Optional extra details — full description, recent reviews, AI review summary, surface types and top sights (see below)
  • No browser or proxy needed — the standard scrape is fast and cheap

🚀 How to scrape AllTrails trails in 5 steps

  1. Sign up for a free Apify account — includes $5 monthly credit.
  2. Open the actor page and click Try for free.
  3. Add an AllTrails park, city, state or trail URL, a keyword, or coordinates, and set any filters.
  4. Click Start and wait for the run to complete.
  5. Download results from the Output tab in JSON, CSV, or Excel format.

You can also run this actor via the Apify API or integrate it directly into your workflows using Zapier, Make, or n8n.

💰 Pricing

This actor uses pay-per-event billing.

  • Trail — one charge for each trail saved to the dataset.
  • Trail extra details — one extra charge for each trail whose extra details were added. It is only charged when you turn on Include extra details and the details were actually returned.
  • New Apify accounts include $5 of free monthly credit.
  • Leaving extra details off keeps runs fastest and cheapest.

🔧 Input configuration

AllTrails Scraper input

FieldTypeRequiredDefaultDescription
AllTrails URLs (startUrls)array—Yosemite National ParkA park, city, state, country or single trail page.
Search keyword (searchQuery)string——Search trails by name or place.
Latitude / Longitude (latitude, longitude)number——Search around a map point.
Search radius (radiusKm)integer—25Radius around the coordinates, 1–500 km.
Difficulty (difficulty)array—alleasy, moderate, hard.
Route type (routeTypes)array—allloop, out_and_back, point_to_point.
Activities (activities)array—allTrails suited to any selected activity, for example hiking or mountain biking.
Required features (features)array—noneTrails with all selected features, for example dogs on leash and waterfall.
Min rating / reviews (minRating, minReviews)number——Quality filters.
Length (minLengthKm, maxLengthKm)number——Length range in km.
Elevation gain (minElevationGainM, maxElevationGainM)integer——Elevation gain range in metres.
Max trails per URL or search (maxItems)integer—5Up to 1,000 per start URL and for the keyword/coordinates search.
Include extra details (includeExtraDetails)boolean—offAdds the extra data listed below.
Proxy configuration (proxyConfiguration)object—no proxyOptional.

Supported URL types:

  • Parks: https://www.alltrails.com/parks/us/california/yosemite-national-park
  • Cities, states and countries: https://www.alltrails.com/us/california/fremont, https://www.alltrails.com/us/utah, https://www.alltrails.com/us
  • Single trails: https://www.alltrails.com/trail/us/california/mission-peak-via-peak-meadow-trail

What does "Include extra details" add?

Turn it on to load each trail's own page and add these fields. It is one switch and it adds all of them:

Extra fieldWhat you get
descriptionThe full trail description. Without extra details it is the standard listing text, which is cut at 500 characters.
reviewsThe 5 most recent reviews: author, date, star rating, activity, review text, tags, and conditions / parking / difficulty notes.
reviewSummaryThe AI-written summary of what trailgoers say (highlights, challenges, tips).
surfaceTypesThe surface breakdown, for example 53% natural, 42% unknown, 5% gravel, with miles.
topSightsThe top sights and points of interest on the trail, with type and link.

Extra details are slower (several seconds per trail) and add a per-trail charge, so they are off by default. If extra details are temporarily unavailable, the run still returns the standard trail data and logs a warning.

📦 AllTrails scraper output data

The output is a dataset with one record per trail. Standard fields: trailId, name, url, slug, description, difficulty, difficultyScore, routeType, lengthKm, lengthMiles, elevationGainM, elevationGainFt, highestPointM, estimatedTime, durationMinutes, avgRating, reviewCount, textReviewCount, photoCount, completedCount, popularity, visitorUsage, activities, features, collections, latitude, longitude, areaName, areaUrl, city, state, country, isClosed, isPrivateProperty and coverPhotoUrl. With extra details on, reviewSummary, reviews, surfaceTypes and topSights are added and description becomes the full text. The dataset has 1 view, Overview, a compact table of trail, difficulty, length, elevation gain, rating, reviews, city, state and URL.

Example Overview table (Yosemite National Park, 5 trails):

TrailDifficultyLength (km)Elev. gain (m)RatingReviewsCityState
Vernal and Nevada Falls via Mist Trailhard10.946314.927,332Yosemite ValleyCalifornia
Upper Yosemite Falls Trailhard11.279664.820,951Yosemite ValleyCalifornia
Half Dome via the John Muir Trail (JMT)strenuous27.3615554.918,700Yosemite ValleyCalifornia
Vernal Fallshard5.473404.815,497Yosemite ValleyCalifornia
Lower Yosemite Falls Traileasy1.93184.722,290Yosemite ValleyCalifornia

Sample output (with extra details on, trimmed):

{
"trailId": 10261073,
"name": "Mission Peak from Ohlone College",
"url": "https://www.alltrails.com/trail/us/california/mission-peak-from-ohlone-college",
"slug": "trail/us/california/mission-peak-from-ohlone-college",
"description": "Mission Peak gets throngs of hikers but only savvy trekkers take this route to the summit -- an eight-mile out-and-back that stretches out the 2,000-foot ascent to the summit (the most-popular route ascends a similar height in a 5…",
"difficulty": "hard",
"difficultyScore": 5,
"routeType": "out_and_back",
"lengthKm": 13.2,
"lengthMiles": 8.2,
"elevationGainM": 671,
"elevationGainFt": 2201,
"highestPointM": 767,
"estimatedTime": {
"value": "5–5.5",
"unit": "hr"
},
"durationMinutes": 280,
"avgRating": 4.7,
"reviewCount": 12822,
"textReviewCount": 1415,
"photoCount": 21959,
"completedCount": 19368,
"popularity": 99.95,
"visitorUsage": 4,
"activities": ["camping", "hiking", "trail-running", "backpacking"],
"features": ["dogs", "lake", "views", "wild-flowers", "wildlife"],
"collections": ["trending", "views", "wildflowers"],
"latitude": 37.52788,
"longitude": -121.91307,
"areaName": "Mission Peak Regional Preserve",
"areaUrl": "https://www.alltrails.com/parks/us/california/mission-peak-regional-preserve",
"city": "Fremont",
"state": "California",
"country": "United States",
"isClosed": false,
"isPrivateProperty": false,
"coverPhotoUrl": "https://images.alltrails.com/eyJidWNrZXQiOiJhc3NldHMuYWxsdHJ…",
"reviewSummary": "Stunning views and a rewarding summit are highlights. Reviewers note steep inclines and limited shade as challenges. Starting early and bringing plent…",
"reviews": [
{
"author": "Jonah Pirnejad",
"authorUrl": "https://www.alltrails.com/members/jonah-pirnejad",
"rating": 4,
"date": "Mar 31, 2026",
"activity": "Walking",
"text": "Fairly easy trail little windy at the top lots of cows…",
"tags": ["Good conditions", "Not crowded"],
"attributes": {
"Parking": "Paid, Large lot"
}
}
],
"surfaceTypes": [
{
"type": "Unknown",
"percent": 48,
"miles": 4
},
{
"type": "Natural",
"percent": 25,
"miles": 2.1
},
{
"type": "Gravel",
"percent": 20,
"miles": 1.6
},
{
"type": "Paved",
"percent": 7,
"miles": 0.5
}
],
"topSights": [
{
"name": "Mission Peak",
"type": "Peak",
"url": "https://www.alltrails.com/poi/us/california/mission-peak"
},
{
"name": "Mission Reservoir",
"type": "Reservoir",
"url": "https://www.alltrails.com/poi/us/california/fremont/mission-reservoir"
}
]
}

🐍 How to scrape AllTrails with Python, JavaScript or the API

Run the actor programmatically with the official Apify clients. Replace <YOUR_API_TOKEN> with the token from your Apify Console.

Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("<username>/alltrails-scraper").call(run_input={
"startUrls": [{"url": "https://www.alltrails.com/parks/us/california/yosemite-national-park"}],
"difficulty": ["hard"],
"minRating": 4.5,
"maxItems": 20,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["name"], item["lengthKm"], item["avgRating"])

JavaScript (npm install apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('<username>/alltrails-scraper').call({
startUrls: [{ url: 'https://www.alltrails.com/parks/us/california/yosemite-national-park' }],
difficulty: ['hard'],
minRating: 4.5,
maxItems: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

cURL — start a run and wait for the dataset:

curl -X POST "https://api.apify.com/v2/acts/<username>~alltrails-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"startUrls": [{"url": "https://www.alltrails.com/parks/us/california/yosemite-national-park"}], "maxItems": 20}'

💡 What you can use AllTrails trail data for

  • Building hiking and outdoor recommendation apps with structured difficulty, length and elevation data
  • Planning trips and comparing the best-rated trails in a park, city or region
  • Outdoor gear and travel brands finding the most-reviewed trails for campaigns
  • Tourism boards and real estate teams measuring trail access and popularity by area
  • Researching what hikers say about conditions, parking and crowds through reviews

Typical users are app developers, travel and outdoor brands, tourism and mapping teams, and researchers.

⚠️ Limitations & known issues

  • Up to 1,000 trails per URL or search — for larger areas, search by smaller areas (cities or parks) or use filters.
  • 5 reviews per trail — extra details return the 5 most recent reviews shown on the trail page, not every review.
  • No photo galleries — only the cover photo URL is returned.
  • Search results come in AllTrails' own popularity order — most popular trails first.
  • Unsupported pages — only trail, park, city, state and country pages are supported. Other pages are skipped with a warning.

❓ Frequently asked questions

Can I scrape AllTrails legally?

The actor only collects data that is already publicly visible on alltrails.com — no login, paywall, or private content is accessed. Scraping publicly available data is generally considered lawful (see hiQ Labs v. LinkedIn), but you are responsible for complying with AllTrails' Terms of Service and applicable laws, and for how you use the data.

What data does the AllTrails scraper return?

Each trail has its name, URL, difficulty, length, elevation gain, route type, rating, review count, popularity, activities, features, coordinates, location and cover photo. Turn on extra details to add the full description, recent reviews, review summary, surface types and top sights.

How do I scrape all trails in a national park or city?

Paste the park or city page URL, for example the Yosemite National Park page, and set Max trails per URL. Use filters to narrow it down by difficulty, rating, length or features.

How many trails can I scrape in one run?

Up to 1,000 per start URL, plus up to 1,000 for the keyword/coordinates search. Add several URLs to cover more areas.

Do I need a proxy to scrape AllTrails?

No. The actor works without a proxy by default.

Can I get reviews from AllTrails?

Yes. Turn on Include extra details to get the 5 most recent reviews of each trail, with author, date, rating, activity, text and condition notes.

How do I scrape AllTrails with Python?

Use the Apify client shown above: call the actor with your URLs or filters and iterate over the dataset items.

Can I run this AllTrails scraper on a schedule?

Yes. Use Apify Schedules to re-run it daily or weekly, then compare ratings, review counts and popularity over time.

What output formats are supported?

JSON, CSV, Excel, XML and RSS, either from the Output tab or through the Apify API.

🔗 Other actors you may find useful

ActorDescription
✈️ Kiwi Flight ScraperScrapes flight search results from Kiwi.com with prices, airlines, stops and durations.
⭐ Google Play Store Reviews ScraperScrapes user reviews from Google Play apps, including review text, star rating and author.
🏠 HousingAnywhere Property ScraperScrapes rental listings from HousingAnywhere across cities and room types.
🗞️ Google News AI ScraperSearches Google News by keyword with optional full article text and AI summaries.

💬 Support & contact

If you encounter any issues or have questions, please open an issue or reach out via the Apify Community Forum.

You can also find more of our actors on the Actor Flow page.