Discover/Gc API
live

Gc APIreservation.pc.gc.ca

Access campground availability, site metadata, equipment filters, and date schedules across Parks Canada locations via a structured REST API.

Endpoint health
verified 8h ago
get_resources
get_locations
get_availability
get_map_availability
get_equipment
6/6 passing latest checkself-healing
Endpoints
6
Updated
22d ago

What is the Gc API?

This API exposes 6 endpoints covering the Parks Canada reservation system at reservation.pc.gc.ca, returning real-time campsite and cabin availability, location metadata, resource listings, equipment categories, and operating schedules. The get_availability endpoint delivers day-by-day availability status with quota counts for any individual resource across a date range up to 90 days, while get_map_availability aggregates that data across an entire campground map section.

Try it
End date in YYYY-MM-DD format. Defaults to start_date + 90 days.
Language code for localized content.
Start date in YYYY-MM-DD format. Defaults to today.
Resource ID (campsite/cabin). Get these from get_resources endpoint (resource_id field).
Booking category ID (1=Frontcountry Camping).
Equipment category ID. Get from get_equipment.
Sub-equipment category ID. Get from get_equipment.
api.parse.bot/scraper/45959601-ad42-4b32-bad3-8431a603ed7f/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/45959601-ad42-4b32-bad3-8431a603ed7f/get_availability?end_date=2026-07-29&language=en-CA&start_date=2026-07-22&resource_id=-2147475657&booking_category_id=1&equipment_category_id=-32768&sub_equipment_category_id=-32768' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace reservation-pc-gc-ca-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Parks Canada Reservation API — find campgrounds, check availability, browse equipment."""
from parse_apis.parks_canada_reservation_api import ParksCanada, Language, NotFound

client = ParksCanada()

# List all park locations and pick the first Banff campground.
for location in client.locations.list(language=Language.EN_CA, limit=5):
    print(location.full_name, location.resource_location_id)

# Drill into a specific location's resources (campsites).
banff = client.location(resource_location_id=-2147483644)
site = banff.resources.list(limit=1).first()
if site:
    print(site.name, site.max_capacity, site.allowed_equipment)

# Check daily availability for that campsite.
if site:
    for slot in site.availability.list(start_date="2026-07-01", end_date="2026-07-05", limit=5):
        print(slot.date, slot.availability_label, slot.is_available)

# Get operating schedules for the location.
schedule = banff.schedules.list(limit=1).first()
if schedule:
    print(schedule.name, schedule.check_in_time, schedule.check_out_time)

# Map-level availability overview for the campground section.
try:
    overview = client.mapavailabilities.get(map_id="-2147483626", start_date="2026-07-01", end_date="2026-07-02")
    print(overview.map_id, overview.total_resources, overview.available_resources)
except NotFound as exc:
    print(f"Map not found: {exc}")

# Browse equipment categories for filtering.
for cat in client.equipmentcategories.list(limit=3):
    print(cat.name, cat.equipment_category_id, cat.subcategories)

print("exercised: locations.list / resources.list / availability.list / schedules.list / mapavailabilities.get / equipmentcategories.list")
All endpoints · 6 totalmissing one? ·

Retrieve daily availability time slots for a specific resource (campsite, cabin, oTENTik). Returns day-by-day availability status for a date range, including availability codes, remaining quota, and processed availability labels. Defaults to a 90-day window from today if dates are not specified.

Input
ParamTypeDescription
end_datestringEnd date in YYYY-MM-DD format. Defaults to start_date + 90 days.
languagestringLanguage code for localized content.
start_datestringStart date in YYYY-MM-DD format. Defaults to today.
resource_idrequiredstringResource ID (campsite/cabin). Get these from get_resources endpoint (resource_id field).
booking_category_idstringBooking category ID (1=Frontcountry Camping).
equipment_category_idstringEquipment category ID. Get from get_equipment.
sub_equipment_category_idstringSub-equipment category ID. Get from get_equipment.
Response
{
  "type": "object",
  "fields": {
    "end_date": "string YYYY-MM-DD",
    "start_date": "string YYYY-MM-DD",
    "time_slots": "array of TimeSlot objects with date, availability, availability_label, processed_availability, processed_label, remaining_quota, is_available",
    "total_days": "integer number of days in range",
    "resource_id": "integer resource ID",
    "available_days": "integer count of available days",
    "unavailable_days": "integer count of unavailable days"
  },
  "sample": {
    "data": {
      "end_date": "2026-09-09",
      "start_date": "2026-06-11",
      "time_slots": [
        {
          "date": "2026-06-11",
          "availability": 1,
          "is_available": true,
          "processed_label": "available_good",
          "remaining_quota": null,
          "availability_label": "available",
          "processed_availability": 5
        }
      ],
      "total_days": 91,
      "resource_id": -2147475657,
      "available_days": 91,
      "unavailable_days": 0
    },
    "status": "success"
  }
}

About the Gc API

Locations and Resources

get_locations returns the full list of Parks Canada campground and park locations, including resource_location_id, short_name, full_name, GPS coordinates, website URLs, and driving directions. Pass a resource_location_id to get_resources to retrieve all bookable units at that location — individual campsites, oTENTiks, cabins, and other accommodation types — with fields like resource_id, name, resource_category_id, max_capacity, min_capacity, and max_adult_capacity. Both endpoints accept a language parameter (en-CA or fr-CA) for bilingual output.

