Dataspryva

Washington Trails Association Hike & Trip Report Finder

Find Washington State hikes by region or keyword with length, elevation, rating and feature data, pull full trail stats and coordinates by hike URL, or check recent trip report activity.

Input schema

Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.

FieldTypeRequiredDescription
modestringrequiredWhat to fetch from wta.org.
searchQuerystringoptionalFree-text search of WTA hike descriptions (modes searchTrails, searchTripReports).
nameQuerystringoptionalMatch the hike name only (modes searchTrails, getTripReports, searchTripReports).
Show all input fields
FieldTypeRequiredDescription
modestringrequiredWhat to fetch from wta.org.
searchQuerystringoptionalFree-text search of WTA hike descriptions (modes searchTrails, searchTripReports).
nameQuerystringoptionalMatch the hike name only (modes searchTrails, getTripReports, searchTripReports).
regionstringoptionalWashington region. Choose All Washington to search statewide (modes searchTrails, getTripReports, searchTripReports).
subregionstringoptionalOptional sub-region. Selecting one also selects its parent region.
featuresarrayoptionalRequire all selected features (mode searchTrails). Empty = no feature filter.
dogPolicystringoptionalFilter by dog access (mode searchTrails).
kidFriendlybooleanoptionalOnly kid-friendly trails (mode searchTrails).
wheelchairFriendlybooleanoptionalOnly wheelchair-friendly trails (mode searchTrails).
minRatingnumberoptionalMinimum average community rating, 0–5 (mode searchTrails).
minVoteCountintegeroptionalMinimum number of rating votes (mode searchTrails; applied after the listing fetch).
minLengthMilesnumberoptionalOnly trails at least this long (mode searchTrails). Trails with unknown length are excluded.
maxLengthMilesnumberoptionalOnly trails at most this long (mode searchTrails). Trails with unknown length are excluded.
minElevationGainFeetintegeroptionalOnly trails with at least this gain (mode searchTrails). Unknown gain is excluded.
maxElevationGainFeetintegeroptionalOnly trails with at most this gain (mode searchTrails). Unknown gain is excluded.
maxHighPointFeetintegeroptionalOnly trails whose highest point is at most this elevation (mode searchTrails).
passesarrayoptionalKeep trails that require at least one selected pass (mode searchTrails). Empty = no pass filter.
reportRecencystringoptionalFilter by how recently a trail received a trip report (mode searchTrails).
sortBystringoptionalResult order (mode searchTrails).
latitudenumberoptionalCenter latitude for a radius search (mode searchTrails). Requires longitude and radiusMiles.
longitudenumberoptionalCenter longitude for a radius search (mode searchTrails). Requires latitude and radiusMiles.
radiusMilesnumberoptionalSearch radius in miles (mode searchTrails).
boundingBoxstringoptionalMap area as `south,west,north,east` (mode searchTrails). Takes priority over latitude/longitude/radius.
trailUrlsarrayoptionalWTA hike URLs, /go-hiking/hikes/<slug> paths, or bare slugs (modes getTrailDetails, getTripReports).
fetchDetailsbooleanoptionalAdd difficulty, description, parking pass, land manager, directions, alerts and trip-report count with one detail page per trail (modes searchTrails, getTripReports).
authorstringoptionalExact WTA author username (mode searchTripReports).
tripDateFromstringoptionalEarliest trip date, YYYY-MM-DD (mode searchTripReports).
tripDateTostringoptionalLatest trip date, YYYY-MM-DD (mode searchTripReports).
tripMonthstringoptionalTrip month across any year (mode searchTripReports).
hikeTypesarrayoptionalKeep reports matching any selected hike type (mode searchTripReports).
reportFeaturesarrayoptionalKeep reports matching any selected feature (mode searchTripReports).
reportHighlightsarrayoptionalKeep reports mentioning any selected highlight (mode searchTripReports).
trailConditionsarrayoptionalKeep reports matching any selected trail condition (mode searchTripReports).
roadConditionsarrayoptionalKeep reports matching any selected road condition (mode searchTripReports).
fetchReportDetailsbooleanoptionalOpen each report page for trail URL, hike type, trail/road/bug/snow conditions and full photo URLs (mode searchTripReports).
tripReportsPerTrailintegeroptionalRecent reports to include per trail (mode getTripReports).
includeReportTextbooleanoptionalAttach full text and tags to the recent reports (mode getTripReports; up to 5 per trail).
maxItemsintegeroptionalHard cap on emitted records.
proxyConfigurationobjectoptionalOptional override. The actor works without any proxy.

