# Emergency: API reference

8 endpoints. Base URL `https://princegeorgepulse.ca/api/v1`. Conventions (envelope, paging, fields, formats, limits) are on the [overview](https://princegeorgepulse.ca/developers/). [All endpoints](https://princegeorgepulse.ca/developers/reference/).

## GET /api/v1/emergency/contacts {#get-emergency-contacts}

Emergency, non-emergency, crisis and reporting phone numbers for Prince George, each verified on its official page.

- Cache: 1 h
- Source: [Official emergency and crisis line pages (City of Prince George, RCMP, BC Emergency Health Services, HealthLink BC, BC Wildfire Service, BC Hydro, FortisBC and others), compiled by PG Pulse](https://princegeorgepulse.ca/emergency/)
- Licence: Mixed: see each item’s source. Every number links to the official page it was verified on

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `group` | query | string | Only one group. One of: `emergency`, `police-fire`, `health-line`, `crisis`, `report`, `utility`, `city`. Example: `crisis`. |

Also accepts `fields` (sparse fieldset) and `format` (`json`, `md`).

**Example request**

```bash
curl "https://princegeorgepulse.ca/api/v1/emergency/contacts?group=crisis"
```

**Example response** (trimmed)

```json
{
  "data": [
    {
      "id": "seniors-abuse-information-line",
      "group": "crisis",
      "name": "Seniors Abuse and Information Line (SAIL)",
      "number": "1-866-437-1940",
      "tel": "18664371940",
      "alt": [],
      "when": "Mon–Fri 8 am–8 pm (except statutory holidays)",
      "description": "Confidential line for older adults about abuse, mistreatment or well-being; multilingual.",
      "url": "https://seniorsfirstbc.ca/programs/sail/",
      "source": {
        "name": "Seniors First BC: SAIL",
        "url": "https://seniorsfirstbc.ca/programs/sail/"
      },
      "checked": "2026-10-01"
    },
    {
      "id": "gambling-support-bc",
      "group": "crisis",
      "name": "Gambling Support BC helpline",
      "number": "1-888-795-6111",
      "tel": "18887956111",
      "alt": [],
      "when": "24/7",
      "description": "Free, confidential support for anyone affected by gambling.",
      "url": "https://www.gamblingsupportbc.ca/",
      "source": {
        "name": "Gambling Support BC",
        "url": "https://www.gamblingsupportbc.ca/"
      },
      "checked": "2026-10-01"
    },
    "… 14 more"
  ],
  "meta": {
    "source": "Official emergency and crisis line pages (City of Prince George, RCMP, BC Emergency Health Services, HealthLink BC, BC Wildfire Service, BC Hydro, FortisBC and others), compiled by PG Pulse",
    "sourceUrl": "https://princegeorgepulse.ca/emergency/",
    "updatedAt": "2026-10-01T12:00:00-07:00",
    "ageSec": 1284555,
    "license": "Mixed: see each item’s source. Every number links to the official page it was verified on",
    "attribution": "The services linked in each item, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/emergency/contacts?group=crisis",
    "next": null,
    "docs": "/developers/reference/emergency/#get-emergency-contacts"
  }
}
```

## GET /api/v1/emergency/care {#get-emergency-care}

Where to get care now: hospital emergency, urgent and primary care, clinics, with open-now state.

- Cache: 10 min
- Source: [PG Pulse public services directory, compiled from each operator's own pages](https://princegeorgepulse.ca/services/)
- Licence: Mixed: see each item’s source. Facts (addresses, phone numbers, hours) copied from each operator's own page, linked per item as source.url

Also accepts `fields` (sparse fieldset) and `format` (`json`, `md`).

**Example request**

```bash
curl "https://princegeorgepulse.ca/api/v1/emergency/care"
```

**Example response** (trimmed)

```json
{
  "data": [
    {
      "id": "pgnfc-emergency-dental-clinic",
      "need": "health",
      "layer": "health",
      "name": "PGNFC emergency dental outreach clinic",
      "kind": "Free emergency dental clinic",
      "operator": "Prince George Native Friendship Centre",
      "addr": "1600 3rd Ave, Prince George, BC V2L 3G6",
      "lat": 53.918711,
      "lng": -122.751288,
      "located": "BC Address Geocoder (score 99, CIVIC_NUMBER)",
      "phone": "250-613-7246",
      "phoneAlt": null,
      "…": "14 more keys"
    },
    {
      "id": "csfs-yu-be-yah-clinic",
      "need": "health",
      "layer": "health",
      "name": "Yu Be Yah primary care clinic",
      "kind": "Primary care clinic (Indigenous)",
      "operator": "Carrier Sekani Family Services",
      "addr": "970 4th Ave, Prince George, BC V2L 3H8",
      "lat": 53.914773,
      "lng": -122.74098,
      "located": "BC Address Geocoder (score 99, CIVIC_NUMBER)",
      "phone": "250-564-5414",
      "phoneAlt": null,
      "…": "14 more keys"
    },
    "… 14 more"
  ],
  "meta": {
    "source": "PG Pulse public services directory, compiled from each operator's own pages",
    "sourceUrl": "https://princegeorgepulse.ca/services/",
    "updatedAt": "2026-10-01T12:00:00-07:00",
    "ageSec": 1284555,
    "license": "Mixed: see each item’s source. Facts (addresses, phone numbers, hours) copied from each operator's own page, linked per item as source.url",
    "attribution": "The operators linked in each item, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/emergency/care",
    "next": null,
    "docs": "/developers/reference/emergency/#get-emergency-care"
  }
}
```

## GET /api/v1/emergency/prepare {#get-emergency-prepare}

Emergency preparedness links: alert sign-up, evacuation zones and reception centre, provincial emergency information.

- Cache: 1 h
- Source: [Official emergency and crisis line pages (City of Prince George, RCMP, BC Emergency Health Services, HealthLink BC, BC Wildfire Service, BC Hydro, FortisBC and others), compiled by PG Pulse](https://princegeorgepulse.ca/emergency/)
- Licence: Mixed: see each item’s source. Every number links to the official page it was verified on

Also accepts `fields` (sparse fieldset) and `format` (`json`, `md`).

**Example request**

```bash
curl "https://princegeorgepulse.ca/api/v1/emergency/prepare"
```

**Example response** (trimmed)

```json
{
  "data": [
    {
      "id": "emergency:rdffg-pas-signup",
      "group": "prepare",
      "label": "Sign up for local emergency alerts (Public Alerting System)",
      "url": "https://rdffg.connectrocket.com/",
      "description": "Regional District system used by the City: evacuation alerts and orders by text, phone or email for the zones you choose.",
      "source": {
        "name": "City of Prince George: Emergency planning",
        "url": "https://www.princegeorge.ca/BeReady"
      },
      "checked": "2026-09-30"
    },
    {
      "id": "emergency:rdffg-pas-info",
      "group": "prepare",
      "label": "Public Alerting System: zones and how to register",
      "url": "https://www.rdffg.ca/PAS",
      "description": "Lists City zones (A–D plus blue, green, orange, red, yellow garbage zones) and Regional District areas; separate from provincial BC Emergency Alerts.",
      "source": {
        "name": "RDFFG: Public Alerting System",
        "url": "https://www.rdffg.ca/PAS"
      },
      "checked": "2026-09-30"
    },
    "… 12 more"
  ],
  "meta": {
    "source": "Official emergency and crisis line pages (City of Prince George, RCMP, BC Emergency Health Services, HealthLink BC, BC Wildfire Service, BC Hydro, FortisBC and others), compiled by PG Pulse",
    "sourceUrl": "https://princegeorgepulse.ca/emergency/",
    "updatedAt": "2026-09-30T12:00:00-07:00",
    "ageSec": 1370955,
    "license": "Mixed: see each item’s source. Every number links to the official page it was verified on",
    "attribution": "The services linked in each item, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/emergency/prepare",
    "next": null,
    "docs": "/developers/reference/emergency/#get-emergency-prepare"
  }
}
```

## GET /api/v1/emergency/alerts {#get-emergency-alerts}

Live alerts affecting Prince George: weather and air quality warnings, evacuation orders and alerts, fire bans, road closures, power outages, transit disruptions.

Combined from the live sources PG Pulse keeps in its database. `sources` lists each feed with its freshness; a feed that is down is reported there (with `stale: true`) instead of failing the response.

- Cache: 2 min (live source, cached on our server)
- Source: [Environment and Climate Change Canada; BC Wildfire Service; Emergency Management and Climate Readiness; DriveBC; BC Hydro; BC Transit](https://princegeorgepulse.ca/emergency/)
- Licence: Environment and Climate Change Canada Data Servers End-use Licence (https://eccc-msc.github.io/open-data/licence/readme_en/); Open Government Licence – British Columbia (https://www2.gov.bc.ca/gov/content/data/policy-standards/data-policies/open-data/open-government-licence-bc); © BC Hydro. Public outage information, not openly licensed: shown with credit and a link to BC Hydro; check BC Hydro for current status; BC Transit Open Data Terms of Use (https://www.bctransit.com/open-data/terms-of-use/)

Also accepts `fields` (sparse fieldset) and `format` (`json`, `md`).

**Example request**

```bash
curl "https://princegeorgepulse.ca/api/v1/emergency/alerts"
```

**Example response** (trimmed)

```json
{
  "data": [
    {
      "id": "eccc-statement-2026-10-16t13-55-03-579z-special-weather",
      "kind": "weather",
      "level": "advisory",
      "title": "Special weather",
      "detail": "Fall Storm Bringing Mixed Weather Conditions this Saturday.",
      "area": "Prince George",
      "distanceKm": 0,
      "issued": "2026-10-16T13:55:03.579Z",
      "url": "https://weather.gc.ca/warnings/report_e.html?bc14",
      "source": "Environment and Climate Change Canada"
    },
    {
      "id": "road-drivebc.ca/RIDE-101672",
      "kind": "road",
      "level": "advisory",
      "title": "Landslide at Cave Road, 13km North of Quesnel",
      "detail": null,
      "area": null,
      "distanceKm": 95,
      "issued": "2026-08-25T15:03:34-07:00",
      "url": "https://www.drivebc.ca/",
      "source": "DriveBC"
    },
    "… 2 more"
  ],
  "meta": {
    "source": "Environment and Climate Change Canada; BC Wildfire Service; Emergency Management and Climate Readiness; DriveBC; BC Hydro; BC Transit",
    "sourceUrl": "https://princegeorgepulse.ca/emergency/",
    "updatedAt": "2026-10-16T15:49:14.874Z",
    "ageSec": 0,
    "license": "Environment and Climate Change Canada Data Servers End-use Licence (https://eccc-msc.github.io/open-data/licence/readme_en/); Open Government Licence – British Columbia (https://www2.gov.bc.ca/gov/content/data/policy-…",
    "attribution": "ECCC, BC Wildfire Service, EMCR, DriveBC, BC Hydro and BC Transit, via PG Pulse (princegeorgepulse.ca)",
    "summary": {
      "warnings": 0,
      "advisories": 3,
      "info": 1
    },
    "sources": [
      {
        "id": "weather",
        "label": "Weather and air quality alerts (ECCC)",
        "ok": true,
        "stale": false,
        "fetchedAt": "2026-10-16T15:40:20.687Z",
        "count": 1,
        "error": null,
        "source": "Environment and Climate Change Canada (city page weather bc-79, weather alerts, SWOB observations); NOAA Aviation Weather Center (METAR); Open-Meteo forecast API (model detail)",
        "sourceUrl": "https://weather.gc.ca/en/location/index.html?coords=53.917,-122.750"
      },
      {
        "id": "air",
        "label": "Air quality health index (ECCC)",
        "ok": true,
        "stale": false,
        "fetchedAt": "2026-10-16T15:37:20.627Z",
        "count": 0,
        "error": null,
        "source": "Environment and Climate Change Canada AQHI (Prince George); Open-Meteo air quality model; BC Ministry of Environment air monitoring stations",
        "sourceUrl": "https://weather.gc.ca/airquality/pages/bcaq-009_e.html"
      },
      "… 4 more"
    ]
  },
  "links": {
    "self": "/api/v1/emergency/alerts",
    "next": null,
    "docs": "/developers/reference/emergency/#get-emergency-alerts"
  }
}
```

## GET /api/v1/emergency/evacuation {#get-emergency-evacuation}

Pre-planned evacuation zones and evacuation assembly points in Prince George.

The City’s evacuation zones (polygons, `layer: zone`) and response facilities (points, `layer: facility`: evacuation assembly points and the operations centre), refreshed daily. These are planning zones: an actual evacuation order or alert names the zones it covers (see /emergency/alerts). Use ?format=geojson for a map-ready FeatureCollection; `layer` filters.

- Cache: 1 h
- Source: [City of Prince George, emergency response facilities and evacuation zones](https://www.princegeorge.ca/city-services/emergency-response-public-safety/emergency-response)
- Licence: Open Government Licence – City of Prince George (https://pgmapinfo.princegeorge.ca/OpenData/CityofPrinceGeorge_Open_Government_License_Open_Data.pdf)

- GeoJSON: add `format=geojson` for a bare FeatureCollection

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `layer` | query | string | `zone` or `facility`. One of: `zone`, `facility`. |

Also accepts `fields` (sparse fieldset) and `format` (`json`, `md`, `geojson`).

**Example request**

```bash
curl "https://princegeorgepulse.ca/api/v1/emergency/evacuation?format=geojson"
```

**Example response** (trimmed)

```json
{
  "data": {
    "type": "FeatureCollection",
    "features": [
      {
        "type": "Feature",
        "geometry": {
          "type": "Point",
          "coordinates": [
            -122.87508,
            53.8311
          ]
        },
        "properties": {
          "id": "facility-13",
          "layer": "facility",
          "name": "Beaverly Elementary School",
          "kind": "Evacuation assembly point",
          "address": "9777 Western Rd",
          "tone": "violet",
          "activated": false
        }
      },
      {
        "type": "Feature",
        "geometry": {
          "type": "Point",
          "coordinates": [
            -122.64311,
            53.8976
          ]
        },
        "properties": {
          "id": "facility-14",
          "layer": "facility",
          "name": "Blackburn Elementary School",
          "kind": "Evacuation assembly point",
          "address": "2222 Blackburn Rd",
          "tone": "violet",
          "activated": false
        }
      },
      "… 26 more"
    ]
  },
  "meta": {
    "source": "City of Prince George, emergency response facilities and evacuation zones",
    "sourceUrl": "https://www.princegeorge.ca/city-services/emergency-response-public-safety/emergency-response",
    "updatedAt": "2026-10-14T10:40:15.158Z",
    "ageSec": 191340,
    "license": "Open Government Licence – City of Prince George (https://pgmapinfo.princegeorge.ca/OpenData/CityofPrinceGeorge_Open_Government_License_Open_Data.pdf)",
    "attribution": "City of Prince George, emergency response facilities and evacuation zones, via PG Pulse (princegeorgepulse.ca)",
    "zones": 9,
    "facilities": 19
  },
  "links": {
    "self": "/api/v1/emergency/evacuation?format=geojson",
    "next": null,
    "docs": "/developers/reference/emergency/#get-emergency-evacuation"
  }
}
```

## GET /api/v1/emergency/zone {#get-emergency-zone}

Which evacuation zone an address or point is in, and the nearest assembly points.

Pass `address` (a street address in Prince George, located with the BC Address Geocoder) or `near=lat,lng`. Returns the pre-planned zone (or null outside every zone) and the three nearest evacuation assembly points with straight-line distance.

- Cache: 1 h
- Source: [City of Prince George, emergency response facilities and evacuation zones](https://www.princegeorge.ca/city-services/emergency-response-public-safety/emergency-response)
- Licence: Open Government Licence – City of Prince George (https://pgmapinfo.princegeorge.ca/OpenData/CityofPrinceGeorge_Open_Government_License_Open_Data.pdf)

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `address` | query | string | Street address in Prince George. Example: `1100 Patricia Blvd`. |
| `near` | query | string | Point as `lat,lng`. |

Also accepts `fields` (sparse fieldset) and `format` (`json`, `md`).

**Example request**

```bash
curl "https://princegeorgepulse.ca/api/v1/emergency/zone?address=1100%20Patricia%20Blvd"
```

**Example response** (trimmed)

```json
{
  "data": {
    "lat": 53.9127157,
    "lng": -122.7451585,
    "address": "1100 Patricia Blvd, Prince George, BC",
    "zone": {
      "id": "zone-ea254527-aaad-4546-a5b9-a6c568b92553",
      "name": "Green zone"
    },
    "assemblyPoints": [
      {
        "name": "Duchess Park Secondary School",
        "kind": "Evacuation assembly point",
        "address": "747 Winnipeg St",
        "lat": 53.91635,
        "lng": -122.75793,
        "distanceKm": 0.9
      },
      {
        "name": "Nusdeh Yoh Elementary School",
        "kind": "Evacuation assembly point",
        "address": "2579 Victoria St",
        "lat": 53.8986,
        "lng": -122.75682,
        "distanceKm": 1.7
      },
      "… 1 more"
    ]
  },
  "meta": {
    "source": "City of Prince George, emergency response facilities and evacuation zones",
    "sourceUrl": "https://www.princegeorge.ca/city-services/emergency-response-public-safety/emergency-response",
    "updatedAt": "2026-10-14T10:40:15.158Z",
    "ageSec": 191342,
    "license": "Open Government Licence – City of Prince George (https://pgmapinfo.princegeorge.ca/OpenData/CityofPrinceGeorge_Open_Government_License_Open_Data.pdf)",
    "attribution": "City of Prince George, emergency response facilities and evacuation zones, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/emergency/zone?address=1100%20Patricia%20Blvd",
    "next": null,
    "docs": "/developers/reference/emergency/#get-emergency-zone"
  }
}
```

## GET /api/v1/emergency/departments {#get-emergency-departments}

Emergency department status: open, closed overnight or temporarily closed.

Northern Health’s published status for each emergency department and day health centre, checked every 10 minutes, with the time the status last changed and the published re-opening time. Empty (with `meta.permitted: false` and the source page link) while the publisher has not allowed reuse; check the page directly then.

- Cache: 5 min
- Source: [Northern Health, emergency department status](https://www.northernhealth.ca/emergency-department-status)
- Licence: Public status information published by the health authority; reused with its permission (city config), facts only, with attribution and a link
- Paginated: `limit` (default 50, max 100) and `offset`; also `format=csv`

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `nearby` | query | boolean | Only the region around the city. |
| `kind` | query | string | `hospital` or `health-centre`. One of: `hospital`, `health-centre`. |

Also accepts `fields` (sparse fieldset) and `format` (`json`, `md`, `csv`).

**Example request**

```bash
curl "https://princegeorgepulse.ca/api/v1/emergency/departments"
```

**Example response** (trimmed)

```json
{
  "data": [],
  "meta": {
    "source": "Northern Health, emergency department status",
    "sourceUrl": "https://www.northernhealth.ca/emergency-department-status",
    "updatedAt": null,
    "license": "Public status information published by the health authority; reused with its permission (city config), facts only, with attribution and a link",
    "attribution": "Northern Health, emergency department status, via PG Pulse (princegeorgepulse.ca)",
    "permitted": false,
    "page": "https://www.northernhealth.ca/emergency-department-status",
    "note": "Northern Health’s terms of use do not allow reusing its pages, so we link to its live status page instead.",
    "total": 0,
    "count": 0,
    "limit": 50,
    "offset": 0
  },
  "links": {
    "self": "/api/v1/emergency/departments",
    "next": null,
    "docs": "/developers/reference/emergency/#get-emergency-departments"
  }
}
```

## GET /api/v1/emergency/departments/history {#get-emergency-departments-history}

Emergency department status changes, newest first.

- Cache: 5 min
- Source: [Northern Health, emergency department status](https://www.northernhealth.ca/emergency-department-status)
- Licence: Public status information published by the health authority; reused with its permission (city config), facts only, with attribution and a link
- Paginated: `limit` (default 50, max 500) and `offset`; also `format=csv`

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `facility` | query | string | Facility id from /emergency/departments. |

Also accepts `fields` (sparse fieldset) and `format` (`json`, `md`, `csv`).

**Example request**

```bash
curl "https://princegeorgepulse.ca/api/v1/emergency/departments/history"
```

**Example response** (trimmed)

```json
{
  "data": [],
  "meta": {
    "source": "Northern Health, emergency department status",
    "sourceUrl": "https://www.northernhealth.ca/emergency-department-status",
    "updatedAt": null,
    "license": "Public status information published by the health authority; reused with its permission (city config), facts only, with attribution and a link",
    "attribution": "Northern Health, emergency department status, via PG Pulse (princegeorgepulse.ca)",
    "permitted": false,
    "page": "https://www.northernhealth.ca/emergency-department-status",
    "total": 0,
    "count": 0,
    "limit": 50,
    "offset": 0
  },
  "links": {
    "self": "/api/v1/emergency/departments/history",
    "next": null,
    "docs": "/developers/reference/emergency/#get-emergency-departments-history"
  }
}
```