Availability Queries

get_availability accepts a resource_id (sourced from get_resources) alongside optional start_date and end_date in YYYY-MM-DD format, defaulting to today through 90 days out. The response breaks down each day in the range with availability, availability_label, remaining_quota, and is_available, plus summary integers available_days, unavailable_days, and total_days. To filter by camping type, pass booking_category_id (e.g., 1 for Frontcountry Camping) and equipment identifiers from get_equipment.

get_map_availability takes a map_id (from the root_map_id field in get_locations) and returns availability rolled up across all resources in that campground section. The response includes resource_availabilities (keyed by resource_id) and map_link_availabilities (keyed by link_id), each with per-day availability codes and is_available flags. available_resources gives a quick integer count of sites that have at least one open day in the window.

Equipment and Schedules

get_equipment lists all equipment categories and subcategories used to filter availability queries — tent sizes, RV types, and similar — returning equipment_category_id, name, order, and a subcategories array with sub_equipment_category_id values. get_date_schedule retrieves operating and reservable windows for a location, including check_in_time, check_out_time, minimum_stay_days, maximum_stay_days, and display_online flags. These schedule objects clarify booking window constraints before querying availability.

Reliability & maintenanceVerified

The Gc API is a managed, monitored endpoint for reservation.pc.gc.ca — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when reservation.pc.gc.ca changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official reservation.pc.gc.ca API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
8h ago
Latest check
6/6 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Find all available campsites at a specific Parks Canada location for a given weekend using get_map_availability with a map_id.
  • Build a campsite availability calendar by iterating get_availability across multiple resource_id values with remaining_quota for quota tracking.
  • Filter RV-compatible sites by passing equipment category IDs from get_equipment into availability queries.
  • Enumerate all oTENTik and cabin resources across parks using get_resources with their resource_category_id fields.
  • Display GPS-mapped park locations with driving directions pulled from get_locations coordinates.
  • Check minimum and maximum stay rules before booking by querying get_date_schedule for a location's minimum_stay_days and check_out_time.
  • Aggregate cross-park availability data for a trip-planning tool covering multiple resource_location_id values.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Parks Canada offer an official developer API for reservation.pc.gc.ca?+
Parks Canada does not publish a documented public developer API for its reservation system. This Parse API provides structured access to the same reservation data.
What does `get_availability` return for a single campsite, and how granular is it?+
get_availability returns one record per day in the requested date range. Each record includes availability, availability_label, processed_availability, processed_label, remaining_quota, and is_available. The range defaults to today through 90 days if no end_date is provided. You can further narrow results by supplying booking_category_id, equipment_category_id, and sub_equipment_category_id.
Does the API return actual booking prices or reservation fees?+
No pricing or fee data is returned by any of the six endpoints. The API covers availability status, quota counts, resource metadata, equipment categories, and date schedules. You can fork it on Parse and revise to add a pricing or fees endpoint if that data is accessible from the source.
Can I retrieve user reviews or site-level ratings for individual campsites?+
Not currently. The API covers resource metadata (capacity, category, description), availability, and schedule data. User reviews and ratings are not part of any current endpoint. You can fork it on Parse and revise to add the missing endpoint.
How do I identify which `map_id` to pass to `get_map_availability`?+
Call get_locations first. Each location object includes a root_map_id field, which is the value to pass as map_id. The map corresponds to a campground section and groups all bookable resources within it for the aggregate availability response.
Page content last updated . Spec covers 6 endpoints from reservation.pc.gc.ca.
Related APIs in TravelSee all →
reservations.ontarioparks.ca API
Search for available group campsites across Ontario Parks and discover which parks offer group camping facilities with real-time weekend availability throughout your desired months. Plan your group camping trip by checking campsite openings and comparing options across multiple parks in one place.
campsites.co.uk API
Search for UK campsites, view detailed information including amenities and facilities, and check real-time availability across different accommodation types and categories. Plan your camping trip by filtering results to find the perfect site that matches your needs.
pitchup.com API
Search for campsites across the Pitchup.com network and instantly access detailed information including reviews, real-time availability, and pricing to find and book your perfect camping destination. Filter results by location, amenities, and other criteria to narrow down your options before making a reservation.
hipcamp.com API
Search Hipcamp campgrounds and retrieve detailed information including site availability, pricing, reviews, and amenities to plan your camping trips. Access real-time campground data, browse specific sites, and read visitor reviews all in one place.
centerparcs.fr API
Search and book holiday accommodations across Center Parcs resorts, compare pricing to find the best available deals, and discover activities at each location. Browse detailed accommodation information and explore what each park domain offers.
opentable.ca API
Search and discover restaurants on OpenTable, view detailed information like menus and reviews, and check real-time dining availability across metro areas. Find top-rated restaurants in your location and instantly see which tables are open for your preferred date and time.
resy.com API
Search for restaurants across cities and check real-time availability to find open reservation slots on Resy. Discover trending and top-rated venues with detailed information about dining options, menus, and available time slots across selected dates.
rentals.ca API
Search and browse rental listings across Canada by city or neighbourhood, and view detailed property information including prices, amenities, and availability. Find your next home by filtering thousands of rental properties on Rentals.ca in real-time.