Download the published input schema

View complete JSON
{
  "description": "Search 4,278 Washington Trails Association hikes, fetch trail details, or stream trail-level and global trip reports.",
  "properties": {
    "author": {
      "description": "Exact WTA author username (mode searchTripReports).",
      "editor": "textfield",
      "title": "Report author",
      "type": "string"
    },
    "boundingBox": {
      "description": "Map area as `south,west,north,east` (mode searchTrails). Takes priority over latitude/longitude/radius.",
      "editor": "textfield",
      "title": "Bounding box",
      "type": "string"
    },
    "dogPolicy": {
      "default": "any",
      "description": "Filter by dog access (mode searchTrails).",
      "editor": "select",
      "enum": [
        "any",
        "allowed-on-leash",
        "not-allowed"
      ],
      "enumTitles": [
        "Any dog policy",
        "Dogs allowed on leash",
        "Dogs not allowed"
      ],
      "prefill": "any",
      "title": "Dog policy",
      "type": "string"
    },
    "features": {
      "default": [],
      "description": "Require all selected features (mode searchTrails). Empty = no feature filter.",
      "editor": "select",
      "items": {
        "enum": [
          "Coast",
          "Rivers",
          "Lakes",
          "Waterfalls",
          "Old growth",
          "Fall foliage",
          "Wildflowers/Meadows",
          "Mountain views",
          "Summits",
          "Wildlife",
          "Ridges/passes",
          "Established campsites"
        ],
        "enumTitles": [
          "Coast",
          "Rivers",
          "Lakes",
          "Waterfalls",
          "Old growth",
          "Fall foliage",
          "Wildflowers/Meadows",
          "Mountain views",
          "Summits",
          "Wildlife",
          "Ridges/passes",
          "Established campsites"
        ],
        "type": "string"
      },
      "prefill": [],
      "title": "Trail features",
      "type": "array",
      "uniqueItems": true
    },
    "fetchDetails": {
      "default": false,
      "description": "Add difficulty, description, parking pass, land manager, directions, alerts and trip-report count with one detail page per trail (modes searchTrails, getTripReports).",
      "prefill": false,
      "title": "Fetch trail details",
      "type": "boolean"
    },
    "fetchReportDetails": {
      "default": false,
      "description": "Open each report page for trail URL, hike type, trail/road/bug/snow conditions and full photo URLs (mode searchTripReports).",
      "prefill": false,
      "title": "Fetch report details",
      "type": "boolean"
    },
    "hikeTypes": {
      "default": [],
      "description": "Keep reports matching any selected hike type (mode searchTripReports).",
      "editor": "select",
      "items": {
        "enum": [
          "day-hike",
          "overnight",
          "multi-night-backpack",
          "snowshoe-xc-ski"
        ],
        "enumTitles": [
          "Day hike",
          "Overnight",
          "Multi-night backpack",
          "Snowshoe / XC ski"
        ],
        "type": "string"
      },
      "prefill": [],
      "title": "Hike types",
      "type": "array",
      "uniqueItems": true
    },
    "includeReportText": {
      "default": false,
      "description": "Attach full text and tags to the recent reports (mode getTripReports; up to 5 per trail).",
      "prefill": false,
      "title": "Include report text",
      "type": "boolean"
    },
    "kidFriendly": {
      "default": false,
      "description": "Only kid-friendly trails (mode searchTrails).",
      "prefill": false,
      "title": "Good for kids",
      "type": "boolean"
    },
    "latitude": {
      "description": "Center latitude for a radius search (mode searchTrails). Requires longitude and radiusMiles.",
      "maximum": 90,
      "minimum": -90,
      "title": "Latitude",
      "type": "number"
    },
    "longitude": {
      "description": "Center longitude for a radius search (mode searchTrails). Requires latitude and radiusMiles.",
      "maximum": 180,
      "minimum": -180,
      "title": "Longitude",
      "type": "number"
    },
    "maxElevationGainFeet": {
      "description": "Only trails with at most this gain (mode searchTrails). Unknown gain is excluded.",
      "maximum": 30000,
      "minimum": 0,
      "title": "Maximum elevation gain (ft)",
      "type": "integer"
    },
    "maxHighPointFeet": {
      "description": "Only trails whose highest point is at most this elevation (mode searchTrails).",
      "maximum": 15000,
      "minimum": 0,
      "title": "Maximum high point (ft)",
      "type": "integer"
    },
    "maxItems": {
      "default": 50,
      "description": "Hard cap on emitted records.",
      "maximum": 10000,
      "minimum": 1,
      "prefill": 3,
      "title": "Max items",
      "type": "integer"
    },
    "maxLengthMiles": {
      "description": "Only trails at most this long (mode searchTrails). Trails with unknown length are excluded.",
      "maximum": 200,
      "minimum": 0,
      "title": "Maximum length (miles)",
      "type": "number"
    },
    "minElevationGainFeet": {
      "description": "Only trails with at least this gain (mode searchTrails). Unknown gain is excluded.",
      "maximum": 30000,
      "minimum": 0,
      "title": "Minimum elevation gain (ft)",
      "type": "integer"
    },
    "minLengthMiles": {
      "description": "Only trails at least this long (mode searchTrails). Trails with unknown length are excluded.",
      "maximum": 200,
      "minimum": 0,
      "title": "Minimum length (miles)",
      "type": "number"
    },
    "minRating": {
      "description": "Minimum average community rating, 0–5 (mode searchTrails).",
      "maximum": 5,
      "minimum": 0,
      "title": "Minimum rating",
      "type": "number"
    },
    "minVoteCount": {
      "description": "Minimum number of rating votes (mode searchTrails; applied after the listing fetch).",
      "maximum": 100000,
      "minimum": 0,
      "title": "Minimum rating votes",
      "type": "integer"
    },
    "mode": {
      "default": "searchTrails",
      "description": "What to fetch from wta.org.",
      "editor": "select",
      "enum": [
        "searchTrails",
        "getTrailDetails",
        "getTripReports",
        "searchTripReports"
      ],
      "enumTitles": [
        "Search trails",
        "Get trail details by URL",
        "Get trip reports for trails",
        "Search trip reports"
      ],
      "prefill": "searchTrails",
      "title": "Mode",
      "type": "string"
    },
    "nameQuery": {
      "description": "Match the hike name only (modes searchTrails, getTripReports, searchTripReports).",
      "editor": "textfield",
      "title": "Hike name",
      "type": "string"
    },
    "passes": {
      "default": [],
      "description": "Keep trails that require at least one selected pass (mode searchTrails). Empty = no pass filter.",
      "editor": "select",
      "items": {
        "enum": [
          "none",
          "discover-pass",
          "national-park-pass",
          "northwest-forest-pass",
          "interagency-pass",
          "oregon-state-parks-day-use",
          "sno-parks-permit"
        ],
        "enumTitles": [
          "No pass",
          "Discover Pass",
          "National Park pass",
          "Northwest Forest Pass",
          "Interagency pass",
          "Oregon State Parks day-use",
          "Sno-Parks permit"
        ],
        "type": "string"
      },
      "prefill": [],
      "title": "Required pass",
      "type": "array",
      "uniqueItems": true
    },
    "proxyConfiguration": {
      "description": "Optional override. The actor works without any proxy.",
      "editor": "proxy",
      "title": "Proxy configuration (optional)",
      "type": "object"
    },
    "radiusMiles": {
      "description": "Search radius in miles (mode searchTrails).",
      "maximum": 200,
      "minimum": 1,
      "title": "Radius (miles)",
      "type": "number"
    },
    "region": {
      "description": "Washington region. Choose All Washington to search statewide (modes searchTrails, getTripReports, searchTripReports).",
      "editor": "select",
      "enum": [
        "all",
        "Central Cascades",
        "Central Washington",
        "Eastern Washington",
        "Issaquah Alps",
        "Mount Rainier Area",
        "North Cascades",
        "Olympic Peninsula",
        "Puget Sound and Islands",
        "Snoqualmie Region",
        "South Cascades",
        "Southwest Washington"
      ],
      "enumTitles": [
        "All Washington",
        "Central Cascades",
        "Central Washington",
        "Eastern Washington",
        "Issaquah Alps",
        "Mount Rainier Area",
        "North Cascades",
        "Olympic Peninsula",
        "Puget Sound and Islands",
        "Snoqualmie Region",
        "South Cascades",
        "Southwest Washington"
      ],
      "prefill": "Snoqualmie Region",
      "title": "Region",
      "type": "string"
    },
    "reportFeatures": {
      "default": [],
      "description": "Keep reports matching any selected feature (mode searchTripReports).",
      "editor": "select",
      "items": {
        "enum": [
          "has-photos",
          "hiked-by-kids",
          "hiked-with-dog",
          "was-workparty"
        ],
        "enumTitles": [
          "Has photos",
          "Hiked by kids",
          "Hiked with a dog",
          "Was a work party"
        ],
        "type": "string"
      },
      "prefill": [],
      "title": "Report features",
      "type": "array",
      "uniqueItems": true
    },
    "reportHighlights": {
      "default": [],
      "description": "Keep reports mentioning any selected highlight (mode searchTripReports).",
      "editor": "select",
      "items": {
        "enum": [
          "wildflowers-blooming",
          "fall-foliage",
          "ripe-berries"
        ],
        "enumTitles": [
          "Wildflowers blooming",
          "Fall foliage",
          "Ripe berries"
        ],
        "type": "string"
      },
      "prefill": [],
      "title": "Report highlights",
      "type": "array",
      "uniqueItems": true
    },
    "reportRecency": {
      "default": "anytime",
      "description": "Filter by how recently a trail received a trip report (mode searchTrails).",
      "editor": "select",
      "enum": [
        "anytime",
        "30-to-90-days",
        "90-plus-days"
      ],
      "enumTitles": [
        "Any time",
        "30–90 days ago",
        "90+ days ago"
      ],
      "prefill": "anytime",
      "title": "Trip-report recency",
      "type": "string"
    },
    "roadConditions": {
      "default": [],
      "description": "Keep reports matching any selected road condition (mode searchTripReports).",
      "editor": "select",
      "items": {
        "enum": [
          "all-vehicles",
          "high-clearance",
          "impassable"
        ],
        "enumTitles": [
          "All vehicles",
          "High clearance",
          "Impassable"
        ],
        "type": "string"
      },
      "prefill": [],
      "title": "Road conditions",
      "type": "array",
      "uniqueItems": true
    },
    "searchQuery": {
      "description": "Free-text search of WTA hike descriptions (modes searchTrails, searchTripReports).",
      "editor": "textfield",
      "title": "Full-text query",
      "type": "string"
    },
    "sortBy": {
      "default": "recently-updated",
      "description": "Result order (mode searchTrails).",
      "editor": "select",
      "enum": [
        "recently-updated",
        "rating",
        "difficulty",
        "mileage",
        "elevation-gain",
        "high-point",
        "name"
      ],
      "enumTitles": [
        "Most recently updated",
        "Rating (best first)",
        "Difficulty (easiest first)",
        "Distance (shortest first)",
        "Elevation gain (least first)",
        "High point (lowest first)",
        "Hike name (A–Z)"
      ],
      "prefill": "recently-updated",
      "title": "Sort by",
      "type": "string"
    },
    "subregion": {
      "default": "all",
      "description": "Optional sub-region. Selecting one also selects its parent region.",
      "editor": "select",
      "enum": [
        "all",
        "83c2ab06fbf236015c8848042f706d58",
        "2b0ca41464d9baca77ced16fb4d40760",
        "684278bc46c11ebe3c5b7212b6f8e486",
        "f6845d37f1edba9dc2bc8a75346f5bd5",
        "637634387ca38685f89162475c7fc1d2",
        "39c3197019b541c4b4b2970281fd85ed",
        "3a415482d61dc1f893288c1bcf5cd8ae",
        "6febb0079f87770b5e790a71aafa3770",
        "b4be8a42f05d2054cbb2ca031b9a6a03",
        "7a4397f2ffde7d0b490ff1ca77cceb9e",
        "fe742c316d095b81d23d712efa977d3d",
        "3eff611193d7d4b57590df1f40b48800",
        "d305615b5db417f18661c5233d2ce950",
        "bec6f9858a88f32a0912ed21d9c63b51",
        "325fdb0c3072b1b9acca522fb9e69ec2",
        "70056b3c13ba158deec7750ef9701a94",
        "9f13d8a3fcd2e1ab7a5b5aaab5997a9e",
        "98ea7186f4ff4bbba5329613f9a89bfb",
        "883e708ab442592f904fd87c1c909f6b",
        "c8814620167ff2c018e9b0d6e961f0c1",
        "cbe4acbaa2c01f9a5dbf4deece4e6ad9",
        "3b53cfc78db378ecf7599df0fa14a51c",
        "cc329f21ff637826168e61bc9db77d65",
        "6194b417d1ae41b1ecd0d297b3fd2dea",
        "5674705352f9b856f2df1da7cbb8e0b1",
        "5952810559bc6d85f808011a53ea6fcf",
        "b52b426625b55325e408adfacae3b6c5",
        "425fd9e8fd7edb23fc53782f16c2ea05",
        "bfbc0abe0fd04783aaad717ea2699866",
        "3b2e0197b8be6c19a273c919b3301405",
        "3ca3cd096bfedde6ff95b0859278cc75",
        "6135b6a861b5ac0c9b17a2f9b60c9295",
        "e4421728558408ef04e0a46afb2aa7ea",
        "92528ff6af30075eec65f35159defc50",
        "7e0a6ce03ba1204d6bd3fdf64d3ad805",
        "df2c2da1637452abe74a5d10837c2e03",
        "d9dddf65d66479f065d40c1aeac18da3",
        "db086e5e85941a02ae188f726f7e9e2c",
        "5d45ee6e4b5b077d069382b6aac9d388",
        "f06510bd295c2d640ee2594d1b7a2ff6",
        "767d751df8b6495999e96486d4d32d49",
        "ac28fa6c89800fca796a2e61b879f416",
        "b1376aba679a6bf3d6402cf91f16a44e",
        "73b109ca9145e4433f3089a1789d29bf",
        "17dcd22410be73abfd45d2703e123a35",
        "6f227fc5711324cee6170aa6d4b52cec",
        "74fe67d98acee7d0decda17c2441a4d2",
        "7f27f833998f4bf38a1c816fdb4cac51",
        "35adb6fb84290947f778381d9d24a470",
        "f0095f8e8f394f4210f50999bf8abf2c",
        "99c63956051e489f96527d6e4ed0915c"
      ],
      "enumTitles": [
        "Any sub-region",
        "Central Cascades > Blewett Pass",
        "Central Cascades > Entiat Mountains/Lake Chelan",
        "Central Cascades > Leavenworth Area",
        "Central Cascades > Stevens Pass - East",
        "Central Cascades > Stevens Pass - West",
        "Central Washington > Grand Coulee",
        "Central Washington > Potholes Region",
        "Central Washington > Tri-Cities",
        "Central Washington > Wenatchee",
        "Central Washington > Yakima",
        "Eastern Washington > Okanogan Highlands/Kettle River Range",
        "Eastern Washington > Palouse and Blue Mountains",
        "Eastern Washington > Selkirk Range",
        "Eastern Washington > Spokane Area/Coeur d'Alene",
        "Issaquah Alps > Cougar Mountain",
        "Issaquah Alps > Squak Mountain",
        "Issaquah Alps > Tiger Mountain",
        "Issaquah Alps > Taylor Mountain",
        "Mount Rainier Area > Chinook Pass - Hwy 410",
        "Mount Rainier Area > NE - Sunrise/White River",
        "Mount Rainier Area > NW - Carbon River/Mowich",
        "Mount Rainier Area > SW - Longmire/Paradise",
        "Mount Rainier Area > SE - Cayuse Pass/Stevens Canyon",
        "North Cascades > Mountain Loop Highway",
        "North Cascades > Mount Baker Area",
        "North Cascades > Methow/Sawtooth",
        "North Cascades > North Cascades Highway - Hwy 20",
        "North Cascades > Pasayten",
        "Olympic Peninsula > Hood Canal",
        "Olympic Peninsula > Kitsap Peninsula",
        "Olympic Peninsula > Olympia",
        "Olympic Peninsula > Pacific Coast",
        "Olympic Peninsula > Northern Coast",
        "Puget Sound and Islands > Bellingham Area",
        "Puget Sound and Islands > San Juan Islands",
        "Puget Sound and Islands > Seattle-Tacoma Area",
        "Puget Sound and Islands > Whidbey Island",
        "Snoqualmie Region > North Bend Area",
        "Snoqualmie Region > Snoqualmie Pass",
        "Snoqualmie Region > Salmon La Sac/Teanaway",
        "Snoqualmie Region > Cle Elum Area",
        "South Cascades > Dark Divide",
        "South Cascades > Goat Rocks",
        "South Cascades > Mount Adams Area",
        "South Cascades > Mount St. Helens",
        "South Cascades > White Pass/Cowlitz River Valley",
        "Southwest Washington > Columbia River Gorge - WA",
        "Southwest Washington > Columbia River Gorge - OR",
        "Southwest Washington > Lewis River Region",
        "Southwest Washington > Long Beach Area",
        "Southwest Washington > Vancouver Area"
      ],
      "prefill": "all",
      "title": "Sub-region",
      "type": "string"
    },
    "trailConditions": {
      "default": [],
      "description": "Keep reports matching any selected trail condition (mode searchTripReports).",
      "editor": "select",
      "items": {
        "enum": [
          "good",
          "difficult",
          "bugs-ok",
          "snow-free",
          "snow-on-trail"
        ],
        "enumTitles": [
          "Good",
          "Difficult",
          "Bugs okay",
          "Snow free",
          "Snow on trail"
        ],
        "type": "string"
      },
      "prefill": [],
      "title": "Trail conditions",
      "type": "array",
      "uniqueItems": true
    },
    "trailUrls": {
      "default": [],
      "description": "WTA hike URLs, /go-hiking/hikes/<slug> paths, or bare slugs (modes getTrailDetails, getTripReports).",
      "editor": "stringList",
      "prefill": [],
      "title": "Trail URLs or slugs",
      "type": "array"
    },
    "tripDateFrom": {
      "description": "Earliest trip date, YYYY-MM-DD (mode searchTripReports).",
      "editor": "textfield",
      "title": "Report date from",
      "type": "string"
    },
    "tripDateTo": {
      "description": "Latest trip date, YYYY-MM-DD (mode searchTripReports).",
      "editor": "textfield",
      "title": "Report date to",
      "type": "string"
    },
    "tripMonth": {
      "default": "all",
      "description": "Trip month across any year (mode searchTripReports).",
      "editor": "select",
      "enum": [
        "all",
        "1",
        "2",
        "3",
        "4",
        "5",
        "6",
        "7",
        "8",
        "9",
        "10",
        "11",
        "12"
      ],
      "enumTitles": [
        "All months",
        "January",
        "February",
        "March",
        "April",
        "May",
        "June",
        "July",
        "August",
        "September",
        "October",
        "November",
        "December"
      ],
      "prefill": "all",
      "title": "Month",
      "type": "string"
    },
    "tripReportsPerTrail": {
      "default": 5,
      "description": "Recent reports to include per trail (mode getTripReports).",
      "maximum": 50,
      "minimum": 1,
      "prefill": 3,
      "title": "Reports per trail",
      "type": "integer"
    },
    "wheelchairFriendly": {
      "default": false,
      "description": "Only wheelchair-friendly trails (mode searchTrails).",
      "prefill": false,
      "title": "Wheelchair friendly",
      "type": "boolean"
    }
  },
  "required": [
    "mode"
  ],
  "schemaVersion": 1,
  "title": "WTA Washington Trails Scraper Input",
  "type": "object"
}

