British Columbia Data

Government API · Works in BC, Canada · BC Data Catalogue · 4,000+ datasets

TL;DR

The BC Data Catalogue provides open data from British Columbia provincial government ministries and agencies through a CKAN (Comprehensive Knowledge Archive Network) REST API. Over 4,000 datasets cover geography, natural resources, environment, health, transportation, education, economy, public safety, and cultural data. The API supports full CKAN actions: package_list, package_search, package_show, resource_show, tag_list, and group_list. Data is available in multiple formats including CSV, GeoJSON, KML, Shapefile, and WMS/WFS services. No API key is needed for metadata access, though some data downloads may require accepting terms of use.

Quick start: https://catalogue.data.gov.bc.ca/api/3/action/package_list

No API key needed — just make a request!

How to Use This API

1. List All Dataset Packages

Returns an array of all dataset IDs in the catalogue:

https://catalogue.data.gov.bc.ca/api/3/action/package_list

2. Search Datasets by Keyword

Full-text search across dataset titles, descriptions, and tags. Supports pagination with rows and start:

https://catalogue.data.gov.bc.ca/api/3/action/package_search?q=forestry&rows=10
https://catalogue.data.gov.bc.ca/api/3/action/package_search?q=health+facilities&rows=20&start=0

3. Get Dataset Details

Retrieve full metadata for a specific dataset by its ID:

https://catalogue.data.gov.bc.ca/api/3/action/package_show?id=bc-airports
https://catalogue.data.gov.bc.ca/api/3/action/package_show?id=bc-school-locations

4. List Available Tags

Browse all tags used across the catalogue to discover related datasets:

https://catalogue.data.gov.bc.ca/api/3/action/tag_list
https://catalogue.data.gov.bc.ca/api/3/action/tag_list?all_fields=true

5. Get Resource Details

Each dataset contains one or more resources (CSV files, Shapefiles, etc.). Get direct download URLs:

https://catalogue.data.gov.bc.ca/api/3/action/resource_show?id={resource_id}

6. Response Format

The CKAN API returns a standard JSON envelope:

{
  "help": "https://...",
  "success": true,
  "result": {
    "count": 42,
    "results": [
      {
        "id": "abc-123",
        "name": "bc-airports",
        "title": "BC Airports",
        "notes": "Locations of airports in British Columbia",
        "organization": {"name": "ministry-of-transportation"},
        "resources": [
          {
            "id": "res-1",
            "name": "BC Airports CSV",
            "format": "CSV",
            "url": "https://.../download.csv"
          }
        ]
      }
    ]
  }
}

7. JavaScript — Search and Display Results

fetch('https://catalogue.data.gov.bc.ca/api/3/action/package_search?q=parks&rows=5')
  .then(r => r.json())
  .then(d => {
    if (!d.success) throw new Error('CKAN error');
    d.result.results.forEach(ds => {
      console.log(ds.title);
      console.log(`  Updated: ${ds.metadata_modified}`);
      console.log(`  Formats: ${ds.resources.map(r => r.format).join(', ')}`);
    });
  });

8. Python — List All Dataset Names

import requests

resp = requests.get(
    'https://catalogue.data.gov.bc.ca/api/3/action/package_list'
)
data = resp.json()
if data['success']:
    print(f"Total datasets: {len(data['result'])}")
    for name in data['result'][:20]:
        print(f"  \u2022 {name}")

9. Python — Search with Pagination

import requests

all_results = []
start = 0
page_size = 100

while True:
    resp = requests.get(
        'https://catalogue.data.gov.bc.ca/api/3/action/package_search',
        params={'q': 'water', 'rows': page_size, 'start': start}
    )
    data = resp.json()
    results = data['result']['results']
    if not results:
        break
    all_results.extend(results)
    start += page_size

print(f"Found {len(all_results)} water-related datasets")
Browse all BC datasets: https://catalogue.data.gov.bc.ca/api/3/action/package_list

Frequently Asked Questions

What is CKAN and how does it work?
CKAN (Comprehensive Knowledge Archive Network) is an open-source data management system used by many government open data portals worldwide. The BC Data Catalogue is built on CKAN, providing standard API actions like package_search, package_show, resource_show, tag_list, and group_list. All actions follow the pattern /api/3/action/{action_name}.
What datasets are most popular on the BC Data Catalogue?
Frequently accessed datasets include BC Airports, Forest Tenure, Health Facilities, BC School Locations, Parks and Ecological Reserves, Freshwater Atlas, BC Assessment Data, Digital Road Atlas, and the BC Geographic Name Registry.
Can I get geospatial data through the API?
Yes. Many datasets include GeoJSON, KML, Shapefile downloads as well as WMS (Web Map Service) and WFS (Web Feature Service) endpoints for direct GIS integration. The bc-airports and freshwater-atlas datasets are particularly rich in geospatial content.
Is there a rate limit on the CKAN API?
No specific rate limit is documented, but reasonable usage patterns are expected. Large bulk downloads should be done during off-peak hours. For very large datasets, use the direct download links (CSV/Shapefile) rather than the API.
Do I need an API key for any operations?
Metadata search and listing actions (package_list, package_search, package_show) are fully open. Some actions that modify data or access private datasets may require authentication, but for public open data consumption you never need an API key.
How do I download the actual data files?
Use package_show to get a dataset's resources, then look at the url field in each resource object. Resources have a format field (CSV, XLS, Shapefile, GeoJSON, etc.) indicating the file type. You can then download directly using the URL.
What geographic area does the data cover?
The data covers the province of British Columbia, Canada. Some datasets have provincial coverage, others cover specific regions or municipalities within BC. The package_search endpoint supports faceted search to filter by geographic extent.

API Details

API URL
https://catalogue.data.gov.bc.ca/api/3
Documentation
catalogue.data.gov.bc.ca
Category
Government
Authentication
Not Required (for read/public access)
Geographic Coverage
British Columbia, Canada
API Style
CKAN v3 REST API
Data Formats
CSV, GeoJSON, KML, Shapefile, XLS, WMS, WFS

What You Can Build