{
  "data": {
    "id": "Mnfe02NPtoG0Bk2Br",
    "actId": "RjY0EHrnYV6l84yAf",
    "userId": "zq8lKbpLzTjGDayPC",
    "startedAt": "2026-11-03T14:55:56.048Z",
    "finishedAt": "2026-11-03T14:56:00.451Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 4303,
      "runTimeSecs": 4.303,
      "computeUnits": 0.004781111111111111,
      "imageSizeBytes": 333105152
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "GK9YjZRyQZVzOdoH5",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"WTA Washington Trails Scraper Input\",\n  \"description\": \"Search 4,278 Washington Trails Association hikes, fetch trail details, or stream trail-level and global trip reports.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Mode\",\n      \"type\": \"string\",\n      \"description\": \"What to fetch from wta.org.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"searchTrails\",\n        \"getTrailDetails\",\n        \"getTripReports\",\n        \"searchTripReports\"\n      ],\n      \"enumTitles\": [\n        \"Search trails\",\n        \"Get trail details by URL\",\n        \"Get trip reports for trails\",\n        \"Search trip reports\"\n      ],\n      \"default\": \"searchTrails\",\n      \"prefill\": \"searchTrails\"\n    },\n    \"searchQuery\": {\n      \"title\": \"Full-text query\",\n      \"type\": \"string\",\n      \"description\": \"Free-text search of WTA hike descriptions (modes searchTrails, searchTripReports).\",\n      \"editor\": \"textfield\"\n    },\n    \"nameQuery\": {\n      \"title\": \"Hike name\",\n      \"type\": \"string\",\n      \"description\": \"Match the hike name only (modes searchTrails, getTripReports, searchTripReports).\",\n      \"editor\": \"textfield\"\n    },\n    \"region\": {\n      \"title\": \"Region\",\n      \"type\": \"string\",\n      \"description\": \"Washington region. Choose All Washington to search statewide (modes searchTrails, getTripReports, searchTripReports).\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"all\",\n        \"Central Cascades\",\n        \"Central Washington\",\n        \"Eastern Washington\",\n        \"Issaquah Alps\",\n        \"Mount Rainier Area\",\n        \"North Cascades\",\n        \"Olympic Peninsula\",\n        \"Puget Sound and Islands\",\n        \"Snoqualmie Region\",\n        \"South Cascades\",\n        \"Southwest Washington\"\n      ],\n      \"enumTitles\": [\n        \"All Washington\",\n        \"Central Cascades\",\n        \"Central Washington\",\n        \"Eastern Washington\",\n        \"Issaquah Alps\",\n        \"Mount Rainier Area\",\n        \"North Cascades\",\n        \"Olympic Peninsula\",\n        \"Puget Sound and Islands\",\n        \"Snoqualmie Region\",\n        \"South Cascades\",\n        \"Southwest Washington\"\n      ],\n      \"prefill\": \"Snoqualmie Region\"\n    },\n    \"subregion\": {\n      \"title\": \"Sub-region\",\n      \"type\": \"string\",\n      \"description\": \"Optional sub-region. Selecting one also selects its parent region.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"all\",\n        \"83c2ab06fbf236015c8848042f706d58\",\n        \"2b0ca41464d9baca77ced16fb4d40760\",\n        \"684278bc46c11ebe3c5b7212b6f8e486\",\n        \"f6845d37f1edba9dc2bc8a75346f5bd5\",\n        \"637634387ca38685f89162475c7fc1d2\",\n        \"39c3197019b541c4b4b2970281fd85ed\",\n        \"3a415482d61dc1f893288c1bcf5cd8ae\",\n        \"6febb0079f87770b5e790a71aafa3770\",\n        \"b4be8a42f05d2054cbb2ca031b9a6a03\",\n        \"7a4397f2ffde7d0b490ff1ca77cceb9e\",\n        \"fe742c316d095b81d23d712efa977d3d\",\n        \"3eff611193d7d4b57590df1f40b48800\",\n        \"d305615b5db417f18661c5233d2ce950\",\n        \"bec6f9858a88f32a0912ed21d9c63b51\",\n        \"325fdb0c3072b1b9acca522fb9e69ec2\",\n        \"70056b3c13ba158deec7750ef9701a94\",\n        \"9f13d8a3fcd2e1ab7a5b5aaab5997a9e\",\n        \"98ea7186f4ff4bbba5329613f9a89bfb\",\n        \"883e708ab442592f904fd87c1c909f6b\",\n        \"c8814620167ff2c018e9b0d6e961f0c1\",\n        \"cbe4acbaa2c01f9a5dbf4deece4e6ad9\",\n        \"3b53cfc78db378ecf7599df0fa14a51c\",\n        \"cc329f21ff637826168e61bc9db77d65\",\n        \"6194b417d1ae41b1ecd0d297b3fd2dea\",\n        \"5674705352f9b856f2df1da7cbb8e0b1\",\n        \"5952810559bc6d85f808011a53ea6fcf\",\n        \"b52b426625b55325e408adfacae3b6c5\",\n        \"425fd9e8fd7edb23fc53782f16c2ea05\",\n        \"bfbc0abe0fd04783aaad717ea2699866\",\n        \"3b2e0197b8be6c19a273c919b3301405\",\n        \"3ca3cd096bfedde6ff95b0859278cc75\",\n        \"6135b6a861b5ac0c9b17a2f9b60c9295\",\n        \"e4421728558408ef04e0a46afb2aa7ea\",\n        \"92528ff6af30075eec65f35159defc50\",\n        \"7e0a6ce03ba1204d6bd3fdf64d3ad805\",\n        \"df2c2da1637452abe74a5d10837c2e03\",\n        \"d9dddf65d66479f065d40c1aeac18da3\",\n        \"db086e5e85941a02ae188f726f7e9e2c\",\n        \"5d45ee6e4b5b077d069382b6aac9d388\",\n        \"f06510bd295c2d640ee2594d1b7a2ff6\",\n        \"767d751df8b6495999e96486d4d32d49\",\n        \"ac28fa6c89800fca796a2e61b879f416\",\n        \"b1376aba679a6bf3d6402cf91f16a44e\",\n        \"73b109ca9145e4433f3089a1789d29bf\",\n        \"17dcd22410be73abfd45d2703e123a35\",\n        \"6f227fc5711324cee6170aa6d4b52cec\",\n        \"74fe67d98acee7d0decda17c2441a4d2\",\n        \"7f27f833998f4bf38a1c816fdb4cac51\",\n        \"35adb6fb84290947f778381d9d24a470\",\n        \"f0095f8e8f394f4210f50999bf8abf2c\",\n        \"99c63956051e489f96527d6e4ed0915c\"\n      ],\n      \"enumTitles\": [\n        \"Any sub-region\",\n        \"Central Cascades > Blewett Pass\",\n        \"Central Cascades > Entiat Mountains/Lake Chelan\",\n        \"Central Cascades > Leavenworth Area\",\n        \"Central Cascades > Stevens Pass - East\",\n        \"Central Cascades > Stevens Pass - West\",\n        \"Central Washington > Grand Coulee\",\n        \"Central Washington > Potholes Region\",\n        \"Central Washington > Tri-Cities\",\n        \"Central Washington > Wenatchee\",\n        \"Central Washington > Yakima\",\n        \"Eastern Washington > Okanogan Highlands/Kettle River Range\",\n        \"Eastern Washington > Palouse and Blue Mountains\",\n        \"Eastern Washington > Selkirk Range\",\n        \"Eastern Washington > Spokane Area/Coeur d'Alene\",\n        \"Issaquah Alps > Cougar Mountain\",\n        \"Issaquah Alps > Squak Mountain\",\n        \"Issaquah Alps > Tiger Mountain\",\n        \"Issaquah Alps > Taylor Mountain\",\n        \"Mount Rainier Area > Chinook Pass - Hwy 410\",\n        \"Mount Rainier Area > NE - Sunrise/White River\",\n        \"Mount Rainier Area > NW - Carbon River/Mowich\",\n        \"Mount Rainier Area > SW - Longmire/Paradise\",\n        \"Mount Rainier Area > SE - Cayuse Pass/Stevens Canyon\",\n        \"North Cascades > Mountain Loop Highway\",\n        \"North Cascades > Mount Baker Area\",\n        \"North Cascades > Methow/Sawtooth\",\n        \"North Cascades > North Cascades Highway - Hwy 20\",\n        \"North Cascades > Pasayten\",\n        \"Olympic Peninsula > Hood Canal\",\n        \"Olympic Peninsula > Kitsap Peninsula\",\n        \"Olympic Peninsula > Olympia\",\n        \"Olympic Peninsula > Pacific Coast\",\n        \"Olympic Peninsula > Northern Coast\",\n        \"Puget Sound and Islands > Bellingham Area\",\n        \"Puget Sound and Islands > San Juan Islands\",\n        \"Puget Sound and Islands > Seattle-Tacoma Area\",\n        \"Puget Sound and Islands > Whidbey Island\",\n        \"Snoqualmie Region > North Bend Area\",\n        \"Snoqualmie Region > Snoqualmie Pass\",\n        \"Snoqualmie Region > Salmon La Sac/Teanaway\",\n        \"Snoqualmie Region > Cle Elum Area\",\n        \"South Cascades > Dark Divide\",\n        \"South Cascades > Goat Rocks\",\n        \"South Cascades > Mount Adams Area\",\n        \"South Cascades > Mount St. Helens\",\n        \"South Cascades > White Pass/Cowlitz River Valley\",\n        \"Southwest Washington > Columbia River Gorge - WA\",\n        \"Southwest Washington > Columbia River Gorge - OR\",\n        \"Southwest Washington > Lewis River Region\",\n        \"Southwest Washington > Long Beach Area\",\n        \"Southwest Washington > Vancouver Area\"\n      ],\n      \"default\": \"all\",\n      \"prefill\": \"all\"\n    },\n    \"features\": {\n      \"title\": \"Trail features\",\n      \"type\": \"array\",\n      \"description\": \"Require all selected features (mode searchTrails). Empty = no feature filter.\",\n      \"editor\": \"select\",\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"Coast\",\n          \"Rivers\",\n          \"Lakes\",\n          \"Waterfalls\",\n          \"Old growth\",\n          \"Fall foliage\",\n          \"Wildflowers/Meadows\",\n          \"Mountain views\",\n          \"Summits\",\n          \"Wildlife\",\n          \"Ridges/passes\",\n          \"Established campsites\"\n        ],\n        \"enumTitles\": [\n          \"Coast\",\n          \"Rivers\",\n          \"Lakes\",\n          \"Waterfalls\",\n          \"Old growth\",\n          \"Fall foliage\",\n          \"Wildflowers/Meadows\",\n          \"Mountain views\",\n          \"Summits\",\n          \"Wildlife\",\n          \"Ridges/passes\",\n          \"Established campsites\"\n        ]\n      },\n      \"uniqueItems\": true,\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"dogPolicy\": {\n      \"title\": \"Dog policy\",\n      \"type\": \"string\",\n      \"description\": \"Filter by dog access (mode searchTrails).\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"any\",\n        \"allowed-on-leash\",\n        \"not-allowed\"\n      ],\n      \"enumTitles\": [\n        \"Any dog policy\",\n        \"Dogs allowed on leash\",\n        \"Dogs not allowed\"\n      ],\n      \"default\": \"any\",\n      \"prefill\": \"any\"\n    },\n    \"kidFriendly\": {\n      \"title\": \"Good for kids\",\n      \"type\": \"boolean\",\n      \"description\": \"Only kid-friendly trails (mode searchTrails).\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"wheelchairFriendly\": {\n      \"title\": \"Wheelchair friendly\",\n      \"type\": \"boolean\",\n      \"description\": \"Only wheelchair-friendly trails (mode searchTrails).\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"minRating\": {\n      \"title\": \"Minimum rating\",\n      \"type\": \"number\",\n      \"description\": \"Minimum average community rating, 0–5 (mode searchTrails).\",\n      \"minimum\": 0,\n      \"maximum\": 5\n    },\n    \"minVoteCount\": {\n      \"title\": \"Minimum rating votes\",\n      \"type\": \"integer\",\n      \"description\": \"Minimum number of rating votes (mode searchTrails; applied after the listing fetch).\",\n      \"minimum\": 0,\n      \"maximum\": 100000\n    },\n    \"minLengthMiles\": {\n      \"title\": \"Minimum length (miles)\",\n      \"type\": \"number\",\n      \"description\": \"Only trails at least this long (mode searchTrails). Trails with unknown length are excluded.\",\n      \"minimum\": 0,\n      \"maximum\": 200\n    },\n    \"maxLengthMiles\": {\n      \"title\": \"Maximum length (miles)\",\n      \"type\": \"number\",\n      \"description\": \"Only trails at most this long (mode searchTrails). Trails with unknown length are excluded.\",\n      \"minimum\": 0,\n      \"maximum\": 200\n    },\n    \"minElevationGainFeet\": {\n      \"title\": \"Minimum elevation gain (ft)\",\n      \"type\": \"integer\",\n      \"description\": \"Only trails with at least this gain (mode searchTrails). Unknown gain is excluded.\",\n      \"minimum\": 0,\n      \"maximum\": 30000\n    },\n    \"maxElevationGainFeet\": {\n      \"title\": \"Maximum elevation gain (ft)\",\n      \"type\": \"integer\",\n      \"description\": \"Only trails with at most this gain (mode searchTrails). Unknown gain is excluded.\",\n      \"minimum\": 0,\n      \"maximum\": 30000\n    },\n    \"maxHighPointFeet\": {\n      \"title\": \"Maximum high point (ft)\",\n      \"type\": \"integer\",\n      \"description\": \"Only trails whose highest point is at most this elevation (mode searchTrails).\",\n      \"minimum\": 0,\n      \"maximum\": 15000\n    },\n    \"passes\": {\n      \"title\": \"Required pass\",\n      \"type\": \"array\",\n      \"description\": \"Keep trails that require at least one selected pass (mode searchTrails). Empty = no pass filter.\",\n      \"editor\": \"select\",\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"none\",\n          \"discover-pass\",\n          \"national-park-pass\",\n          \"northwest-forest-pass\",\n          \"interagency-pass\",\n          \"oregon-state-parks-day-use\",\n          \"sno-parks-permit\"\n        ],\n        \"enumTitles\": [\n          \"No pass\",\n          \"Discover Pass\",\n          \"National Park pass\",\n          \"Northwest Forest Pass\",\n          \"Interagency pass\",\n          \"Oregon State Parks day-use\",\n          \"Sno-Parks permit\"\n        ]\n      },\n      \"uniqueItems\": true,\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"reportRecency\": {\n      \"title\": \"Trip-report recency\",\n      \"type\": \"string\",\n      \"description\": \"Filter by how recently a trail received a trip report (mode searchTrails).\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"anytime\",\n        \"30-to-90-days\",\n        \"90-plus-days\"\n      ],\n      \"enumTitles\": [\n        \"Any time\",\n        \"30–90 days ago\",\n        \"90+ days ago\"\n      ],\n      \"default\": \"anytime\",\n      \"prefill\": \"anytime\"\n    },\n    \"sortBy\": {\n      \"title\": \"Sort by\",\n      \"type\": \"string\",\n      \"description\": \"Result order (mode searchTrails).\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"recently-updated\",\n        \"rating\",\n        \"difficulty\",\n        \"mileage\",\n        \"elevation-gain\",\n        \"high-point\",\n        \"name\"\n      ],\n      \"enumTitles\": [\n        \"Most recently updated\",\n        \"Rating (best first)\",\n        \"Difficulty (easiest first)\",\n        \"Distance (shortest first)\",\n        \"Elevation gain (least first)\",\n        \"High point (lowest first)\",\n        \"Hike name (A–Z)\"\n      ],\n      \"default\": \"recently-updated\",\n      \"prefill\": \"recently-updated\"\n    },\n    \"latitude\": {\n      \"title\": \"Latitude\",\n      \"type\": \"number\",\n      \"description\": \"Center latitude for a radius search (mode searchTrails). Requires longitude and radiusMiles.\",\n      \"minimum\": -90,\n      \"maximum\": 90\n    },\n    \"longitude\": {\n      \"title\": \"Longitude\",\n      \"type\": \"number\",\n      \"description\": \"Center longitude for a radius search (mode searchTrails). Requires latitude and radiusMiles.\",\n      \"minimum\": -180,\n      \"maximum\": 180\n    },\n    \"radiusMiles\": {\n      \"title\": \"Radius (miles)\",\n      \"type\": \"number\",\n      \"description\": \"Search radius in miles (mode searchTrails).\",\n      \"minimum\": 1,\n      \"maximum\": 200\n    },\n    \"boundingBox\": {\n      \"title\": \"Bounding box\",\n      \"type\": \"string\",\n      \"description\": \"Map area as `south,west,north,east` (mode searchTrails). Takes priority over latitude/longitude/radius.\",\n      \"editor\": \"textfield\"\n    },\n    \"trailUrls\": {\n      \"title\": \"Trail URLs or slugs\",\n      \"type\": \"array\",\n      \"description\": \"WTA hike URLs, /go-hiking/hikes/<slug> paths, or bare slugs (modes getTrailDetails, getTripReports).\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"fetchDetails\": {\n      \"title\": \"Fetch trail details\",\n      \"type\": \"boolean\",\n      \"description\": \"Add difficulty, description, parking pass, land manager, directions, alerts and trip-report count with one detail page per trail (modes searchTrails, getTripReports).\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"author\": {\n      \"title\": \"Report author\",\n      \"type\": \"string\",\n      \"description\": \"Exact WTA author username (mode searchTripReports).\",\n      \"editor\": \"textfield\"\n    },\n    \"tripDateFrom\": {\n      \"title\": \"Report date from\",\n      \"type\": \"string\",\n      \"description\": \"Earliest trip date, YYYY-MM-DD (mode searchTripReports).\",\n      \"editor\": \"textfield\"\n    },\n    \"tripDateTo\": {\n      \"title\": \"Report date to\",\n      \"type\": \"string\",\n      \"description\": \"Latest trip date, YYYY-MM-DD (mode searchTripReports).\",\n      \"editor\": \"textfield\"\n    },\n    \"tripMonth\": {\n      \"title\": \"Month\",\n      \"type\": \"string\",\n      \"description\": \"Trip month across any year (mode searchTripReports).\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"all\",\n        \"1\",\n        \"2\",\n        \"3\",\n        \"4\",\n        \"5\",\n        \"6\",\n        \"7\",\n        \"8\",\n        \"9\",\n        \"10\",\n        \"11\",\n        \"12\"\n      ],\n      \"enumTitles\": [\n        \"All months\",\n        \"January\",\n        \"February\",\n        \"March\",\n        \"April\",\n        \"May\",\n        \"June\",\n        \"July\",\n        \"August\",\n        \"September\",\n        \"October\",\n        \"November\",\n        \"December\"\n      ],\n      \"default\": \"all\",\n      \"prefill\": \"all\"\n    },\n    \"hikeTypes\": {\n      \"title\": \"Hike types\",\n      \"type\": \"array\",\n      \"description\": \"Keep reports matching any selected hike type (mode searchTripReports).\",\n      \"editor\": \"select\",\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"day-hike\",\n          \"overnight\",\n          \"multi-night-backpack\",\n          \"snowshoe-xc-ski\"\n        ],\n        \"enumTitles\": [\n          \"Day hike\",\n          \"Overnight\",\n          \"Multi-night backpack\",\n          \"Snowshoe / XC ski\"\n        ]\n      },\n      \"uniqueItems\": true,\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"reportFeatures\": {\n      \"title\": \"Report features\",\n      \"type\": \"array\",\n      \"description\": \"Keep reports matching any selected feature (mode searchTripReports).\",\n      \"editor\": \"select\",\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"has-photos\",\n          \"hiked-by-kids\",\n          \"hiked-with-dog\",\n          \"was-workparty\"\n        ],\n        \"enumTitles\": [\n          \"Has photos\",\n          \"Hiked by kids\",\n          \"Hiked with a dog\",\n          \"Was a work party\"\n        ]\n      },\n      \"uniqueItems\": true,\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"reportHighlights\": {\n      \"title\": \"Report highlights\",\n      \"type\": \"array\",\n      \"description\": \"Keep reports mentioning any selected highlight (mode searchTripReports).\",\n      \"editor\": \"select\",\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"wildflowers-blooming\",\n          \"fall-foliage\",\n          \"ripe-berries\"\n        ],\n        \"enumTitles\": [\n          \"Wildflowers blooming\",\n          \"Fall foliage\",\n          \"Ripe berries\"\n        ]\n      },\n      \"uniqueItems\": true,\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"trailConditions\": {\n      \"title\": \"Trail conditions\",\n      \"type\": \"array\",\n      \"description\": \"Keep reports matching any selected trail condition (mode searchTripReports).\",\n      \"editor\": \"select\",\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"good\",\n          \"difficult\",\n          \"bugs-ok\",\n          \"snow-free\",\n          \"snow-on-trail\"\n        ],\n        \"enumTitles\": [\n          \"Good\",\n          \"Difficult\",\n          \"Bugs okay\",\n          \"Snow free\",\n          \"Snow on trail\"\n        ]\n      },\n      \"uniqueItems\": true,\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"roadConditions\": {\n      \"title\": \"Road conditions\",\n      \"type\": \"array\",\n      \"description\": \"Keep reports matching any selected road condition (mode searchTripReports).\",\n      \"editor\": \"select\",\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"all-vehicles\",\n          \"high-clearance\",\n          \"impassable\"\n        ],\n        \"enumTitles\": [\n          \"All vehicles\",\n          \"High clearance\",\n          \"Impassable\"\n        ]\n      },\n      \"uniqueItems\": true,\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"fetchReportDetails\": {\n      \"title\": \"Fetch report details\",\n      \"type\": \"boolean\",\n      \"description\": \"Open each report page for trail URL, hike type, trail/road/bug/snow conditions and full photo URLs (mode searchTripReports).\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"tripReportsPerTrail\": {\n      \"title\": \"Reports per trail\",\n      \"type\": \"integer\",\n      \"description\": \"Recent reports to include per trail (mode getTripReports).\",\n      \"minimum\": 1,\n      \"maximum\": 50,\n      \"default\": 5,\n      \"prefill\": 3\n    },\n    \"includeReportText\": {\n      \"title\": \"Include report text\",\n      \"type\": \"boolean\",\n      \"description\": \"Attach full text and tags to the recent reports (mode getTripReports; up to 5 per trail).\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"maxItems\": {\n      \"title\": \"Max items\",\n      \"type\": \"integer\",\n      \"description\": \"Hard cap on emitted records.\",\n      \"minimum\": 1,\n      \"maximum\": 10000,\n      \"default\": 50,\n      \"prefill\": 3\n    },\n    \"proxyConfiguration\": {\n      \"title\": \"Proxy configuration (optional)\",\n      \"type\": \"object\",\n      \"description\": \"Optional override. The actor works without any proxy.\",\n      \"editor\": \"proxy\"\n    }\n  },\n  \"required\": [\n    \"mode\"\n  ]\n}",
    "readme": "# WTA Washington Trails, Hike Details & Trip Reports\n\nScrape **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.\n\n## What this actor does\n\n- **Four modes:** `searchTrails`, `getTrailDetails`, `getTripReports`, `searchTripReports`\n- **Complete trail inventory:** all 4,278 WTA hikes, 11 regions and 51 sub-regions, paginated in one run\n- **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\n- **Map search:** radius around a latitude/longitude or a `south,west,north,east` bounding box\n- **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\n- **Detail enrichment:** difficulty, parking pass, land manager, directions, closures and full description\n- **Dual units:** miles/feet from the source plus derived kilometres/metres\n- **Empty fields are omitted** — records never contain `null`, empty strings or empty arrays\n\n## Output per trail\n\n- `recordType` — `\"trail\"`\n- `trailName`, `trailUrl`, `trailId`, `hikeUid`, `trailSlug`\n- `region`, `regionName`, `subregionName`\n- `lengthMiles`, `lengthText`, `lengthKm`, `routeType`\n- `elevationGainFeet`, `elevationGainText`, `elevationGainMeters`\n- `highPointFeet`, `highPointText`, `highPointMeters`\n- `difficulty` — Easy through Hard (detail mode or `fetchDetails`)\n- `rating`, `reviewCount` — community rating and number of rating votes\n- `tripReportCount`, `lastTripReportDate`, `lastTripReportUrl`\n- `features[]` — Lakes, Waterfalls, Mountain views, Summits and other WTA tags\n- `latitude`, `longitude`, `distanceMiles` (radius searches)\n- `parkingPass`, `passes[]`, `landManager`, `directions`\n- `alerts[]`, `hasAlerts` — closures and access warnings checked with the trail\n- `companions[]`, `dogsAllowed`, `dogPolicy`, `kidFriendly`, `wheelchairAccess`\n- `summary`, `description`, `imageUrl`\n- `scrapedAt` — ISO-8601 UTC timestamp\n\n## Output per trip report\n\n- `recordType` — `\"tripReport\"`\n- `tripReportId`, `tripReportUrl`\n- `trailName`, `trailUrl`, `trailId`, `hikeUid`\n- `reportDate`, `region`, `regionName`, `subregionName`\n- `author`, `authorUrl`, `authorBadges[]`\n- `text`, `photoCount`, `imageUrl`, `photoUrls[]`\n- `helpfulCount`, `features[]`\n- `hikeType`, `trailConditions`, `roadConditions`, `bugs`, `snow`\n- `warnings`, `scrapedAt`\n\n`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.\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | select | `searchTrails` | `searchTrails`, `getTrailDetails`, `getTripReports` or `searchTripReports` |\n| `searchQuery` | string | – | Full-text search of hike descriptions (searchTrails, searchTripReports) |\n| `nameQuery` | string | – | Match the hike name only (searchTrails, getTripReports, searchTripReports) |\n| `region` | select | – | All Washington or one of 11 regions |\n| `subregion` | select | `all` | Any of 51 sub-regions; also selects its parent region |\n| `features` | array | `[]` | Require all selected trail features (searchTrails) |\n| `dogPolicy` | select | `any` | `any`, `allowed-on-leash` or `not-allowed` |\n| `kidFriendly` | boolean | `false` | Only kid-friendly trails |\n| `wheelchairFriendly` | boolean | `false` | Only wheelchair-friendly trails |\n| `minRating` | number | – | Minimum average rating (0–5) |\n| `minVoteCount` | integer | – | Minimum number of rating votes |\n| `minLengthMiles` / `maxLengthMiles` | number | – | Trail length range (miles) |\n| `minElevationGainFeet` / `maxElevationGainFeet` | integer | – | Elevation gain range (feet) |\n| `maxHighPointFeet` | integer | – | Maximum highest point (feet) |\n| `passes` | array | `[]` | Keep trails requiring at least one selected pass |\n| `reportRecency` | select | `anytime` | `anytime`, `30-to-90-days` or `90-plus-days` |\n| `sortBy` | select | `recently-updated` | Recently updated, rating, difficulty, distance, gain, high point or name |\n| `latitude`, `longitude`, `radiusMiles` | numbers | – | Radius search; all three are required together |\n| `boundingBox` | string | – | `south,west,north,east`; takes priority over radius |\n| `trailUrls` | array | `[]` | WTA URLs, `/go-hiking/hikes/<slug>` paths or bare slugs |\n| `fetchDetails` | boolean | `false` | Add detail-page fields per trail |\n| `author` | string | – | Report author username (searchTripReports) |\n| `tripDateFrom` / `tripDateTo` | string | – | Report date range, YYYY-MM-DD |\n| `tripMonth` | select | `all` | All months or January–December |\n| `hikeTypes` | array | `[]` | Day hike, overnight, multi-night backpack, snowshoe/XC ski |\n| `reportFeatures` | array | `[]` | Has photos, hiked by kids, hiked with a dog, work party |\n| `reportHighlights` | array | `[]` | Wildflowers, fall foliage, ripe berries |\n| `trailConditions` | array | `[]` | Good, difficult, bugs okay, snow free, snow on trail |\n| `roadConditions` | array | `[]` | All vehicles, high clearance, impassable |\n| `fetchReportDetails` | boolean | `false` | Open each report page for conditions and photo URLs |\n| `tripReportsPerTrail` | integer | `5` | Recent reports per trail (getTripReports) |\n| `includeReportText` | boolean | `false` | Attach text and tags to recent reports |\n| `maxItems` | integer | `50` | Hard cap on emitted records (1–10,000) |\n| `proxyConfiguration` | object | – | Optional override; the actor works without a proxy |\n\n### Example: browse a region with hiking filters\n\n```json\n{\n  \"mode\": \"searchTrails\",\n  \"region\": \"Snoqualmie Region\",\n  \"features\": [\"Waterfalls\", \"Lakes\"],\n  \"minLengthMiles\": 3,\n  \"maxLengthMiles\": 10,\n  \"minRating\": 4,\n  \"maxItems\": 40\n}\n```\n\n### Example: full details for specific trails\n\n```json\n{\n  \"mode\": \"getTrailDetails\",\n  \"trailUrls\": [\n    \"https://www.wta.org/go-hiking/hikes/mount-si\",\n    \"snow-lake-1\"\n  ]\n}\n```\n\n### Example: reports near a map point\n\n```json\n{\n  \"mode\": \"searchTrails\",\n  \"latitude\": 47.4880,\n  \"longitude\": -121.7231,\n  \"radiusMiles\": 25,\n  \"maxItems\": 25\n}\n```\n\n### Example: recent trip reports with conditions\n\n```json\n{\n  \"mode\": \"searchTripReports\",\n  \"region\": \"Snoqualmie Region\",\n  \"tripDateFrom\": \"2026-09-01\",\n  \"reportFeatures\": [\"has-photos\"],\n  \"fetchReportDetails\": true,\n  \"maxItems\": 30\n}\n```\n\n### Example: report history for one trail\n\n```json\n{\n  \"mode\": \"getTripReports\",\n  \"trailUrls\": [\"https://www.wta.org/go-hiking/hikes/mount-si\"],\n  \"tripReportsPerTrail\": 10,\n  \"includeReportText\": true\n}\n```\n\n## Use cases\n\n- **Trip planning** — shortlist hikes by region, distance, gain, rating, dog rules and required pass\n- **Outdoor publishing** — build a Washington hiking guide with descriptions, difficulty and photos\n- **Trail-condition monitoring** — track recent reports, snow, road access and closure alerts\n- **Mapping and GIS** — export trailhead coordinates for every trail that publishes a location\n- **Recreation research** — compare trail density, length and elevation across 11 regions\n- **Trip-report analysis** — study seasonality, highlights and helpful votes across 288,600 reports\n\n## FAQ\n\n**Is this affiliated with the Washington Trails Association?**\nNo. This is an independent, third-party actor that reads publicly available pages on wta.org. It is not operated by or endorsed by WTA.\n\n**What is the difference between the four modes?**\n`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.\n\n**How many trails and reports are available?**\nWTA 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).\n\n**Why are `lengthMiles`, `rating`, coordinates or features missing on some trails?**\nRoughly 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.\n\n**What is the difference between `reviewCount` and `tripReportCount`?**\n`reviewCount` is the number of community rating votes behind `rating`. `tripReportCount` is the separate count of trip reports published for the trail.\n\n**How do I get coordinates, difficulty and access details?**\nSet `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.\n\n**Do I need an account, cookies or a proxy?**\nNo. The actor uses public WTA pages and works without credentials or proxy setup. `proxyConfiguration` is an optional override only.\n\n**Why does a report search return different reports than a trail's report history?**\n`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.\n\n**How current is the data?**\nEach 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.\n\n**Can I get every trail in one run?**\nYes. 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.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "washington-trails-association-hike-and-trip-report",
      "title": "WTA Washington Trails, Hike Details & Trip Reports",
      "description": "Scrape all 4,278 Washington Trails Association hikes with stats, coordinates, difficulty, passes, alerts and 288,600 trip reports. Filter by region, features, length, rating and more.",
      "version": "1.1",
      "buildTag": "latest",
      "dockerfile": "./Dockerfile",
      "readme": "# WTA Washington Trails, Hike Details & Trip Reports\n\nScrape **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.\n\n## What this actor does\n\n- **Four modes:** `searchTrails`, `getTrailDetails`, `getTripReports`, `searchTripReports`\n- **Complete trail inventory:** all 4,278 WTA hikes, 11 regions and 51 sub-regions, paginated in one run\n- **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\n- **Map search:** radius around a latitude/longitude or a `south,west,north,east` bounding box\n- **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\n- **Detail enrichment:** difficulty, parking pass, land manager, directions, closures and full description\n- **Dual units:** miles/feet from the source plus derived kilometres/metres\n- **Empty fields are omitted** — records never contain `null`, empty strings or empty arrays\n\n## Output per trail\n\n- `recordType` — `\"trail\"`\n- `trailName`, `trailUrl`, `trailId`, `hikeUid`, `trailSlug`\n- `region`, `regionName`, `subregionName`\n- `lengthMiles`, `lengthText`, `lengthKm`, `routeType`\n- `elevationGainFeet`, `elevationGainText`, `elevationGainMeters`\n- `highPointFeet`, `highPointText`, `highPointMeters`\n- `difficulty` — Easy through Hard (detail mode or `fetchDetails`)\n- `rating`, `reviewCount` — community rating and number of rating votes\n- `tripReportCount`, `lastTripReportDate`, `lastTripReportUrl`\n- `features[]` — Lakes, Waterfalls, Mountain views, Summits and other WTA tags\n- `latitude`, `longitude`, `distanceMiles` (radius searches)\n- `parkingPass`, `passes[]`, `landManager`, `directions`\n- `alerts[]`, `hasAlerts` — closures and access warnings checked with the trail\n- `companions[]`, `dogsAllowed`, `dogPolicy`, `kidFriendly`, `wheelchairAccess`\n- `summary`, `description`, `imageUrl`\n- `scrapedAt` — ISO-8601 UTC timestamp\n\n## Output per trip report\n\n- `recordType` — `\"tripReport\"`\n- `tripReportId`, `tripReportUrl`\n- `trailName`, `trailUrl`, `trailId`, `hikeUid`\n- `reportDate`, `region`, `regionName`, `subregionName`\n- `author`, `authorUrl`, `authorBadges[]`\n- `text`, `photoCount`, `imageUrl`, `photoUrls[]`\n- `helpfulCount`, `features[]`\n- `hikeType`, `trailConditions`, `roadConditions`, `bugs`, `snow`\n- `warnings`, `scrapedAt`\n\n`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.\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | select | `searchTrails` | `searchTrails`, `getTrailDetails`, `getTripReports` or `searchTripReports` |\n| `searchQuery` | string | – | Full-text search of hike descriptions (searchTrails, searchTripReports) |\n| `nameQuery` | string | – | Match the hike name only (searchTrails, getTripReports, searchTripReports) |\n| `region` | select | – | All Washington or one of 11 regions |\n| `subregion` | select | `all` | Any of 51 sub-regions; also selects its parent region |\n| `features` | array | `[]` | Require all selected trail features (searchTrails) |\n| `dogPolicy` | select | `any` | `any`, `allowed-on-leash` or `not-allowed` |\n| `kidFriendly` | boolean | `false` | Only kid-friendly trails |\n| `wheelchairFriendly` | boolean | `false` | Only wheelchair-friendly trails |\n| `minRating` | number | – | Minimum average rating (0–5) |\n| `minVoteCount` | integer | – | Minimum number of rating votes |\n| `minLengthMiles` / `maxLengthMiles` | number | – | Trail length range (miles) |\n| `minElevationGainFeet` / `maxElevationGainFeet` | integer | – | Elevation gain range (feet) |\n| `maxHighPointFeet` | integer | – | Maximum highest point (feet) |\n| `passes` | array | `[]` | Keep trails requiring at least one selected pass |\n| `reportRecency` | select | `anytime` | `anytime`, `30-to-90-days` or `90-plus-days` |\n| `sortBy` | select | `recently-updated` | Recently updated, rating, difficulty, distance, gain, high point or name |\n| `latitude`, `longitude`, `radiusMiles` | numbers | – | Radius search; all three are required together |\n| `boundingBox` | string | – | `south,west,north,east`; takes priority over radius |\n| `trailUrls` | array | `[]` | WTA URLs, `/go-hiking/hikes/<slug>` paths or bare slugs |\n| `fetchDetails` | boolean | `false` | Add detail-page fields per trail |\n| `author` | string | – | Report author username (searchTripReports) |\n| `tripDateFrom` / `tripDateTo` | string | – | Report date range, YYYY-MM-DD |\n| `tripMonth` | select | `all` | All months or January–December |\n| `hikeTypes` | array | `[]` | Day hike, overnight, multi-night backpack, snowshoe/XC ski |\n| `reportFeatures` | array | `[]` | Has photos, hiked by kids, hiked with a dog, work party |\n| `reportHighlights` | array | `[]` | Wildflowers, fall foliage, ripe berries |\n| `trailConditions` | array | `[]` | Good, difficult, bugs okay, snow free, snow on trail |\n| `roadConditions` | array | `[]` | All vehicles, high clearance, impassable |\n| `fetchReportDetails` | boolean | `false` | Open each report page for conditions and photo URLs |\n| `tripReportsPerTrail` | integer | `5` | Recent reports per trail (getTripReports) |\n| `includeReportText` | boolean | `false` | Attach text and tags to recent reports |\n| `maxItems` | integer | `50` | Hard cap on emitted records (1–10,000) |\n| `proxyConfiguration` | object | – | Optional override; the actor works without a proxy |\n\n### Example: browse a region with hiking filters\n\n```json\n{\n  \"mode\": \"searchTrails\",\n  \"region\": \"Snoqualmie Region\",\n  \"features\": [\"Waterfalls\", \"Lakes\"],\n  \"minLengthMiles\": 3,\n  \"maxLengthMiles\": 10,\n  \"minRating\": 4,\n  \"maxItems\": 40\n}\n```\n\n### Example: full details for specific trails\n\n```json\n{\n  \"mode\": \"getTrailDetails\",\n  \"trailUrls\": [\n    \"https://www.wta.org/go-hiking/hikes/mount-si\",\n    \"snow-lake-1\"\n  ]\n}\n```\n\n### Example: reports near a map point\n\n```json\n{\n  \"mode\": \"searchTrails\",\n  \"latitude\": 47.4880,\n  \"longitude\": -121.7231,\n  \"radiusMiles\": 25,\n  \"maxItems\": 25\n}\n```\n\n### Example: recent trip reports with conditions\n\n```json\n{\n  \"mode\": \"searchTripReports\",\n  \"region\": \"Snoqualmie Region\",\n  \"tripDateFrom\": \"2026-09-01\",\n  \"reportFeatures\": [\"has-photos\"],\n  \"fetchReportDetails\": true,\n  \"maxItems\": 30\n}\n```\n\n### Example: report history for one trail\n\n```json\n{\n  \"mode\": \"getTripReports\",\n  \"trailUrls\": [\"https://www.wta.org/go-hiking/hikes/mount-si\"],\n  \"tripReportsPerTrail\": 10,\n  \"includeReportText\": true\n}\n```\n\n## Use cases\n\n- **Trip planning** — shortlist hikes by region, distance, gain, rating, dog rules and required pass\n- **Outdoor publishing** — build a Washington hiking guide with descriptions, difficulty and photos\n- **Trail-condition monitoring** — track recent reports, snow, road access and closure alerts\n- **Mapping and GIS** — export trailhead coordinates for every trail that publishes a location\n- **Recreation research** — compare trail density, length and elevation across 11 regions\n- **Trip-report analysis** — study seasonality, highlights and helpful votes across 288,600 reports\n\n## FAQ\n\n**Is this affiliated with the Washington Trails Association?**\nNo. This is an independent, third-party actor that reads publicly available pages on wta.org. It is not operated by or endorsed by WTA.\n\n**What is the difference between the four modes?**\n`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.\n\n**How many trails and reports are available?**\nWTA 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).\n\n**Why are `lengthMiles`, `rating`, coordinates or features missing on some trails?**\nRoughly 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.\n\n**What is the difference between `reviewCount` and `tripReportCount`?**\n`reviewCount` is the number of community rating votes behind `rating`. `tripReportCount` is the separate count of trip reports published for the trail.\n\n**How do I get coordinates, difficulty and access details?**\nSet `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.\n\n**Do I need an account, cookies or a proxy?**\nNo. The actor uses public WTA pages and works without credentials or proxy setup. `proxyConfiguration` is an optional override only.\n\n**Why does a report search return different reports than a trail's report history?**\n`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.\n\n**How current is the data?**\nEach 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.\n\n**Can I get every trail in one run?**\nYes. 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.\n",
      "input": {
        "title": "WTA Washington Trails Scraper Input",
        "description": "Search 4,278 Washington Trails Association hikes, fetch trail details, or stream trail-level and global trip reports.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Mode",
            "type": "string",
            "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"
            ],
            "default": "searchTrails",
            "prefill": "searchTrails"
          },
          "searchQuery": {
            "title": "Full-text query",
            "type": "string",
            "description": "Free-text search of WTA hike descriptions (modes searchTrails, searchTripReports).",
            "editor": "textfield"
          },
          "nameQuery": {
            "title": "Hike name",
            "type": "string",
            "description": "Match the hike name only (modes searchTrails, getTripReports, searchTripReports).",
            "editor": "textfield"
          },
          "region": {
            "title": "Region",
            "type": "string",
            "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"
          },
          "subregion": {
            "title": "Sub-region",
            "type": "string",
            "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"
            ],
            "default": "all",
            "prefill": "all"
          },
          "features": {
            "title": "Trail features",
            "type": "array",
            "description": "Require all selected features (mode searchTrails). Empty = no feature filter.",
            "editor": "select",
            "items": {
              "type": "string",
              "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"
              ]
            },
            "uniqueItems": true,
            "default": [],
            "prefill": []
          },
          "dogPolicy": {
            "title": "Dog policy",
            "type": "string",
            "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"
            ],
            "default": "any",
            "prefill": "any"
          },
          "kidFriendly": {
            "title": "Good for kids",
            "type": "boolean",
            "description": "Only kid-friendly trails (mode searchTrails).",
            "default": false,
            "prefill": false
          },
          "wheelchairFriendly": {
            "title": "Wheelchair friendly",
            "type": "boolean",
            "description": "Only wheelchair-friendly trails (mode searchTrails).",
            "default": false,
            "prefill": false
          },
          "minRating": {
            "title": "Minimum rating",
            "type": "number",
            "description": "Minimum average community rating, 0–5 (mode searchTrails).",
            "minimum": 0,
            "maximum": 5
          },
          "minVoteCount": {
            "title": "Minimum rating votes",
            "type": "integer",
            "description": "Minimum number of rating votes (mode searchTrails; applied after the listing fetch).",
            "minimum": 0,
            "maximum": 100000
          },
          "minLengthMiles": {
            "title": "Minimum length (miles)",
            "type": "number",
            "description": "Only trails at least this long (mode searchTrails). Trails with unknown length are excluded.",
            "minimum": 0,
            "maximum": 200
          },
          "maxLengthMiles": {
            "title": "Maximum length (miles)",
            "type": "number",
            "description": "Only trails at most this long (mode searchTrails). Trails with unknown length are excluded.",
            "minimum": 0,
            "maximum": 200
          },
          "minElevationGainFeet": {
            "title": "Minimum elevation gain (ft)",
            "type": "integer",
            "description": "Only trails with at least this gain (mode searchTrails). Unknown gain is excluded.",
            "minimum": 0,
            "maximum": 30000
          },
          "maxElevationGainFeet": {
            "title": "Maximum elevation gain (ft)",
            "type": "integer",
            "description": "Only trails with at most this gain (mode searchTrails). Unknown gain is excluded.",
            "minimum": 0,
            "maximum": 30000
          },
          "maxHighPointFeet": {
            "title": "Maximum high point (ft)",
            "type": "integer",
            "description": "Only trails whose highest point is at most this elevation (mode searchTrails).",
            "minimum": 0,
            "maximum": 15000
          },
          "passes": {
            "title": "Required pass",
            "type": "array",
            "description": "Keep trails that require at least one selected pass (mode searchTrails). Empty = no pass filter.",
            "editor": "select",
            "items": {
              "type": "string",
              "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"
              ]
            },
            "uniqueItems": true,
            "default": [],
            "prefill": []
          },
          "reportRecency": {
            "title": "Trip-report recency",
            "type": "string",
            "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"
            ],
            "default": "anytime",
            "prefill": "anytime"
          },
          "sortBy": {
            "title": "Sort by",
            "type": "string",
            "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)"
            ],
            "default": "recently-updated",
            "prefill": "recently-updated"
          },
          "latitude": {
            "title": "Latitude",
            "type": "number",
            "description": "Center latitude for a radius search (mode searchTrails). Requires longitude and radiusMiles.",
            "minimum": -90,
            "maximum": 90
          },
          "longitude": {
            "title": "Longitude",
            "type": "number",
            "description": "Center longitude for a radius search (mode searchTrails). Requires latitude and radiusMiles.",
            "minimum": -180,
            "maximum": 180
          },
          "radiusMiles": {
            "title": "Radius (miles)",
            "type": "number",
            "description": "Search radius in miles (mode searchTrails).",
            "minimum": 1,
            "maximum": 200
          },
          "boundingBox": {
            "title": "Bounding box",
            "type": "string",
            "description": "Map area as `south,west,north,east` (mode searchTrails). Takes priority over latitude/longitude/radius.",
            "editor": "textfield"
          },
          "trailUrls": {
            "title": "Trail URLs or slugs",
            "type": "array",
            "description": "WTA hike URLs, /go-hiking/hikes/<slug> paths, or bare slugs (modes getTrailDetails, getTripReports).",
            "editor": "stringList",
            "default": [],
            "prefill": []
          },
          "fetchDetails": {
            "title": "Fetch trail details",
            "type": "boolean",
            "description": "Add difficulty, description, parking pass, land manager, directions, alerts and trip-report count with one detail page per trail (modes searchTrails, getTripReports).",
            "default": false,
            "prefill": false
          },
          "author": {
            "title": "Report author",
            "type": "string",
            "description": "Exact WTA author username (mode searchTripReports).",
            "editor": "textfield"
          },
          "tripDateFrom": {
            "title": "Report date from",
            "type": "string",
            "description": "Earliest trip date, YYYY-MM-DD (mode searchTripReports).",
            "editor": "textfield"
          },
          "tripDateTo": {
            "title": "Report date to",
            "type": "string",
            "description": "Latest trip date, YYYY-MM-DD (mode searchTripReports).",
            "editor": "textfield"
          },
          "tripMonth": {
            "title": "Month",
            "type": "string",
            "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"
            ],
            "default": "all",
            "prefill": "all"
          },
          "hikeTypes": {
            "title": "Hike types",
            "type": "array",
            "description": "Keep reports matching any selected hike type (mode searchTripReports).",
            "editor": "select",
            "items": {
              "type": "string",
              "enum": [
                "day-hike",
                "overnight",
                "multi-night-backpack",
                "snowshoe-xc-ski"
              ],
              "enumTitles": [
                "Day hike",
                "Overnight",
                "Multi-night backpack",
                "Snowshoe / XC ski"
              ]
            },
            "uniqueItems": true,
            "default": [],
            "prefill": []
          },
          "reportFeatures": {
            "title": "Report features",
            "type": "array",
            "description": "Keep reports matching any selected feature (mode searchTripReports).",
            "editor": "select",
            "items": {
              "type": "string",
              "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"
              ]
            },
            "uniqueItems": true,
            "default": [],
            "prefill": []
          },
          "reportHighlights": {
            "title": "Report highlights",
            "type": "array",
            "description": "Keep reports mentioning any selected highlight (mode searchTripReports).",
            "editor": "select",
            "items": {
              "type": "string",
              "enum": [
                "wildflowers-blooming",
                "fall-foliage",
                "ripe-berries"
              ],
              "enumTitles": [
                "Wildflowers blooming",
                "Fall foliage",
                "Ripe berries"
              ]
            },
            "uniqueItems": true,
            "default": [],
            "prefill": []
          },
          "trailConditions": {
            "title": "Trail conditions",
            "type": "array",
            "description": "Keep reports matching any selected trail condition (mode searchTripReports).",
            "editor": "select",
            "items": {
              "type": "string",
              "enum": [
                "good",
                "difficult",
                "bugs-ok",
                "snow-free",
                "snow-on-trail"
              ],
              "enumTitles": [
                "Good",
                "Difficult",
                "Bugs okay",
                "Snow free",
                "Snow on trail"
              ]
            },
            "uniqueItems": true,
            "default": [],
            "prefill": []
          },
          "roadConditions": {
            "title": "Road conditions",
            "type": "array",
            "description": "Keep reports matching any selected road condition (mode searchTripReports).",
            "editor": "select",
            "items": {
              "type": "string",
              "enum": [
                "all-vehicles",
                "high-clearance",
                "impassable"
              ],
              "enumTitles": [
                "All vehicles",
                "High clearance",
                "Impassable"
              ]
            },
            "uniqueItems": true,
            "default": [],
            "prefill": []
          },
          "fetchReportDetails": {
            "title": "Fetch report details",
            "type": "boolean",
            "description": "Open each report page for trail URL, hike type, trail/road/bug/snow conditions and full photo URLs (mode searchTripReports).",
            "default": false,
            "prefill": false
          },
          "tripReportsPerTrail": {
            "title": "Reports per trail",
            "type": "integer",
            "description": "Recent reports to include per trail (mode getTripReports).",
            "minimum": 1,
            "maximum": 50,
            "default": 5,
            "prefill": 3
          },
          "includeReportText": {
            "title": "Include report text",
            "type": "boolean",
            "description": "Attach full text and tags to the recent reports (mode getTripReports; up to 5 per trail).",
            "default": false,
            "prefill": false
          },
          "maxItems": {
            "title": "Max items",
            "type": "integer",
            "description": "Hard cap on emitted records.",
            "minimum": 1,
            "maximum": 10000,
            "default": 50,
            "prefill": 3
          },
          "proxyConfiguration": {
            "title": "Proxy configuration (optional)",
            "type": "object",
            "description": "Optional override. The actor works without any proxy.",
            "editor": "proxy"
          }
        },
        "required": [
          "mode"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "WTA Washington Trails, Hike Details & Trip Reports Output",
        "description": "Washington Trails Association hikes and trip reports with distance, elevation, difficulty, coordinates, access details and conditions.",
        "properties": {
          "trails": {
            "type": "string",
            "title": "WTA trails & trip reports",
            "description": "Dataset containing scraped WTA trail records and trip-report records.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "defaultMemoryMbytes": 1024,
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "WTA trails & trip reports",
              "transformation": {
                "fields": [
                  "trailName",
                  "region",
                  "lengthMiles",
                  "elevationGainFeet",
                  "difficulty",
                  "rating",
                  "reviewCount",
                  "tripReportCount",
                  "latitude",
                  "longitude",
                  "trailUrl"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            }
          }
        }
      },
      "environmentVariables": {}
    },
    "buildNumber": "1.1.2",
    "imageDigest": "452a28fd899fc5340b9637c580e99725bf952ae7028d0601894ae14a68b2423f",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.1"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.004781111111111111
    }
  }
}