Output schema

Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.

FieldTypeRequiredDescription
trailsstringoptionalDataset containing scraped WTA trail records and trip-report records.

Download the published output schema

View complete JSON
{
  "actorOutputSchemaVersion": 1,
  "description": "Washington Trails Association hikes and trip reports with distance, elevation, difficulty, coordinates, access details and conditions.",
  "properties": {
    "trails": {
      "description": "Dataset containing scraped WTA trail records and trip-report records.",
      "template": "{{links.apiDefaultDatasetUrl}}/items",
      "title": "WTA trails & trip reports",
      "type": "string"
    }
  },
  "title": "WTA Washington Trails, Hike Details & Trip Reports Output"
}

Dataset schema

Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.

Download the published dataset schema

View complete JSON
{
  "actorSpecification": 1,
  "views": {
    "overview": {
      "display": {
        "component": "table",
        "properties": {}
      },
      "title": "WTA trails & trip reports",
      "transformation": {
        "fields": [
          "trailName",
          "region",
          "lengthMiles",
          "elevationGainFeet",
          "difficulty",
          "rating",
          "reviewCount",
          "tripReportCount",
          "latitude",
          "longitude",
          "trailUrl"
        ]
      }
    }
  }
}

Key-value schema

Published key-value store definitions, when provided by this build.

