Local knowledge for your AI tools
Connect Cursor, VS Code, Codex or Claude Code. Free MCP access, no key needed.
Hazards: API reference
8 endpoints. Base URL https://princegeorgepulse.ca/api/v1. Conventions (envelope, paging, fields, formats, limits) are on the overview. All endpoints.
GET /api/v1/wildfire #
Wildfires near Prince George, season stats, danger rating, bans and evacuations.
- Cache: 30 min (live source, cached on our server)
- Source: BC Wildfire Service (active fires, danger rating, bans and prohibitions); Emergency Management and Climate Readiness (evacuation orders and alerts)
- Licence: Open Government Licence – British Columbia (https://www2.gov.bc.ca/gov/content/data/policy-standards/data-policies/open-data/open-government-licence-bc)
Also accepts fields (sparse fieldset) and format (json, md).
Example request
curl "https://princegeorgepulse.ca/api/v1/wildfire"Example response (trimmed)
{
"data": {
"active": [
{
"id": "G31209",
"name": "Miledge Creek",
"status": "Under Control",
"cause": "Lightning",
"sizeHa": 14.4,
"discovered": "2026-07-25T22:13:56.000Z",
"out": null,
"lat": 52.2871,
"lng": -119.2007,
"location": "Miledge Creek",
"url": "https://wildfiresituation.nrs.gov.bc.ca/incidents?fireYear=2026&incidentNumber=G31209",
"ofNote": false,
"…": "1 more keys"
},
{
"id": "G92299",
"name": "Creham Creek Muskwa Junction",
"status": "Being Held",
"cause": "Person",
"sizeHa": 42,
"discovered": "2026-09-29T23:27:23.000Z",
"out": null,
"lat": 57.8834,
"lng": -123.6461,
"location": "Creham Creek Muskwa Junction",
"url": "https://wildfiresituation.nrs.gov.bc.ca/incidents?fireYear=2026&incidentNumber=G92299",
"ofNote": false,
"…": "1 more keys"
},
"… 1 more"
],
"season": {
"year": 2026,
"total": 163,
"out": 160,
"active": 3,
"totalHa": 931,
"byCause": {
"Person": 72,
"Lightning": 91
},
"byStatus": {
"Out": 160,
"Being Held": 2,
"Under Control": 1
},
"byMonth": {
"2026-05": 23,
"2026-04": 18,
"2026-07": 59,
"2026-06": 25,
"2026-03": 2,
"2025-10": 1,
"2026-09": 13,
"2026-08": 20,
"2025-05": 1,
"2026-10": 1
},
"largest": {
"id": "G70322",
"name": "Windy Creek",
"status": "Out",
"cause": "Person",
"sizeHa": 206,
"discovered": "2026-04-26T15:00:14.000Z",
"out": "2026-06-03T21:10:07.000Z",
"lat": 55.9698,
"lng": -121.4783,
"location": "Windy Creek",
"url": "https://wildfiresituation.nrs.gov.bc.ca/incidents?fireYear=2026&incidentNumber=G70322",
"ofNote": false,
"…": "1 more keys"
}
},
"danger": {
"rating": "Very Low",
"value": 0.8,
"updated": "2026-10-15T00:00:00.000Z"
},
"bans": [],
"evacuations": []
},
"meta": {
"source": "BC Wildfire Service (active fires, danger rating, bans and prohibitions); Emergency Management and Climate Readiness (evacuation orders and alerts)",
"sourceUrl": "https://wildfiresituation.nrs.gov.bc.ca/map",
"updatedAt": "2026-10-16T10:31:26.141Z",
"ageSec": 1015,
"license": "Open Government Licence – British Columbia (https://www2.gov.bc.ca/gov/content/data/policy-standards/data-policies/open-data/open-government-licence-bc)",
"attribution": "BC Wildfire Service and EMCR, via PG Pulse (princegeorgepulse.ca)"
},
"links": {
"self": "/api/v1/wildfire",
"next": null,
"docs": "/developers/reference/hazards/#get-wildfire"
}
}GET /api/v1/earthquakes #
Earthquakes within about 400 km over the last year.
- Cache: 1 h (live source, cached on our server)
- Source: Natural Resources Canada, Earthquakes Canada (FDSN event service)
- Licence: Open Government Licence – Canada (https://open.canada.ca/en/open-government-licence-canada)
Also accepts fields (sparse fieldset) and format (json, md).
Example request
curl "https://princegeorgepulse.ca/api/v1/earthquakes"Example response (trimmed)
{
"data": {
"events": [
{
"id": "ca2026ujcc",
"time": "2026-10-14T10:54:54.000Z",
"lat": 57.0574,
"lng": -122.5088,
"depthKm": 4.91,
"mag": 3.16,
"magType": "MLy",
"place": "Suspected industry-related event, 89 km W of Prespatou, BC",
"distanceKm": 350
},
{
"id": "ca2026ugmn",
"time": "2026-10-13T01:08:33.000Z",
"lat": 54.5168,
"lng": -118.4576,
"depthKm": 0.07,
"mag": 2.61,
"magType": "MLy",
"place": "Suspected industry-related event, 76 km SSE of Grande Prairie, AB",
"distanceKm": 287
},
"… 315 more"
],
"radiusKm": 400,
"since": "2025-10-16",
"minMag": 2.5,
"totalAllMagnitudes": 968
},
"meta": {
"source": "Natural Resources Canada, Earthquakes Canada (FDSN event service)",
"sourceUrl": "https://www.earthquakescanada.nrcan.gc.ca/",
"updatedAt": "2026-10-16T10:18:26.245Z",
"ageSec": 1795,
"license": "Open Government Licence – Canada (https://open.canada.ca/en/open-government-licence-canada)",
"attribution": "Earthquakes Canada, Natural Resources Canada, via PG Pulse (princegeorgepulse.ca)"
},
"links": {
"self": "/api/v1/earthquakes",
"next": null,
"docs": "/developers/reference/hazards/#get-earthquakes"
}
}GET /api/v1/roads #
DriveBC road events within 150 km.
- Cache: 10 min (live source, cached on our server)
- Source: DriveBC Open511 API (BC Ministry of Transportation and Transit)
- Licence: Open Government Licence – British Columbia (https://www2.gov.bc.ca/gov/content/data/policy-standards/data-policies/open-data/open-government-licence-bc)
| Parameter | In | Type | Description |
|---|---|---|---|
severity | query | string | Filter by severity (e.g. MAJOR, MINOR). Example: MAJOR. |
within | query | number | Only within this many km. Example: 50. |
Also accepts fields (sparse fieldset) and format (json, md).
Example request
curl "https://princegeorgepulse.ca/api/v1/roads"Example response (trimmed)
{
"data": {
"events": [
{
"id": "drivebc.ca/RIDE-101672",
"headline": "INCIDENT",
"type": "INCIDENT",
"subtypes": [
"HAZARD"
],
"severity": "MAJOR",
"description": "Landslide at Cave Road, 13km North of Quesnel. Closed.",
"summary": "Landslide at Cave Road, 13km North of Quesnel",
"roads": [],
"updated": "2026-08-25T15:03:34-07:00",
"lat": 53.07409957,
"lng": -122.5099548,
"distanceKm": 95,
"…": "1 more keys"
},
{
"id": "drivebc.ca/RIDE-101703",
"headline": "INCIDENT",
"type": "INCIDENT",
"subtypes": [
"HAZARD"
],
"severity": "MAJOR",
"description": "Bridge closed at Johnston Bridge Loop, In Quesnel and Front St.",
"summary": "Bridge closed at Johnston Bridge Loop, In Quesnel and Front St",
"roads": [],
"updated": "2026-08-26T09:29:33-07:00",
"lat": 52.97312801,
"lng": -122.48947216,
"distanceKm": 106,
"…": "1 more keys"
},
"… 20 more"
],
"radiusKm": 150
},
"meta": {
"source": "DriveBC Open511 API (BC Ministry of Transportation and Transit)",
"sourceUrl": "https://www.drivebc.ca/",
"updatedAt": "2026-10-16T10:41:26.548Z",
"ageSec": 415,
"license": "Open Government Licence – British Columbia (https://www2.gov.bc.ca/gov/content/data/policy-standards/data-policies/open-data/open-government-licence-bc)",
"attribution": "DriveBC, via PG Pulse (princegeorgepulse.ca)"
},
"links": {
"self": "/api/v1/roads",
"next": null,
"docs": "/developers/reference/hazards/#get-roads"
}
}GET /api/v1/aurora #
Planetary K-index (aurora chances): now, observed and 3-day forecast.
- Cache: 15 min (live source, cached on our server)
- Source: NOAA Space Weather Prediction Center, planetary K-index
- Licence: Public domain (US Government work, NOAA SWPC)
Also accepts fields (sparse fieldset) and format (json, md).
Example request
curl "https://princegeorgepulse.ca/api/v1/aurora"Example response (trimmed)
{
"data": {
"now": {
"kp": 1,
"t": "2026-10-16T10:33:00Z"
},
"observed": [
{
"t": "2026-10-13T09:00:00Z",
"kp": 3
},
{
"t": "2026-10-13T12:00:00Z",
"kp": 3
},
"… 22 more"
],
"forecast": [
{
"t": "2026-10-16T09:00:00Z",
"kp": 1.67
},
{
"t": "2026-10-16T12:00:00Z",
"kp": 1.67
},
"… 20 more"
],
"maxNext24": 2.67
},
"meta": {
"source": "NOAA Space Weather Prediction Center, planetary K-index",
"sourceUrl": "https://www.spaceweather.gov/products/planetary-k-index",
"updatedAt": "2026-10-16T10:38:25.915Z",
"ageSec": 595,
"license": "Public domain (US Government work, NOAA SWPC)",
"attribution": "NOAA Space Weather Prediction Center, via PG Pulse (princegeorgepulse.ca)"
},
"links": {
"self": "/api/v1/aurora",
"next": null,
"docs": "/developers/reference/hazards/#get-aurora"
}
}GET /api/v1/webcams #
DriveBC highway cameras within 60 km (image links are DriveBC’s own).
- Cache: 5 min (live source, cached on our server)
- Source: DriveBC highway cameras (BC Ministry of Transportation and Transit)
- Licence: Open Government Licence – British Columbia (https://www2.gov.bc.ca/gov/content/data/policy-standards/data-policies/open-data/open-government-licence-bc)
- Paginated:
limit(default 50, max 200) andoffset; alsoformat=csv
| Parameter | In | Type | Description |
|---|---|---|---|
limit | query | integer | Items per page (default 50, max 500 unless noted). Example: 20. |
offset | query | integer | Items to skip. Use links.next to page. Example: 0. |
Also accepts fields (sparse fieldset) and format (json, md, csv).
Example request
curl "https://princegeorgepulse.ca/api/v1/webcams"Example response (trimmed)
{
"data": [
{
"id": 957,
"name": "Prince George eastbound",
"caption": "Highway 97 at Highway 16 junction in Prince George, looking eastbound on Highway 16.",
"highway": "97",
"km": 3,
"image": "https://www.drivebc.ca/images/957.jpg?t=1792147423",
"updated": "2026-10-16T03:29:42-07:00",
"stale": false,
"lat": 53.897331,
"lng": -122.768097,
"url": "https://www.drivebc.ca/cameras/957"
},
{
"id": 958,
"name": "Prince George northbound",
"caption": "Highway 97 at Highway 16 junction in Prince George, looking northbound on Highway 97.",
"highway": "97",
"km": 3,
"image": "https://www.drivebc.ca/images/958.jpg?t=1792147423",
"updated": "2026-10-16T03:30:17-07:00",
"stale": false,
"lat": 53.897331,
"lng": -122.768097,
"url": "https://www.drivebc.ca/cameras/958"
},
"… 15 more"
],
"meta": {
"source": "DriveBC highway cameras (BC Ministry of Transportation and Transit)",
"sourceUrl": "https://www.drivebc.ca/cameras",
"updatedAt": "2026-10-16T10:44:26.584Z",
"ageSec": 235,
"license": "Open Government Licence – British Columbia (https://www2.gov.bc.ca/gov/content/data/policy-standards/data-policies/open-data/open-government-licence-bc)",
"attribution": "DriveBC, via PG Pulse (princegeorgepulse.ca)",
"total": 17,
"count": 17,
"limit": 50,
"offset": 0
},
"links": {
"self": "/api/v1/webcams",
"next": null,
"docs": "/developers/reference/hazards/#get-webcams"
}
}GET /api/v1/wildfire/history #
Recorded wildfire counts and area burned in the Prince George Fire Centre.
- Cache: 5 min
- Source: PG Pulse live history: readings recorded from Open-Meteo, ECCC, Water Survey of Canada, BC Hydro, BC Wildfire Service, DriveBC, NOAA SWPC and NOAA AWC on every refresh
- Licence: Mixed: see each item’s source
| Parameter | In | Type | Description |
|---|---|---|---|
series | query | string | Only some of: fire.active, fire.season_total, fire.season_ha, fire.evacuations. |
from | query | string | Start: ISO date/datetime, or a span back from to such as 48h, 7d or 30d (default 7d). Example: 7d. |
to | query | string | End: ISO date/datetime (default now). |
interval | query | string | raw (every recorded reading; kept 90 days), hour or day (hourly rollups, kept indefinitely), or auto (raw up to 3 days, hourly up to 120 days, then daily). One of: auto, raw, hour, day. |
Also accepts fields (sparse fieldset) and format (json, md).
Example request
curl "https://princegeorgepulse.ca/api/v1/wildfire/history?from=48h"Example response (trimmed)
{
"data": [
{
"series": "fire.active",
"label": "Active wildfires, Prince George Fire Centre",
"unit": "fires",
"interval": "raw",
"truncated": false,
"points": [
{
"t": "2026-10-14T11:00:00.000Z",
"value": 3
},
{
"t": "2026-10-14T11:25:00.000Z",
"value": 3
},
"… 113 more"
]
},
{
"series": "fire.season_total",
"label": "Wildfires this season, Prince George Fire Centre",
"unit": "fires",
"interval": "raw",
"truncated": false,
"points": [
{
"t": "2026-10-14T11:00:00.000Z",
"value": 163
},
{
"t": "2026-10-14T11:25:00.000Z",
"value": 163
},
"… 113 more"
]
},
"… 2 more"
],
"meta": {
"source": "BC Wildfire Service (active fires, danger rating, bans and prohibitions); Emergency Management and Climate Readiness (evacuation orders and alerts)",
"sourceUrl": "https://wildfiresituation.nrs.gov.bc.ca/map",
"updatedAt": "2026-10-16T10:30:00.000Z",
"ageSec": 1101,
"license": "Open Government Licence – British Columbia (https://www2.gov.bc.ca/gov/content/data/policy-standards/data-policies/open-data/open-government-licence-bc)",
"attribution": "The upstream named in each series (`meta.series.source`), via PG Pulse (princegeorgepulse.ca)",
"from": "2026-10-14T10:48:21.000Z",
"to": "2026-10-16T10:48:21.000Z",
"interval": "raw",
"series": [
{
"id": "fire.active",
"source": "BC Wildfire Service (active fires, danger rating, bans and prohibitions); Emergency Management and Climate Readiness (evacuation orders and alerts)"
},
{
"id": "fire.season_total",
"source": "BC Wildfire Service (active fires, danger rating, bans and prohibitions); Emergency Management and Climate Readiness (evacuation orders and alerts)"
},
"… 2 more"
]
},
"links": {
"self": "/api/v1/wildfire/history?from=48h",
"next": null,
"docs": "/developers/reference/hazards/#get-wildfire-history"
}
}GET /api/v1/roads/history #
Recorded DriveBC event counts within 150 km.
- Cache: 5 min
- Source: PG Pulse live history: readings recorded from Open-Meteo, ECCC, Water Survey of Canada, BC Hydro, BC Wildfire Service, DriveBC, NOAA SWPC and NOAA AWC on every refresh
- Licence: Mixed: see each item’s source
| Parameter | In | Type | Description |
|---|---|---|---|
series | query | string | Only some of: roads.events, roads.major. |
from | query | string | Start: ISO date/datetime, or a span back from to such as 48h, 7d or 30d (default 7d). Example: 7d. |
to | query | string | End: ISO date/datetime (default now). |
interval | query | string | raw (every recorded reading; kept 90 days), hour or day (hourly rollups, kept indefinitely), or auto (raw up to 3 days, hourly up to 120 days, then daily). One of: auto, raw, hour, day. |
Also accepts fields (sparse fieldset) and format (json, md).
Example request
curl "https://princegeorgepulse.ca/api/v1/roads/history?from=48h"Example response (trimmed)
{
"data": [
{
"series": "roads.events",
"label": "DriveBC events within 150 km",
"unit": "events",
"interval": "raw",
"truncated": false,
"points": [
{
"t": "2026-10-14T10:50:00.000Z",
"value": 24
},
{
"t": "2026-10-14T10:55:00.000Z",
"value": 24
},
"… 318 more"
]
},
{
"series": "roads.major",
"label": "Major DriveBC events within 150 km",
"unit": "events",
"interval": "raw",
"truncated": false,
"points": [
{
"t": "2026-10-14T10:50:00.000Z",
"value": 2
},
{
"t": "2026-10-14T10:55:00.000Z",
"value": 2
},
"… 318 more"
]
}
],
"meta": {
"source": "DriveBC Open511 API (BC Ministry of Transportation and Transit)",
"sourceUrl": "https://www.drivebc.ca/",
"updatedAt": "2026-10-16T10:40:00.000Z",
"ageSec": 501,
"license": "Open Government Licence – British Columbia (https://www2.gov.bc.ca/gov/content/data/policy-standards/data-policies/open-data/open-government-licence-bc)",
"attribution": "The upstream named in each series (`meta.series.source`), via PG Pulse (princegeorgepulse.ca)",
"from": "2026-10-14T10:48:21.000Z",
"to": "2026-10-16T10:48:21.000Z",
"interval": "raw",
"series": [
{
"id": "roads.events",
"source": "DriveBC Open511 API (BC Ministry of Transportation and Transit)"
},
{
"id": "roads.major",
"source": "DriveBC Open511 API (BC Ministry of Transportation and Transit)"
}
]
},
"links": {
"self": "/api/v1/roads/history?from=48h",
"next": null,
"docs": "/developers/reference/hazards/#get-roads-history"
}
}GET /api/v1/aurora/history #
Recorded planetary K-index.
- Cache: 5 min
- Source: PG Pulse live history: readings recorded from Open-Meteo, ECCC, Water Survey of Canada, BC Hydro, BC Wildfire Service, DriveBC, NOAA SWPC and NOAA AWC on every refresh
- Licence: Mixed: see each item’s source
| Parameter | In | Type | Description |
|---|---|---|---|
series | query | string | Only some of: kp.observed, kp.estimated. |
from | query | string | Start: ISO date/datetime, or a span back from to such as 48h, 7d or 30d (default 7d). Example: 7d. |
to | query | string | End: ISO date/datetime (default now). |
interval | query | string | raw (every recorded reading; kept 90 days), hour or day (hourly rollups, kept indefinitely), or auto (raw up to 3 days, hourly up to 120 days, then daily). One of: auto, raw, hour, day. |
Also accepts fields (sparse fieldset) and format (json, md).
Example request
curl "https://princegeorgepulse.ca/api/v1/aurora/history?from=48h"Example response (trimmed)
{
"data": [
{
"series": "kp.observed",
"label": "Planetary K-index (3-hour, observed)",
"unit": "Kp",
"interval": "raw",
"truncated": false,
"points": [
{
"t": "2026-10-14T12:00:00.000Z",
"value": 2
},
{
"t": "2026-10-14T15:00:00.000Z",
"value": 2
},
"… 13 more"
]
},
{
"series": "kp.estimated",
"label": "Planetary K-index (1-minute estimate)",
"unit": "Kp",
"interval": "raw",
"truncated": false,
"points": [
{
"t": "2026-10-14T11:01:00.000Z",
"value": 0.67
},
{
"t": "2026-10-14T11:14:00.000Z",
"value": 1.33
},
"… 221 more"
]
}
],
"meta": {
"source": "NOAA Space Weather Prediction Center, planetary K-index",
"sourceUrl": "https://www.spaceweather.gov/products/planetary-k-index",
"updatedAt": "2026-10-16T10:33:00.000Z",
"ageSec": 921,
"license": "Public domain (US Government work, NOAA SWPC)",
"attribution": "The upstream named in each series (`meta.series.source`), via PG Pulse (princegeorgepulse.ca)",
"from": "2026-10-14T10:48:21.000Z",
"to": "2026-10-16T10:48:21.000Z",
"interval": "raw",
"series": [
{
"id": "kp.observed",
"source": "NOAA Space Weather Prediction Center, planetary K-index"
},
{
"id": "kp.estimated",
"source": "NOAA Space Weather Prediction Center, planetary K-index"
}
]
},
"links": {
"self": "/api/v1/aurora/history?from=48h",
"next": null,
"docs": "/developers/reference/hazards/#get-aurora-history"
}
}