parks-v8

Get Park

Get a specific park by ID (v8 — full schema, no freeze).

get/api/v8/parks/{park_id}

Request

  • Base URL: https://api.alert.camp (the document declares no server; this is the origin it was published from)
  • URL: https://api.alert.camp/api/v8/parks/{park_id}
  • Auth: none declared

Path parameters

park_idstring required

Response

Successful Response

idstring required
namestring required
providerstring
camp_typesstring[]
website_urlstring nullable required
is_activeboolean required
is_hotboolean
hot_camp_typesstring[]

Subset of camp_types that has at least one active hot_site. Used by the mobile picker / activity step in hotspot mode to show only the activity buckets that will actually trigger notifications. Empty when the park has no active hot_sites.

latitudenumber nullable

Latitude in decimal degrees (WGS84). NULL for parks whose upstream provider doesn't expose coordinates.

longitudenumber nullable

Longitude in decimal degrees (WGS84). NULL for parks whose upstream provider doesn't expose coordinates.

campground_countinteger

Number of bookable areas inside this park. Powers the federated park-discovery picker's bottom-sheet metadata so the user can see park 'size' before committing to the wizard. UNCHANGED and still the TOTAL — see wilderness_count, which says how many of these are wilderness rather than campgrounds.

site_countinteger

Number of active bookable sites in this park. A park with exactly ONE (an Alpine Club of Canada hut) has nothing to choose, so the mobile wizard skips its accommodations step. Additive: older clients ignore it.

wilderness_countinteger

How many of campground_count are WILDERNESS rather than campgrounds — a backcountry permit or zone, which the card used to call a campground (Wichita Mountains' 'three campgrounds' were two campgrounds and a one-site wilderness permit). Always <= campground_count, and counted at the same level: by zone for a parks-as-campgrounds tenant, by campground otherwise, so the two numbers add up. An area holding both kinds counts as whichever it mostly is. Additive: a client that ignores it still shows the correct total.

backcountry_is_zoneboolean

TRUE when this park's backcountry inventory is zone-quota (GTC bcat=7/13/14/17 — Egypt Lake, West Coast Trail, …) rather than the eastern per-site Backcountry-Campsite flow (bcat=5). The two are disjoint per park (spec §8), so a single boolean is well-defined. Drives the wizard/alert-detail backcountry EQUIPMENT picker (hidden for zone parks — zones have no equipment vocabulary, only tent-pads/party-size) so the platform-wide has_backcountry_equipment_picker isn't applied to zone parks.

backcountry_has_release_scheduleboolean

TRUE when at least one of this park's zones publishes a per-cell quota RELEASE time, so a 'remind me before it opens' opt-in can actually fire. Recreation.gov's family-B wilderness permits do (not_yet_released + release_date); its family-A permits publish nothing of the sort, and GoingToCamp publishes nothing at all. ANY semantics, unlike backcountry_is_entry_date below: a park holding one permit of each family still shows the control, and the alert-level gate at creation refuses it for a selection that cannot honour it. Gate the toggle on this AND the provider's has_release_schedule. Defaults FALSE, so a build that predates the field simply never offers the reminder.

backcountry_is_entry_dateboolean

TRUE when this park's backcountry is ENTRY-DATE inventory and nothing else (Quetico: you reserve one entry point for your entry DATE and camp anywhere; asking for 1 night and 5 returns identical availability). ALL semantics — a park with any per-night backcountry alongside it reads FALSE, because that part can still be sequenced. Mobile labels the date range as ENTRY DATES and the nights stepper as TRIP LENGTH, since nights are a booking parameter here rather than an availability filter. Server-derived for the same reason as supports_routes: which parks are entry-date is a data question that must be able to change without a mobile release.

supports_routesboolean

TRUE when a multi-night ROUTE alert can be built for this park. Computed server-side from the provider's supports_routes capability AND this park having route-capable backcountry inventory. Deliberately a PARK field rather than a client-side derivation: which parks of an enabled tenant can actually hold a route is a server decision, so widening it (say from zone-quota parks to per-site ones) ships without a mobile release. Distinct from backcountry_is_zone, which answers the unrelated question of whether to show tent pads.

op_transaction_location_idinteger nullable

GoingToCamp transactionLocationId for this park. Used by the mobile picker to build a per-park reservation URL (?transactionLocationId={id}) so the 'View on website' link lands with the correct park pre-selected in the dropdown. NULL for SEPAQ (different reservation flow).

op_park_map_idinteger nullable

GoingToCamp park-level mapId, resolved at seed time by walking the provider's map tree. When set, the mobile picker uses it as the SPA deep-link target so the GTC reservation page lands on this park's view (?mapId={op_park_map_id}&...) instead of the All-Parks root. NULL for SEPAQ and for any GTC park whose TL doesn't appear in the upstream mapLinks tree.

op_resource_location_idinteger nullable

GoingToCamp resourceLocationId of the park's sole campground. Populated only when the park has exactly one active campground (the parks-as-campgrounds shape — every OP park, every MB park, 114/115 BC parks, 13/34 PC parks). The mobile picker appends &resourceLocationId={...}&view=map to the GTC deep-link URL so the SPA renders the campground map view; without it OP/BC parks land on All-Parks even when mapId is set. NULL for multi-campground parks (most PC national parks, Wells Gray, NCC) where the user must pick a campground at the overview level.

booking_urlstring nullable

Pre-filled, park-specific reservation deep link, computed server-side. Populated only for Aspira/ReserveAmerica providers (Alberta, Saskatchewan), whose parkId is a numeric aspira_park_id the mobile client doesn't carry — so the client's reservation_url_template substitution (which fills {park_id} with the string park id) would land on the provider's homepage gate. When set, the mobile 'View on website' link uses this verbatim. NULL for SEPAQ/GoingToCamp, where the client builds the link from the template / op_park_map_id.

created_atstring date-time required
updated_atstring date-time required

Changes

No recorded changes to this operation across all 1 revision of this API.