This definition is not present in the default published build. See the published README for available documentation.

Published README

Read the full published documentation

WTA Washington Trails, Hike Details & Trip Reports

Scrape Washington Trails Association (wta.org) — the state's largest hiking guide — with four modes covering trail search, trail details, trail-level trip reports and report-level search. Pull all 4,278 hikes across 11 regions and 51 sub-regions, with length, elevation, coordinates, difficulty, access rules, parking passes, alerts and recent trail conditions. No account, cookies or proxy setup required.

What this actor does

  • Four modes: searchTrails, getTrailDetails, getTripReports, searchTripReports
  • Complete trail inventory: all 4,278 WTA hikes, 11 regions and 51 sub-regions, paginated in one run
  • Hiking filters: region, sub-region, name/full-text search, features, dog policy, kid/wheelchair access, rating, votes, length, gain, high point, required pass, report recency and seven sort orders
  • Map search: radius around a latitude/longitude or a south,west,north,east bounding box
  • Real trip reports: trail-level report counts and latest dates, or a filtered feed from 288,600 reports with conditions, photos, highlights and helpful votes
  • Detail enrichment: difficulty, parking pass, land manager, directions, closures and full description
  • Dual units: miles/feet from the source plus derived kilometres/metres
  • Empty fields are omitted — records never contain null, empty strings or empty arrays

