---
title: "Count Hot Sites"
method: GET
path: "/api/v2/hot-sites/count"
tags: ["hot-sites-v2"]
---

# Count Hot Sites

`GET /api/v2/hot-sites/count`

## 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/v2/hot-sites/count`
- Auth: none declared

Return the aggregate hot_sites count for the wizard's filters.

## Query parameters

- `provider` string, required: Provider id (e.g. bc_parks, ontario_parks, parks_canada).
- `activity_type` string, required: Activity bucket: camping | chalet | backcountry | canoe_camping | peche.
- `park_id` string, nullable: When set, scope the count to a single park.
- `equipment_mode` string: any | tent | rv (matches the wizard's equipment filter).
- `sub_equipment_id` integer, nullable: Required when equipment_mode='rv'.
- `require_electricity` boolean, nullable
- `require_accessible` boolean, nullable
- `require_pets` boolean, nullable
- `require_pull_through` boolean, nullable
- `require_tent_only` boolean, nullable
- `party_size` integer, nullable: When set, drop sites whose ``max_occupancy`` is below this. Sites with NULL max_occupancy pass (capacity unknown) — same convention as ``site_passes_party_filter``.

## Response `200`

Successful Response

- HotSiteCountResponse: Aggregate count of hot sites matching the wizard's filters.
  - `total` integer, required: Active hot_sites matching provider + activity_type (+ optional park_id). No equipment/amenity filters applied.
  - `matching` integer, required: Subset of ``total`` that also passes the supplied equipment + amenity filters. Equal to ``total`` when no filters are active.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/alert/apis/alertcamp.md) · [All operations](https://skmtc.dev/alert/apis/alertcamp/llms.txt) · [OpenAPI document](https://skmtc.dev/alert/apis/alertcamp/revisions/864c8c9ef833?raw)
