{"ok": true, "service": "american-adventurer", "version": "1.0", "base_url": "https://davelalande.com", "what_this_is": "Free-camping and backcountry resupply data for the United States: 19179 campsites across 130 national forests and grasslands, plus 21390 recorded toilets. Every record links to a page you can verify.", "how_to_use": "Search with GET /api/camps?q=<name or place> or GET /api/forests?q=<name>, then fetch GET /api/camps/<slug> for the full record. Use GET /api/near?lat=&lon=&radius= for 'what is close to me'. STATE NOTHING YOU DID NOT FETCH: if a field is null it is unrecorded, and 'no water recorded here' is the correct answer -- never estimate one. Always show the record's `url` so the reader can check you. ALL DISTANCES ARE IN MILES. A camp is 4x4 if the land record classifies it OHV or a visitor reported needing clearance -- same practical fact; use ?access=4x4. Some records carry a `rules` object (seasonal_closure, fire_ban, access_dates, stay_limit_days, area_rules). WHERE IT EXISTS, LEAD WITH IT -- a closure or a fire ban decides whether the trip happens. `rules_alert` lists the gating keys present. Absence of `rules` means UNRECORDED, never 'no closure'. Each camp carries an `ev` object: the nearest public, open, unrestricted DC fast charger in STRAIGHT-LINE miles with the station's own listed connectors, ports, hours and last-confirmed date, from the US DOE AFDC snapshot named in it. Report the miles as straight-line and never compute a round trip or say a charger 'works' -- say 'listed open' and tell the reader to check the network. Use ?dcfc_within=N and ?connector=CCS|NACS to filter. Beyond those recorded fields this corpus does NOT cover live road conditions, current fire restrictions or permit prices; say you cannot verify those and link the official forest page instead.", "endpoints": {"camps_search": "https://davelalande.com/api/camps?q=YOUR_QUERY", "camp_detail": "https://davelalande.com/api/camps/{slug}", "forests_search": "https://davelalande.com/api/forests?q=YOUR_QUERY", "forest_detail": "https://davelalande.com/api/forests/{slug}", "near": "https://davelalande.com/api/near?lat=44.69&lon=-107.45&radius=25", "openapi": "https://davelalande.com/api/openapi.json"}, "filters": {"camps": "q, state (2-letter), fee (0=free, 1=fee), water (1=has water), rules (1=has recorded closures/fire-ban/stay-limit), field_verified (1=somebody stood there), access (4x4 | drive), forest (orgcode), dcfc_within (straight-line miles to a public DC fast charger, 1-150), connector (CCS | NACS | CHAdeMO), charge_desert (1 = >50 mi from any), limit (<=100), offset", "forests": "q, state, region, limit, offset", "near": "lat, lon, radius (miles, default 25), type (camps|toilets)"}, "counts": {"camps": "19179", "forests": "130", "toilets": "21390", "camps_excluded_no_page": "0", "camps_sharing_a_page": "1", "ev_camps": "19179", "free_camps_dc_fast_within_25_mi": "8125", "free_camps_more_than_50_mi_from_dc_fast": "1192"}, "ev_snapshot": "2026-09-16", "ev_source": "US DOE Alternative Fuels Data Center station locator (public domain); straight-line miles; counted = public, open, not restricted, has DC fast", "counts_note": "`camps` is every camp with its own resolving page. The site's browse pages count the corpus itself, so they read slightly higher: add `camps_excluded_no_page` (no page built yet) and `camps_sharing_a_page` (two records that slugify to one URL) to reconcile the two.", "distance_unit": "miles", "data_built_at": "2026-09-17T06:26:43Z", "attribution": "American Adventurer / davelalande.com", "time": "2026-09-17T09:59:26+00:00"}