Output per trail

  • recordType — "trail"
  • trailName, trailUrl, trailId, hikeUid, trailSlug
  • region, regionName, subregionName
  • lengthMiles, lengthText, lengthKm, routeType
  • elevationGainFeet, elevationGainText, elevationGainMeters
  • highPointFeet, highPointText, highPointMeters
  • difficulty — Easy through Hard (detail mode or fetchDetails)
  • rating, reviewCount — community rating and number of rating votes
  • tripReportCount, lastTripReportDate, lastTripReportUrl
  • features[] — Lakes, Waterfalls, Mountain views, Summits and other WTA tags
  • latitude, longitude, distanceMiles (radius searches)
  • parkingPass, passes[], landManager, directions
  • alerts[], hasAlerts — closures and access warnings checked with the trail
  • companions[], dogsAllowed, dogPolicy, kidFriendly, wheelchairAccess
  • summary, description, imageUrl
  • scrapedAt — ISO-8601 UTC timestamp

Output per trip report

  • recordType — "tripReport"
  • tripReportId, tripReportUrl
  • trailName, trailUrl, trailId, hikeUid
  • reportDate, region, regionName, subregionName
  • author, authorUrl, authorBadges[]
  • text, photoCount, imageUrl, photoUrls[]
  • helpfulCount, features[]
  • hikeType, trailConditions, roadConditions, bugs, snow
  • warnings, scrapedAt

