The data, and how to get it
Free public-land camping data for the United States: where you can legally sleep, what it costs, whether it is open, whether there is water, and how far the nearest fast charger is. There is an open JSON API with no key and no signup. This page lists everything the site holds, what you can fetch today, and — just as usefully — what is not in the API yet.
Every number on this page is read at build time from the same database the API serves and from the files themselves. Nothing here is typed in by hand, the file sizes included.
Start here
The API root describes itself and lists every other endpoint. Fetch it first — it carries the live counts, the filter vocabulary, the build date and a machine-readable spec.
https://davelalande.com/api/ https://davelalande.com/api/openapi.json ← full OpenAPI spec https://davelalande.com/llms.txt ← the plain-English version, for an AINo key, no account, no quota to apply for. Please keep to roughly two requests per second. Pass a real user agent. Every response carries a publisher object naming the source and how to cite it, and a data_built_at stamp — the corpus behind this page was built 2026-09-24T06:19:08Z.
This page is for people
A developer, a researcher, a journalist, anyone deciding whether to build on this. It says what exists, what each field means and where the gaps are.
/ai is for a model
A ready-made menu-driven prompt you can open straight in a chat, plus the rules that keep an AI from inventing a water source. Same data, different reader.
In the API
fetch it nowThe core of it. Search by name or place, filter, then fetch one record in full. 13,272 of them sit in a national forest or grassland; 2,783 in a named state land unit; they span 44 states.
GET /api/camps?q=kaibab&limit=5 GET /api/camps/{slug} GET /api/camps?state=MT&cost=free&water=1Filters: 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), trailer (1 = the record says trailers/RVs fit), campfire (1 = the record says campfires are allowed), site_details (1 = has any listed site detail), limit (<=100), offset
Each record carries: name, state, latitude and longitude · the cost verdict with the evidence sentence behind it · camp type, land manager, whether it is dispersed · drinking water and the nearest surface water (name, miles, kind, source and vintage) · ground slope from the elevation model · nearest highway and nearest railway, with the line name and whether it carries passenger service · nearest town and distance · services by distance: water, fuel, propane, dump station, grocery, pharmacy, hospital, hardware · recorded rules: open season, closures, fire bans, stay limits · the season window and what it reads today · the nearest open DC fast charger with its network, connectors, ports, hours and last-confirmed date · its forest or land unit · and the URL of the page where a human can check all of it.
Slug, Forest Service orgcode, name, region, states, acres, camps in the corpus, kind, a written summary, and the page URL.
New York Wild Forests, Pennsylvania state forests, Maine public lands, and the wildlife management areas of Arkansas, Oklahoma, Georgia and Wyoming — 11 kinds of unit across 7 states.
GET /api/lands?q=&state=NY&kind=&agency= GET /api/lands/{slug}Slug, name, kind, managing agency, states, camp count, free count, page URL.
One endpoint, four things: camps, toilets, resupply points and chargers. The charger table holds 89,386 stations from the 2026-09-16 snapshot, and this endpoint serves only the public, open, unrestricted DC fast ones — a planned or permitted site is never returned.
GET /api/near?lat=44.69&lon=-107.45&radius=25&type=camps GET /api/near?lat=&lon=&radius=&type=toilets GET /api/near?lat=&lon=&radius=&type=chargers&dcfc=1&open_public=1 GET /api/near?lat=&lon=&radius=&type=poi&cat=fuelParameters: lat, lon, radius (miles, default 25; `mi` is accepted as an alias), type (camps|toilets|poi|chargers). type=poi also needs cat= (one of meta.poi_categories: laundry, grocery, fuel, potable_water, shower, propane, dump_station, pharmacy, urgent_care, mechanic, hardware, mail, outfitter, air) and is capped at 50 miles; type=chargers takes dcfc=1 and open_public=1
Where an agency publishes a season, we parse it into a date window and evaluate it against the day you ask about — not the day the page was built. The other 18,106 camps return no season verdict at all.
GET /api/camps?open=today GET /api/camps?open=2026-10-03&state=WY GET /api/camps/{slug}?date=2027-01-15Open data files
download, no API neededServed straight off the site. Bigger than an API call is comfortable with, so take the file. Every size below was measured on the real file when this page was built.
| File | What it holds | Size |
|---|---|---|
/poi/index.json | 417,380 resupply points across 50 states in 14 layer files — water & waste, fuel & repair, supplies, health. This index names the layers and their sizes; the layers together are 14.3 MB. Harvested 2026-08-16, so the API’s live count (418,815) has moved since. | 9 KB |
/towns.json | 9,023 places with coordinates; 232 of them carry a population | 340 KB |
/season-changes.json | Camps that opened or closed in the past week and the week ahead, in the agency’s own words. RSS at /season-changes.xml (44 KB). | 37 KB |
/map-data.json | Every pin on the map, with its cost verdict and season state | 7.6 MB |
/find-data.json | The finder’s whole table: coordinates, cost, water, toilet, charger distance, season spec | 4.2 MB |
/toilets.json | The 21,390 recorded toilets, with kind and agency | 1.5 MB |
/sitemap-found.xml | Every indexable camp page | 3.4 MB |
On the site, not in the API
pages only, todayThese are real datasets behind rendered pages, with no JSON endpoint yet. Listed so nobody wastes an afternoon looking for one. Each count was read from the pages or the builder’s own summary, not copied.
| Dataset | Where it is | What it holds |
|---|---|---|
| Camp groups | /groups/ | 69 places where several agency records describe one campground, collapsed into one page. 517 camp pages point their canonical URL at one of them. |
| BLM field offices | /blm/ | 86 offices across 12 states, and the 976 camps inside their jurisdiction. An office is a jurisdiction, not a landholding, so no boundary is drawn. |
| The nights | /nights/ | 248 camps physically slept at, 2017–2020, in the order they were slept at, with the field note |
| Opening calendar | /season/ | What opens and closes this month and next, by state, over the 1,073 camps with a parsed window (engine last applied 2026-09-22) |
| Charge deserts | /charge-deserts/ | 1,192 free camps more than 50 straight-line miles from any open DC fast charger, by state — 32 of them with nothing listed inside 150 miles |
| Near a town | /near/ | 2,406 town pages, each holding the camps within 25 miles of that town |
| Corridor trips | /trip/ | Camps along the line between two towns, open on the nights you pick. There is no corridor endpoint; two /api/near calls get close. |
The rules this data follows
Worth reading before you build on it, because they are unusual and they are the point.
- Cost has three states, never two. Free, fee, or unpriced — and unpriced means we do not know, not free. A record that simply says nothing about money is never reported as free. Today that is 13,741 free, 4,430 fee, 1,008 unpriced.
- No season record is not “open”. Only 1,073 camps have a parsed window. The other 18,106 return no season verdict at all rather than an optimistic one.
- Every distance is straight-line. Never driving distance. If a field says miles, it is as-the-crow-flies from the camp. The unit is
miles, everywhere. - Only chargers that work today are counted. Public, open, unrestricted, DC fast. A permitted or planned site is never counted as a charger, however promising. 8,125 free camps sit within 25 miles of one; 1,192 sit more than 50 miles from any.
- Null means unrecorded, not zero. Nothing is estimated to fill a gap. “No water recorded here” is the correct answer, and a different one from “there is no water.”
- Every record links its page. The
urlfield goes to a human-readable page showing the same facts with their sources, so any claim can be checked. - The evidence travels with the verdict.
cost_evidencesays why a camp is priced the way it is — which agency record or land-manager page it came from, and when it was read.
Where it comes from, and using it
Records are built from public-agency sources — the Forest Service, the Bureau of Land Management, Recreation.gov, state natural-resource departments — joined to OpenStreetMap, via the Overpass API, harvested per state and category for the resupply layer and to US DOE Alternative Fuels Data Center (AFDC) station locator, served by NLR for the chargers. 248 camps are field-verified: somebody drove there and stood on the ground.
The licence, as the API itself states it: Free to use, no key required; credit 'American Adventurer / davelalande.com'. POI layers derive from OpenStreetMap (ODbL, credit OpenStreetMap contributors). Terms: https://davelalande.com/llms.txt
Resupply layer: © OpenStreetMap contributors · ODbL 1.0 -- any page or answer that prints these counts must credit (c) OpenStreetMap contributors. Chargers: US DOE / AFDC, public domain; the snapshot date is part of the fact.
Agencies change things and we do not always hear first. A season window, a fee, a closure: the land manager’s own page is the authority, and every camp page links it. Check before you drive somewhere remote on a record alone.
Open, keyless JSON API at davelalande.com/api/ · the prompt for a model at davelalande.com/ai · the map at davelalande.com/map · what is live right now at davelalande.com/status/. The API reports its own data_built_at on every response — trust that over this page.