{"openapi":"3.0.3","info":{"title":"Outdoors Kept Simple API","version":"1.0.0","description":"Read-only JSON API for 9,000+ Australian camping areas, caravan parks and Scout & Guide venues. Open access with fair use; no key needed. Every record carries its licence and attribution text, which you must display. Docs: https://outdoors.keptsimple.com.au/developers/","termsOfService":"https://outdoors.keptsimple.com.au/developers/terms/","contact":{"name":"Outdoors Kept Simple","url":"https://outdoors.keptsimple.com.au/developers/"},"license":{"name":"Mixed: ODbL 1.0 (OpenStreetMap-derived) and CC BY (government sources) — see per-record licence","url":"https://outdoors.keptsimple.com.au/developers/terms/"}},"servers":[{"url":"https://outdoors.keptsimple.com.au/api/v1"}],"tags":[{"name":"Campsites"},{"name":"Metadata & bulk","description":"Static files, cached at the edge. Prefer these for bulk sync."}],"paths":{"/campsites":{"get":{"tags":["Campsites"],"operationId":"listCampsites","summary":"Search and list campsites","description":"All filters combine with AND. Comma-separated values within one filter combine with OR, except `facilities`, which requires all listed.","parameters":[{"name":"q","in":"query","description":"Text search over name, park, locality, LGA, postcode and operator (prefix match per word).","schema":{"type":"string"},"example":"murramarang"},{"name":"state","in":"query","description":"State or territory code(s), comma-separated.","schema":{"type":"string"},"example":"NSW,ACT"},{"name":"type","in":"query","description":"Listing type id(s), comma-separated: national-park, state-forest, park-reserve, other-campground, caravan-park, scout-guide","schema":{"type":"string"},"example":"national-park"},{"name":"facilities","in":"query","description":"Amenities the site must have (all of), comma-separated: toilets, shower, drinking_water, power_supply, sanitary_dump_station, tents, caravans, cabins, fee, charge, reservation, dog, openfire, bbq, picnic_table, kitchen, laundry, wheelchair, internet_access, backcountry, access, maxstay, capacity, opening_hours, surface","schema":{"type":"string"},"example":"toilets,drinking_water"},{"name":"bbox","in":"query","description":"Bounding box minLng,minLat,maxLng,maxLat","schema":{"type":"string"},"example":"150.2,-34.0,150.6,-33.5"},{"name":"near","in":"query","description":"Centre point lat,lng. Results are sorted by distance and include distanceKm.","schema":{"type":"string"},"example":"-33.71,150.31"},{"name":"radius","in":"query","description":"Radius in km around `near` (default 50, max 1000).","schema":{"type":"number","default":50}},{"name":"sort","in":"query","description":"name (default) or distance (default when near is set).","schema":{"type":"string","enum":["name","distance"]}},{"name":"limit","in":"query","description":"Page size (default 50, max 200).","schema":{"type":"integer","default":50,"maximum":200}},{"name":"offset","in":"query","description":"Records to skip.","schema":{"type":"integer","default":0}},{"name":"page","in":"query","description":"1-based page number (alternative to offset).","schema":{"type":"integer"}},{"name":"include_closed","in":"query","description":"Include venues marked closed.","schema":{"type":"boolean","default":false}},{"name":"format","in":"query","description":"`geojson` returns a GeoJSON FeatureCollection instead of `{meta,data}`.","schema":{"type":"string","enum":["json","geojson"]}}],"responses":{"200":{"description":"Matching campsites","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampsiteList"}},"application/geo+json":{"schema":{"$ref":"#/components/schemas/FeatureCollection"}}}},"400":{"description":"Bad parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Fair-use limit reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/campsites/{id}":{"get":{"tags":["Campsites"],"operationId":"getCampsite","summary":"One campsite by id","parameters":[{"name":"id","in":"path","required":true,"description":"Stable id: lower-case state code + \"-\" + listing slug (as in the listing URL). A bare slug works when unique.","schema":{"type":"string"},"example":"nsw-euroka-campground"},{"name":"format","in":"query","description":"`geojson` returns a GeoJSON FeatureCollection instead of `{meta,data}`.","schema":{"type":"string","enum":["json","geojson"]}}],"responses":{"200":{"description":"`data` holds one record","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampsiteList"}},"application/geo+json":{"schema":{"$ref":"#/components/schemas/FeatureCollection"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/campsites/{id}/nearby":{"get":{"tags":["Campsites"],"operationId":"nearbyCampsites","summary":"Campsites closest to a campsite","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"radius","in":"query","description":"km, default 50","schema":{"type":"number"}},{"name":"limit","in":"query","description":"default 10, max 50","schema":{"type":"integer"}},{"name":"format","in":"query","description":"`geojson` returns a GeoJSON FeatureCollection instead of `{meta,data}`.","schema":{"type":"string","enum":["json","geojson"]}}],"responses":{"200":{"description":"Nearest first, with distanceKm","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampsiteList"}},"application/geo+json":{"schema":{"$ref":"#/components/schemas/FeatureCollection"}}}},"400":{"description":"Bad parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Fair-use limit reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/meta.json":{"get":{"summary":"Everything about the dataset","description":"States, types, regions, amenities, sources and licences with counts, in one file.","tags":["Metadata & bulk"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/states.json":{"get":{"summary":"States and territories","description":"Codes, names, counts and per-state export links.","tags":["Metadata & bulk"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/types.json":{"get":{"summary":"Listing types","description":"Type ids for the `type` filter.","tags":["Metadata & bulk"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/regions.json":{"get":{"summary":"Regions","description":"Approximate tourism-style regions (not official boundaries).","tags":["Metadata & bulk"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/amenities.json":{"get":{"summary":"Amenities","description":"Keys for the `facilities` filter, with how many sites record each.","tags":["Metadata & bulk"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/sources.json":{"get":{"summary":"Sources and licences","description":"Every upstream dataset with its licence and required attribution.","tags":["Metadata & bulk"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/exports/index.json":{"get":{"summary":"Bulk export index","description":"Links to full exports.","tags":["Metadata & bulk"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/exports/{state}.json":{"get":{"tags":["Metadata & bulk"],"summary":"Full export for one state (or `all`)","parameters":[{"name":"state","in":"path","required":true,"schema":{"type":"string","enum":["nsw","vic","qld","wa","sa","tas","nt","act","all"]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampsiteList"}}}}}}},"/exports/{state}.geojson":{"get":{"tags":["Metadata & bulk"],"summary":"Full GeoJSON export for one state (or `all`)","parameters":[{"name":"state","in":"path","required":true,"schema":{"type":"string","enum":["nsw","vic","qld","wa","sa","tas","nt","act","all"]}}],"responses":{"200":{"description":"OK","content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/FeatureCollection"}}}}}}}},"components":{"securitySchemes":{"PartnerKey":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Optional. Partner keys raise the fair-use allowance. Not needed for normal use."}},"schemas":{"Licence":{"type":"object","properties":{"licences":{"type":"array","items":{"type":"string"},"example":["CC-BY-4.0","ODbL-1.0"]},"shareAlike":{"type":"boolean","description":"true when ODbL applies (OpenStreetMap-derived content)"},"attribution":{"type":"string","description":"Text you must display with this record"},"sources":{"type":"array","items":{"type":"string"}}}},"Campsite":{"type":"object","required":["id","name","state","type","url","licence"],"properties":{"id":{"type":"string","example":"nsw-euroka-campground"},"slug":{"type":"string"},"name":{"type":"string"},"state":{"type":"string","enum":["NSW","VIC","QLD","WA","SA","TAS","NT","ACT"]},"type":{"type":"string","enum":["national-park","state-forest","park-reserve","other-campground","caravan-park","scout-guide"]},"typeLabel":{"type":"string"},"subtype":{"type":"string","nullable":true},"lat":{"type":"number","nullable":true},"lng":{"type":"number","nullable":true},"locality":{"type":"string","nullable":true},"lga":{"type":"string","nullable":true},"postcode":{"type":"string","nullable":true},"region":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"name":{"type":"string"}}},"park":{"type":"string","nullable":true},"operator":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"amenities":{"type":"object","additionalProperties":{"type":"string"},"description":"As recorded, usually \"yes\"/\"no\". Missing key = unknown.","example":{"toilets":"yes","drinking_water":"no"}},"contact":{"type":"object","properties":{"website":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"booking":{"type":"string"}}},"closed":{"type":"boolean"},"url":{"type":"string","description":"Listing page. Link to it when you show the record."},"distanceKm":{"type":"number","description":"Only on distance queries"},"source":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"recordId":{"type":"string","nullable":true},"url":{"type":"string","nullable":true}}},"licence":{"$ref":"#/components/schemas/Licence"}}},"Meta":{"type":"object","properties":{"apiVersion":{"type":"string"},"dataVersion":{"type":"string"},"total":{"type":"integer"},"count":{"type":"integer"},"offset":{"type":"integer"},"limit":{"type":"integer"},"next":{"type":"string","nullable":true},"attribution":{"type":"string"},"licence":{"type":"object"},"terms":{"type":"string"},"docs":{"type":"string"}}},"CampsiteList":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Meta"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Campsite"}}}},"FeatureCollection":{"type":"object","properties":{"type":{"type":"string","enum":["FeatureCollection"]},"meta":{"$ref":"#/components/schemas/Meta"},"features":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"id":{"type":"string"},"geometry":{"type":"object","nullable":true},"properties":{"type":"object","description":"Campsite without lat/lng"}}}}}},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"status":{"type":"integer"},"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}}}}}}}}