getTripReports returns trail records with tripReportCount, lastTripReportDate, lastTripReportUrl and a recentTripReports[] array containing each report's date, author, URL, warnings and optional text/tags when includeReportText is on.

Input

Field Type Default Description
mode select searchTrails searchTrails, getTrailDetails, getTripReports or searchTripReports
searchQuery string – Full-text search of hike descriptions (searchTrails, searchTripReports)
nameQuery string – Match the hike name only (searchTrails, getTripReports, searchTripReports)
region select – All Washington or one of 11 regions
subregion select all Any of 51 sub-regions; also selects its parent region
features array [] Require all selected trail features (searchTrails)
dogPolicy select any any, allowed-on-leash or not-allowed
kidFriendly boolean false Only kid-friendly trails
wheelchairFriendly boolean false Only wheelchair-friendly trails
minRating number – Minimum average rating (0–5)
minVoteCount integer – Minimum number of rating votes
minLengthMiles / maxLengthMiles number – Trail length range (miles)
minElevationGainFeet / maxElevationGainFeet integer – Elevation gain range (feet)
maxHighPointFeet integer – Maximum highest point (feet)
passes array [] Keep trails requiring at least one selected pass
reportRecency select anytime anytime, 30-to-90-days or 90-plus-days
sortBy select recently-updated Recently updated, rating, difficulty, distance, gain, high point or name
latitude, longitude, radiusMiles numbers – Radius search; all three are required together
boundingBox string – south,west,north,east; takes priority over radius
trailUrls array [] WTA URLs, /go-hiking/hikes/<slug> paths or bare slugs
fetchDetails boolean false Add detail-page fields per trail
author string – Report author username (searchTripReports)
tripDateFrom / tripDateTo string – Report date range, YYYY-MM-DD
tripMonth select all All months or January–December
hikeTypes array [] Day hike, overnight, multi-night backpack, snowshoe/XC ski
reportFeatures array [] Has photos, hiked by kids, hiked with a dog, work party
reportHighlights array [] Wildflowers, fall foliage, ripe berries
trailConditions array [] Good, difficult, bugs okay, snow free, snow on trail
roadConditions array [] All vehicles, high clearance, impassable
fetchReportDetails boolean false Open each report page for conditions and photo URLs
tripReportsPerTrail integer 5 Recent reports per trail (getTripReports)
includeReportText boolean false Attach text and tags to recent reports
maxItems integer 50 Hard cap on emitted records (1–10,000)
proxyConfiguration object – Optional override; the actor works without a proxy

