AlertCamp Parks V5 API

The parks-v5 API from AlertCamp — 1 operation(s) for parks-v5.

Operations 1

GET /api/v5/parks/{park_id}/campgrounds List Park Campgrounds V5 #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/alert-camp:alert-camp-parks-v5-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

alert-camp-parks-v5-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: AlertCamp Parks V5 API
  description: Service d'alertes de disponibilité SEPAQ pour le camping au Québec
  version: 0.1.0
tags:
- name: parks-v5
paths:
  /api/v5/parks/{park_id}/campgrounds:
    get:
      tags:
      - parks-v5
      summary: List Park Campgrounds V5
      description: 'List a park''s campgrounds (v5 — **full surface**, incl. Ontario Parks

        Daily Vehicle Permit day use).


        Current mobile master calls this, paired with ``/api/v9/parks``. v4 plus

        every booking category gated at v9 (``min_parks_api_version``). Public,

        no auth.'
      operationId: list_park_campgrounds_v5_api_v5_parks__park_id__campgrounds_get
      parameters:
      - name: park_id
        in: path
        required: true
        schema:
          type: string
          title: Park Id
      - name: active_only
        in: query
        required: false
        schema:
          type: boolean
          description: Only return active campgrounds
          default: true
          title: Active Only
        description: Only return active campgrounds
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampgroundListResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    CampgroundResponse:
      properties:
        id:
          type: string
          title: Id
        park_id:
          type: string
          title: Park Id
        name:
          type: string
          title: Name
        name_en:
          anyOf:
          - type: string
          - type: 'null'
          title: Name En
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        url:
          anyOf:
          - type: string
          - type: 'null'
          title: Url
        is_active:
          type: boolean
          title: Is Active
        latitude:
          anyOf:
          - type: number
          - type: 'null'
          title: Latitude
        longitude:
          anyOf:
          - type: number
          - type: 'null'
          title: Longitude
        max_watched_sites:
          anyOf:
          - type: integer
          - type: 'null'
          title: Max Watched Sites
          description: Max sites ONE alert may watch in this campground, narrowing the tier's sites-per-alert limit. null = tier limit only.
        max_sites_per_night:
          anyOf:
          - type: integer
          - type: 'null'
          title: Max Sites Per Night
          description: Max sites one ROUTE NIGHT may offer here. null = no limit.
        has_roofed_sites:
          type: boolean
          title: Has Roofed Sites
          description: Whether any zone in this campground contains roofed accommodation sites.
          default: false
        has_canoe_sites:
          type: boolean
          title: Has Canoe Sites
          description: Whether any zone in this campground contains canoe-camping sites.
          default: false
        has_backcountry_sites:
          type: boolean
          title: Has Backcountry Sites
          description: Whether any zone in this campground contains backcountry sites.
          default: false
        has_site_map:
          type: boolean
          title: Has Site Map
          description: Whether THIS campground has a photo-overlay site map, so the picker can route to it per campground instead of per platform. Maps are sparse within a provider — Recreation.gov has exactly one (Yosemite's permit trailheads, from the NPS wilderness map) against 92,467 mapless sites — so `Platform.has_site_map` is the wrong unit and a per-park override would only restate what the map rows already say. Defaults False, so a client that ignores it behaves exactly as before.
          default: false
        has_day_use_sites:
          type: boolean
          title: Has Day Use Sites
          description: Whether any zone in this campground contains day-use sites (Parks Canada parking time slots, Banff shuttle departures). Defaults False, so builds that predate the activity are unaffected — the v1 campgrounds route hides day-use-only campgrounds from them entirely.
          default: false
        seasons:
          items:
            $ref: '#/components/schemas/SeasonSpan'
          type: array
          title: Seasons
          description: 'Distinct operating seasons among this campground''s active sites — usually one, occasionally several (a campground can open its loops on different dates). Empty when no site publishes a season. Data only: the server does not act on it, and a client that ignores it behaves exactly as before.'
        has_unknown_season:
          type: boolean
          title: Has Unknown Season
          description: Whether ANY active site here has no published season. Most providers publish none at all (Aspira, UseDirect, and every Recreation.gov site not yet swept), and unknown must never read as closed. Defaults TRUE so a client treats the campground as always open unless told otherwise — the safe direction, since the only use for this is warning that dates can never match.
          default: true
        notices:
          items:
            $ref: '#/components/schemas/ProviderNotice'
          type: array
          title: Notices
          description: The provider's own notices on this campground (closures, stay rules), as last seen by the scanner. Empty when none — and for every provider that publishes none. Data only.
        provider_closed:
          type: boolean
          title: Provider Closed
          description: 'The provider says this campground is closed (a closure notice AND nothing bookable): its sites read as fully booked, but no cancellation can open them. Defaults False — unknown is open.'
          default: false
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
      type: object
      required:
      - id
      - park_id
      - name
      - name_en
      - description
      - url
      - is_active
      - created_at
      - updated_at
      title: CampgroundResponse
      description: Schema for campground response.
    SeasonSpan:
      properties:
        start:
          type: string
          title: Start
          description: Season start as "MM-DD".
        end:
          type: string
          title: End
          description: Season end as "MM-DD".
      type: object
      required:
      - start
      - end
      title: SeasonSpan
      description: 'One recurring operating season, WITHOUT a year.


        "05-01" / "10-31".  A season recurs, so a year would be wrong the moment

        it turned — see ``app/utils/season.py``.  ``start`` > ``end`` is legal and

        means the season wraps the new year (Nov 2 - Apr 30); 373 seeded sites are

        shaped that way, so a client comparing ``start <= d <= end`` would call

        every one of them closed all year.'
    CampgroundListResponse:
      properties:
        campgrounds:
          items:
            $ref: '#/components/schemas/CampgroundResponse'
          type: array
          title: Campgrounds
        total:
          type: integer
          title: Total
        park_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Park Id
          description: Park ID if filtered by park
      type: object
      required:
      - campgrounds
      - total
      title: CampgroundListResponse
      description: Schema for list of campgrounds response.
    ProviderNotice:
      properties:
        title:
          type: string
          title: Title
        text:
          type: string
          title: Text
        closure:
          type: boolean
          title: Closure
          description: The notice closes the accommodation itself (not a road, trail or restaurant).
          default: false
      type: object
      required:
      - title
      - text
      title: ProviderNotice
      description: A banner the provider shows on this campground's booking page.