Example: browse a region with hiking filters

{
  "mode": "searchTrails",
  "region": "Snoqualmie Region",
  "features": ["Waterfalls", "Lakes"],
  "minLengthMiles": 3,
  "maxLengthMiles": 10,
  "minRating": 4,
  "maxItems": 40
}

Example: full details for specific trails

{
  "mode": "getTrailDetails",
  "trailUrls": [
    "https://www.wta.org/go-hiking/hikes/mount-si",
    "snow-lake-1"
  ]
}

Example: reports near a map point

{
  "mode": "searchTrails",
  "latitude": 47.4880,
  "longitude": -121.7231,
  "radiusMiles": 25,
  "maxItems": 25
}

Example: recent trip reports with conditions

{
  "mode": "searchTripReports",
  "region": "Snoqualmie Region",
  "tripDateFrom": "2026-09-01",
  "reportFeatures": ["has-photos"],
  "fetchReportDetails": true,
  "maxItems": 30
}

Example: report history for one trail

{
  "mode": "getTripReports",
  "trailUrls": ["https://www.wta.org/go-hiking/hikes/mount-si"],
  "tripReportsPerTrail": 10,
  "includeReportText": true
}

Use cases

  • Trip planning — shortlist hikes by region, distance, gain, rating, dog rules and required pass
  • Outdoor publishing — build a Washington hiking guide with descriptions, difficulty and photos
  • Trail-condition monitoring — track recent reports, snow, road access and closure alerts
  • Mapping and GIS — export trailhead coordinates for every trail that publishes a location
  • Recreation research — compare trail density, length and elevation across 11 regions
  • Trip-report analysis — study seasonality, highlights and helpful votes across 288,600 reports

FAQ

Is this affiliated with the Washington Trails Association? No. This is an independent, third-party actor that reads publicly available pages on wta.org. It is not operated by or endorsed by WTA.

What is the difference between the four modes? searchTrails browses or filters the full trail database. getTrailDetails returns one complete record for each WTA URL or slug you paste. getTripReports returns trails with report counts, latest report dates and recent report metadata. searchTripReports returns individual reports from the global report feed.

How many trails and reports are available? WTA currently lists 4,278 hikes in 11 regions and 51 sub-regions. The global report feed contains about 288,600 reports. A full trail run returns the complete inventory; a full report run is capped by maxItems (up to 10,000 per run).

Why are lengthMiles, rating, coordinates or features missing on some trails? Roughly one fifth to one quarter of WTA records genuinely do not publish every field, and about 620 trails have no coordinates. Those fields are omitted rather than filled with guesses. Filters that need a missing length, elevation, rating, feature or coordinate exclude that record; WTA's own server-side filters enforce dog, kid and wheelchair access.

What is the difference between reviewCount and tripReportCount? reviewCount is the number of community rating votes behind rating. tripReportCount is the separate count of trip reports published for the trail.

How do I get coordinates, difficulty and access details? Set fetchDetails to true in searchTrails or use getTrailDetails. Search results already include coordinates and access attributes for the 85% of trails that publish them in WTA's map data; difficulty, parking pass, land manager, directions and alerts come from the trail page.

Do I need an account, cookies or a proxy? No. The actor uses public WTA pages and works without credentials or proxy setup. proxyConfiguration is an optional override only.

Why does a report search return different reports than a trail's report history? searchTripReports reads WTA's global report feed and applies report-level filters such as author, month, hike type and conditions. getTripReports reads each selected trail's own report history, which is the better choice when you care about one trail.

How current is the data? Each run reads the live WTA pages. Trail stats, report counts and report dates reflect the site at run time. Hikers post new reports continuously, so recent-report fields change from day to day.

Can I get every trail in one run? Yes. Run searchTrails with region set to All Washington and maxItems at least 4,278. Region-by-region runs work too if you want smaller batches.

Python quickstart

Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.

Open the step-by-step Python guide →

Source build Mnfe02NPtoG0Bk2Br. Documentation is regenerated from the default published build; private drafts are not included.