# Community: API reference

19 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/community {#get-community}

Community directory overview: counts and freshness of every list.

- Cache: 1 h
- Source: [PG Pulse community directory](https://princegeorgepulse.ca/community/)
- Licence: Mixed: see each item’s source

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

**Example request**

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

**Example response** (trimmed)

```json
{
  "data": {
    "worship": {
      "count": 62,
      "byTradition": [
        {
          "tradition": "Christian",
          "count": 56
        },
        {
          "tradition": "Sikh",
          "count": 2
        },
        "… 4 more"
      ],
      "updatedAt": "2026-10-06T15:49:02.850Z",
      "stale": false
    },
    "childCare": {
      "count": 155,
      "withVacancy": 44,
      "updatedAt": "2026-10-15T13:35:10.486Z",
      "stale": false
    },
    "careHomes": {
      "count": 6
    },
    "heritage": {
      "register": 17,
      "signs": 23,
      "art": 77,
      "murals": 19,
      "updatedAt": "2026-10-07T11:50:16.705Z",
      "stale": false
    },
    "groups": {
      "count": 43,
      "updatedAt": "2026-10-08T12:10:27.802Z",
      "stale": false
    },
    "unions": 28,
    "media": 14,
    "facebookGroups": 17,
    "volunteering": 26,
    "meetGroups": 43
  },
  "meta": {
    "source": "PG Pulse community directory",
    "sourceUrl": "https://princegeorgepulse.ca/community/",
    "updatedAt": "2026-10-15T13:35:10.486Z",
    "ageSec": 76394,
    "license": "Mixed: see each item’s source",
    "attribution": "PG Pulse community directory, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/community",
    "next": null,
    "docs": "/developers/reference/community/#get-community"
  }
}
```

## GET /api/v1/community/worship {#get-community-worship}

Places of worship: tradition, denomination, address, website and languages (when published).

Merged from the CRA List of charities (religion categories), OpenStreetMap, the business directory and addresses checked on each congregation’s own site. `confidence`: verified (checked on the congregation’s own site), map (OpenStreetMap only) or registry (a registered charity; its registered address can be a home, so no address is given). Each item lists its sources.

- Cache: 1 h
- Source: [Canada Revenue Agency: List of charities (open data); OpenStreetMap; congregations’ own sites; PG Pulse directory](https://princegeorgepulse.ca/community/places-of-worship/)
- Licence: Mixed: Open Government Licence – Canada (https://open.canada.ca/en/open-government-licence-canada); ODbL 1.0, © OpenStreetMap contributors (https://www.openstreetmap.org/copyright); facts from each congregation’s own site (see each item’s sources)
- Paginated: `limit` (default 100, max 500) and `offset`; also `format=csv`

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `tradition` | query | string | One of Christian, Sikh, Muslim, Hindu, Buddhist, Jewish, Baha’i, Jain, Zoroastrian, Other. Example: `Sikh`. |
| `confidence` | query | string | verified, map or registry. One of: `verified`, `map`, `registry`. |
| `q` | query | string | Words in the name, denomination, address or languages. Example: `baptist`. |
| `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**

```bash
curl "https://princegeorgepulse.ca/api/v1/community/worship"
```

**Example response** (trimmed)

```json
{
  "data": [
    {
      "id": "broken-bread-church",
      "name": "Broken Bread Church",
      "tradition": "Christian",
      "denomination": null,
      "address": null,
      "lat": null,
      "lng": null,
      "located": null,
      "website": "https://www.brokenbread.ca/",
      "languages": null,
      "languagesNote": null,
      "accessibility": null,
      "…": "5 more keys"
    },
    {
      "id": "central-fellowship-baptist",
      "name": "Central Fellowship Baptist Church",
      "tradition": "Christian",
      "denomination": "Fellowship Baptist",
      "address": "2840 Clapperton Street, Prince George, BC",
      "lat": 53.893416,
      "lng": -122.754899,
      "located": "BC Address Geocoder",
      "website": "https://www.centralfellowship.ca/",
      "languages": null,
      "languagesNote": null,
      "accessibility": null,
      "…": "5 more keys"
    },
    "… 60 more"
  ],
  "meta": {
    "source": "Canada Revenue Agency: List of charities (open data); OpenStreetMap; congregations’ own sites; PG Pulse directory",
    "sourceUrl": "https://princegeorgepulse.ca/community/places-of-worship/",
    "updatedAt": "2026-10-06T15:49:02.850Z",
    "ageSec": 845962,
    "license": "Mixed: Open Government Licence – Canada (https://open.canada.ca/en/open-government-licence-canada); ODbL 1.0, © OpenStreetMap contributors (https://www.openstreetmap.org/copyright); facts from each congregation’s own …",
    "attribution": "Canada Revenue Agency: List of charities (open data); OpenStreetMap; congregations’ own sites; PG Pulse directory, via PG Pulse (princegeorgepulse.ca)",
    "total": 62,
    "count": 62,
    "limit": 100,
    "offset": 0
  },
  "links": {
    "self": "/api/v1/community/worship",
    "next": null,
    "docs": "/developers/reference/community/#get-community-worship"
  }
}
```

## GET /api/v1/community/charities {#get-community-charities}

Registered charities in the city (CRA List of charities, all categories).

- Cache: 24 h
- Source: [Canada Revenue Agency: List of charities (open data)](https://open.canada.ca/data/en/dataset/80c00cdb-1358-415c-bb8b-0de7f12675b8)
- Licence: Open Government Licence – Canada (https://open.canada.ca/en/open-government-licence-canada)
- Paginated: `limit` (default 100, max 500) and `offset`; also `format=csv`

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `category` | query | string | CRA category code, e.g. 0001 (relief of poverty), 0030 (Christianity), 0160 (community resource). Example: `0001`. |
| `q` | query | string | Words in the name. Example: `hospice`. |
| `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**

```bash
curl "https://princegeorgepulse.ca/api/v1/community/charities"
```

**Example response** (trimmed)

```json
{
  "data": [
    {
      "bn": "118970805RR0001",
      "name": "'lif' Life International Foundation Inc.",
      "category": "0070",
      "subCategory": "0005",
      "designation": "B",
      "address": "213-566 North Nechako Rd",
      "city": "Prince George",
      "postal": "V2K1A1",
      "website": null,
      "year": 2024,
      "craUrl": "https://apps.cra-arc.gc.ca/ebci/hacc/srch/pub/dsplyRprtngPrd?q.srchNm=&selectedCharityBn=118970805RR0001",
      "categoryLabel": "Support of religion"
    },
    {
      "bn": "832175699RR0001",
      "name": "2618 Royal Canadian Army Cadet Corps Sponsoring Committee",
      "category": "0013",
      "subCategory": "0001",
      "designation": "C",
      "address": "PO Box 837",
      "city": "Prince George",
      "postal": "V2L4T7",
      "website": "https://n/a",
      "year": 2024,
      "craUrl": "https://apps.cra-arc.gc.ca/ebci/hacc/srch/pub/dsplyRprtngPrd?q.srchNm=&selectedCharityBn=832175699RR0001",
      "categoryLabel": "Education (other)"
    },
    "… 98 more"
  ],
  "meta": {
    "source": "Canada Revenue Agency: List of charities (open data)",
    "sourceUrl": "https://open.canada.ca/data/en/dataset/80c00cdb-1358-415c-bb8b-0de7f12675b8",
    "updatedAt": "2026-10-06T11:40:20.686Z",
    "ageSec": 860884,
    "license": "Open Government Licence – Canada (https://open.canada.ca/en/open-government-licence-canada)",
    "attribution": "Canada Revenue Agency: List of charities (open data), via PG Pulse (princegeorgepulse.ca)",
    "year": 2024,
    "total": 187,
    "count": 100,
    "limit": 100,
    "offset": 0
  },
  "links": {
    "self": "/api/v1/community/charities",
    "next": "/api/v1/community/charities?offset=100",
    "docs": "/developers/reference/community/#get-community-charities"
  }
}
```

## GET /api/v1/community/child-care {#get-community-child-care}

Licensed child care facilities with ages served, languages, hours and current vacancies.

The Province’s child care map data, refreshed daily. Home-based (licensed family) care shows the street only and approximate coordinates. Vacancies are reported by the providers (see vacancyUpdated).

- Cache: 1 h
- Source: [Province of BC: Child Care Map Data](https://catalogue.data.gov.bc.ca/dataset/child-care-map-data)
- 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 100, max 500) and `offset`; also `format=csv`

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `age` | query | string | Age group: under-3, 30m-5y, preschool, kindergarten, school-age. One of: `under-3`, `30m-5y`, `preschool`, `kindergarten`, `school-age`. |
| `vacancy` | query | boolean | Only facilities reporting a vacancy (for the age group, when given). |
| `type` | query | string | group (centre-based) or family (home-based). One of: `group`, `family`. |
| `language` | query | string | A language other than English, e.g. French, Punjabi. Example: `French`. |
| `q` | query | string | Words in the name or street. Example: `montessori`. |
| `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**

```bash
curl "https://princegeorgepulse.ca/api/v1/community/child-care"
```

**Example response** (trimmed)

```json
{
  "data": [
    {
      "id": "3515",
      "name": "4Pillar Early Learning Centre Inc Pg",
      "type": "Licensed Group",
      "homeBased": false,
      "address": "177 Mckenzie Ave",
      "postal": "V2L 4N5",
      "lat": 53.892478,
      "lng": -122.764713,
      "phone": "778-636-4717",
      "website": null,
      "ages": [],
      "languages": [],
      "…": "7 more keys"
    },
    {
      "id": "3177",
      "name": "4Pillar Early Learning Centre Inc.",
      "type": "Licensed Group",
      "homeBased": false,
      "address": "172 Mckenzie Avenue",
      "postal": "V2L 4N4",
      "lat": 53.892763,
      "lng": -122.764645,
      "phone": "604-414-5757",
      "website": null,
      "ages": [],
      "languages": [],
      "…": "7 more keys"
    },
    "… 98 more"
  ],
  "meta": {
    "source": "Province of BC: Child Care Map Data",
    "sourceUrl": "https://catalogue.data.gov.bc.ca/dataset/child-care-map-data",
    "updatedAt": "2026-10-15T13:35:10.486Z",
    "ageSec": 76394,
    "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": "Province of BC: Child Care Map Data, via PG Pulse (princegeorgepulse.ca)",
    "total": 155,
    "count": 100,
    "limit": 100,
    "offset": 0
  },
  "links": {
    "self": "/api/v1/community/child-care",
    "next": "/api/v1/community/child-care?offset=100",
    "docs": "/developers/reference/community/#get-community-child-care"
  }
}
```

## GET /api/v1/community/care-homes {#get-community-care-homes}

Long-term care, assisted living and hospice: licensed facilities with bed counts, plus the public services directory’s care listings.

- Cache: 1 h
- Source: [Province of BC: Residential Care Facilities; PG Pulse public services directory](https://catalogue.data.gov.bc.ca/dataset/residential-care-facilities)
- Licence: Open Government Licence – British Columbia (https://www2.gov.bc.ca/gov/content/data/policy-standards/data-policies/open-data/open-government-licence-bc); services facts from each operator’s page

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

**Example request**

```bash
curl "https://princegeorgepulse.ca/api/v1/community/care-homes"
```

**Example response** (trimmed)

```json
{
  "data": {
    "licensed": [
      {
        "id": "birchview-residences-7780-hart-hwy",
        "name": "Birchview Residences",
        "operator": "Birchview Holdings Ltd.",
        "address": "7780 Hart Hwy",
        "postal": "V2K 3B3",
        "lat": 54.001211,
        "lng": -122.800572,
        "phone": "(778)415-9790",
        "inspectionsUrl": "https://www.healthspace.ca/nha",
        "longTermCareBeds": 20,
        "hospiceBeds": null,
        "healthAuthority": "Northern Health",
        "…": "1 more keys"
      },
      {
        "id": "gateway-lodge-complex-care-1488-20th-ave",
        "name": "Gateway Lodge Complex Care",
        "operator": "Northern Health Authority",
        "address": "1488 20th Ave",
        "postal": "V2L 0A5",
        "lat": 53.905646,
        "lng": -122.75341,
        "phone": "(250)612-5500",
        "inspectionsUrl": "https://www.healthspace.ca/nha",
        "longTermCareBeds": 120,
        "hospiceBeds": null,
        "healthAuthority": "Northern Health",
        "…": "1 more keys"
      },
      "… 4 more"
    ],
    "directory": [
      {
        "id": "gateway-lodge-assisted-living",
        "name": "Gateway Lodge assisted living",
        "kind": "Assisted living",
        "operator": "Northern Health",
        "address": "1462 20th Ave, Prince George, BC V2L 0B3",
        "phone": "250-612-5536",
        "url": "https://www.northernhealth.ca/find-a-facility/assisted-living/gateway-lodge-assisted-living-residences",
        "source": {
          "name": "Northern Health: Gateway Lodge assisted living",
          "url": "https://www.northernhealth.ca/find-a-facility/assisted-living/gateway-lodge-assisted-living-residences"
        },
        "checked": "2026-09-30"
      },
      {
        "id": "laurier-manor",
        "name": "Laurier Manor",
        "kind": "Assisted living",
        "operator": "Northern Health",
        "address": "2175 9th Ave, Prince George, BC V2M 5E3",
        "phone": "250-612-5934",
        "url": "https://www.northernhealth.ca/find-a-facility/assisted-living/laurier-manor",
        "source": {
          "name": "Northern Health: Laurier Manor",
          "url": "https://www.northernhealth.ca/find-a-facility/assisted-living/laurier-manor"
        },
        "checked": "2026-09-30"
      },
      "… 7 more"
    ]
  },
  "meta": {
    "source": "Province of BC: Residential Care Facilities; PG Pulse public services directory",
    "sourceUrl": "https://catalogue.data.gov.bc.ca/dataset/residential-care-facilities",
    "updatedAt": "2026-10-15T13:35:10.486Z",
    "ageSec": 76394,
    "license": "Open Government Licence – British Columbia (https://www2.gov.bc.ca/gov/content/data/policy-standards/data-policies/open-data/open-government-licence-bc); services facts from each operator’s page",
    "attribution": "Province of BC: Residential Care Facilities; PG Pulse public services directory, via PG Pulse (princegeorgepulse.ca)",
    "licensedSourceModified": "2022-05-06T15:41:53.541498"
  },
  "links": {
    "self": "/api/v1/community/care-homes",
    "next": null,
    "docs": "/developers/reference/community/#get-community-care-homes"
  }
}
```

## GET /api/v1/community/heritage {#get-community-heritage}

Heritage register properties, downtown heritage signs (in walking order) and public art, with locations.

- Cache: 1 h
- Source: [City of Prince George Heritage Register; City GIS (heritage signs, public art)](https://www.princegeorge.ca/community-culture/heritage/heritage-register-properties)
- Licence: Open Government Licence – City of Prince George (https://pgmapinfo.princegeorge.ca/OpenData/CityofPrinceGeorge_Open_Government_License_Open_Data.pdf); register text excerpts with links to each Statement of Significance
- Paginated: `limit` (default 200, max 500) and `offset`; also `format=csv`

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `kind` | query | string | register, sign or art. One of: `register`, `sign`, `art`. |
| `category` | query | string | Register section (Residential, Commercial, Other) or art type (Mural, Sculpture, Totem...). Example: `Mural`. |
| `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**

```bash
curl "https://princegeorgepulse.ca/api/v1/community/heritage"
```

**Example response** (trimmed)

```json
{
  "data": [
    {
      "id": "art-3ba3f4ed-f8fa-406a-915a-b8ad4ec7751c",
      "kind": "art",
      "category": "Mural",
      "name": "Alegria",
      "address": "5th Ave and Queensway",
      "lat": 53.914003,
      "lng": -122.742532,
      "located": "City GIS",
      "year": 2018,
      "summary": "A 10-year old girl happily jumping with her hands extended upwards. Her image and big smile representing optimism, youthfulness and energy puts an accent on one of the most important aspects of northern communities– o…",
      "artist": "Facundo Gastiazoro",
      "material": null,
      "…": "4 more keys"
    },
    {
      "id": "art-f8ba2594-e9e6-4392-961d-f879fbbc2b08",
      "kind": "art",
      "category": "Monument",
      "name": "Alexander Mackenzie Marker & Carin",
      "address": "101 17th Ave",
      "lat": 53.907911,
      "lng": -122.730658,
      "located": "City GIS",
      "year": 2009,
      "summary": "Concrete and Bronze Marker",
      "artist": null,
      "material": null,
      "…": "4 more keys"
    },
    "… 115 more"
  ],
  "meta": {
    "source": "City of Prince George Heritage Register; City GIS (heritage signs, public art)",
    "sourceUrl": "https://www.princegeorge.ca/community-culture/heritage/heritage-register-properties",
    "updatedAt": "2026-10-07T11:50:16.705Z",
    "ageSec": 773888,
    "license": "Open Government Licence – City of Prince George (https://pgmapinfo.princegeorge.ca/OpenData/CityofPrinceGeorge_Open_Government_License_Open_Data.pdf); register text excerpts with links to each Statement of Significance",
    "attribution": "City of Prince George Heritage Register; City GIS (heritage signs, public art), via PG Pulse (princegeorgepulse.ca)",
    "total": 117,
    "count": 117,
    "limit": 200,
    "offset": 0
  },
  "links": {
    "self": "/api/v1/community/heritage",
    "next": null,
    "docs": "/developers/reference/community/#get-community-heritage"
  }
}
```

## GET /api/v1/community/on-this-day {#get-community-on-this-day}

On this day: people born in the city, openings and events on a calendar day (Wikidata).

- Cache: 1 h
- Source: [Wikidata](https://www.wikidata.org/)
- Licence: CC0 1.0 (Wikidata)

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `date` | query | string | Month and day, MM-DD (default: today in the city). Example: `09-30`. |
| `days` | query | integer | Days from that date to include (1 to 31, default 1). Example: `7`. |

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

**Example request**

```bash
curl "https://princegeorgepulse.ca/api/v1/community/on-this-day"
```

**Example response** (trimmed)

```json
{
  "data": {
    "date": "10-16",
    "items": []
  },
  "meta": {
    "source": "Wikidata",
    "sourceUrl": "https://www.wikidata.org/",
    "updatedAt": "2026-10-07T11:50:16.705Z",
    "ageSec": 773888,
    "license": "CC0 1.0 (Wikidata)",
    "attribution": "Wikidata, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/community/on-this-day",
    "next": null,
    "docs": "/developers/reference/community/#get-community-on-this-day"
  }
}
```

## GET /api/v1/community/groups {#get-community-groups}

Clubs and groups: arts, music, theatre, social, seniors and science clubs from the municipal recreation directory.

- Cache: 1 h
- Source: [City of Prince George Community Recreation Directory](https://www.princegeorge.ca/community-culture/your-community/community-recreation-directory)
- Licence: Public information published by the City of Prince George: names, links, types and short descriptions, with attribution
- Paginated: `limit` (default 100, max 500) and `offset`; also `format=csv`

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `category` | query | string | Directory type, e.g. Music, Arts and crafts, Seniors. Example: `Music`. |
| `q` | query | string | Words in the name or description. Example: `choir`. |
| `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**

```bash
curl "https://princegeorgepulse.ca/api/v1/community/groups"
```

**Example response** (trimmed)

```json
{
  "data": [
    {
      "id": "alban-classical-artists",
      "name": "Alban Classical Artists",
      "category": "Music",
      "types": [
        "Music"
      ],
      "description": "Alban Classical offers a live concert series, free About Town Concerts, therapeutic concerts in care homes and music education which includes the New Horizons Band and the Multigenerational Band.",
      "url": "http://albanclassical.org",
      "cityUrl": "https://www.princegeorge.ca/community-culture/your-community-events/community-recreation-directory/alban-classical-artists",
      "source": "City of Prince George Community Recreation Directory"
    },
    {
      "id": "bc-old-time-fiddlers-association",
      "name": "BC Old Time Fiddlers Association",
      "category": "Music",
      "types": [
        "Music"
      ],
      "description": "Old time fiddle music in Prince George.",
      "url": "http://bcfiddlers.com/branches/prince-george/",
      "cityUrl": "https://www.princegeorge.ca/community-culture/your-community-events/community-recreation-directory/bc-old-time-fiddlers",
      "source": "City of Prince George Community Recreation Directory"
    },
    "… 41 more"
  ],
  "meta": {
    "source": "City of Prince George Community Recreation Directory",
    "sourceUrl": "https://www.princegeorge.ca/community-culture/your-community/community-recreation-directory",
    "updatedAt": "2026-10-08T12:10:27.802Z",
    "ageSec": 686277,
    "license": "Public information published by the City of Prince George: names, links, types and short descriptions, with attribution",
    "attribution": "City of Prince George Community Recreation Directory, via PG Pulse (princegeorgepulse.ca)",
    "total": 43,
    "count": 43,
    "limit": 100,
    "offset": 0
  },
  "links": {
    "self": "/api/v1/community/groups",
    "next": null,
    "docs": "/developers/reference/community/#get-community-groups"
  }
}
```

## GET /api/v1/community/meet {#get-community-meet}

Volunteering, service clubs, newcomer, hobby and social groups (hand-checked).

- Cache: 1 h
- Source: [Each organisation’s own pages (see each entry)](https://princegeorgepulse.ca/community/meet-people/)
- Licence: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/), our own compilation; facts link to their public sources

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `category` | query | string | Group category: newcomers, service-club, hobby, outdoors, arts-culture, lgbtq, seniors, professional, faith-community, youth, language-culture, games. |

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

**Example request**

```bash
curl "https://princegeorgepulse.ca/api/v1/community/meet"
```

**Example response** (trimmed)

```json
{
  "data": {
    "volunteering": [
      {
        "id": "volunteer-pg",
        "name": "Volunteer Prince George",
        "kind": "Volunteer centre",
        "what": "The city's volunteer centre since 1991: browse open listings without logging in, apply once and get referred to local non-profits; also runs training workshops.",
        "url": "https://volunteerpg.com/listings/",
        "source": {
          "name": "Volunteer Prince George",
          "url": "https://volunteerpg.com/volunteer/"
        },
        "checked": "2026-10-01"
      },
      {
        "id": "do-some-good",
        "name": "Do Some Good",
        "kind": "Listing site",
        "what": "Online volunteer platform used by Volunteer Prince George and several local groups (including The Exploration Place) to post roles and take applications.",
        "url": "https://dosomegood.ca/organization/volunteer-prince-george-350205",
        "source": {
          "name": "Do Some Good",
          "url": "https://dosomegood.ca/organization/volunteer-prince-george-350205"
        },
        "checked": "2026-10-01"
      },
      "… 24 more"
    ],
    "groups": [
      {
        "id": "rotary-downtown",
        "name": "Rotary Club of Prince George Downtown",
        "category": "service-club",
        "what": "Rotary club doing local and international service projects; visitors welcome at lunch meetings.",
        "meets": "Tuesdays 12:00 pm, Rockford Grill banquet room, 2990 Recreation Ave",
        "url": "https://portal.clubrunner.ca/758",
        "source": {
          "name": "Rotary District 5040",
          "url": "https://www.rotary5040.org/clubinfo/prince-george"
        },
        "checked": "2026-10-01"
      },
      {
        "id": "rotary-yellowhead",
        "name": "Rotary Club of Prince George Yellowhead",
        "category": "service-club",
        "what": "Rotary club with lunch meetings and a monthly evening pub night.",
        "meets": "1st, 3rd and 4th Thursday 12:15 pm (lunch); 2nd Wednesday evening pub night; 770 Brunswick St",
        "url": "https://rotary5040.org/clubinfo/pg-yellowhead-rotary",
        "source": {
          "name": "Rotary District 5040",
          "url": "https://rotary5040.org/clubinfo/pg-yellowhead-rotary"
        },
        "checked": "2026-10-01"
      },
      "… 41 more"
    ]
  },
  "meta": {
    "source": "Each organisation’s own pages (see each entry)",
    "sourceUrl": "https://princegeorgepulse.ca/community/meet-people/",
    "updatedAt": "2026-10-02T03:15:07.400Z",
    "ageSec": 1236797,
    "license": "CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/), our own compilation; facts link to their public sources",
    "attribution": "Each organisation’s own pages (see each entry), via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/community/meet",
    "next": null,
    "docs": "/developers/reference/community/#get-community-meet"
  }
}
```

## GET /api/v1/community/help {#get-community-help}

Help by topic: food, shelter and housing, crisis lines, mental health and addictions, legal, family, youth, seniors, newcomers, disability, Indigenous, income.

- Cache: 30 min
- Source: [PG Pulse public services directory](https://princegeorgepulse.ca/community/help/)
- Licence: Facts copied from each operator’s own page (see each item’s source)

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `topic` | query | string | Topic id, e.g. food, shelter-housing, crisis, legal. Example: `food`. |

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

**Example request**

```bash
curl "https://princegeorgepulse.ca/api/v1/community/help"
```

**Example response** (trimmed)

```json
{
  "data": [
    {
      "id": "crisis",
      "label": "Crisis lines",
      "intro": "Someone to talk to right now. In danger? Call 9-1-1.",
      "places": [
        {
          "id": "elizabeth-fry-prince-george",
          "name": "Prince George and District Elizabeth Fry Society",
          "kind": "Women's and family services",
          "operator": "Prince George and District Elizabeth Fry Society",
          "address": "1575 5th Ave, Prince George, BC V2L 3L9",
          "phone": "250-563-1113",
          "hours": null,
          "url": "https://pgefry.bc.ca/contact/",
          "source": "{…}",
          "checked": "2026-09-30"
        },
        {
          "id": "phoenix-peace-program",
          "name": "PEACE program for children and youth (Phoenix Transition Society)",
          "kind": "Counselling (children and youth)",
          "operator": "Phoenix Transition Society",
          "address": null,
          "phone": "778-983-4000",
          "hours": null,
          "url": "https://www.phoenixtransitionsociety.net/",
          "source": "{…}",
          "checked": "2026-10-01"
        },
        "… 5 more"
      ],
      "contacts": [
        {
          "id": "988",
          "name": "9-8-8 Suicide Crisis Helpline",
          "number": "9-8-8",
          "when": "24/7",
          "description": "Call or text if you or someone you know is thinking about suicide.",
          "url": "https://988.ca/",
          "source": "{…}"
        },
        {
          "id": "crisis-centre-northern-bc",
          "name": "Crisis Centre for Northern BC: 24-hour crisis line",
          "number": "250-563-1214",
          "when": "24/7",
          "description": "Confidential crisis line to talk about anything troubling you.",
          "url": "https://crisis-centre.ca/",
          "source": "{…}"
        },
        "… 14 more"
      ],
      "links": []
    },
    {
      "id": "food",
      "label": "Food",
      "intro": "Food banks, free and low-cost meals and drop-ins.",
      "places": [
        {
          "id": "salvation-army-curt-garland",
          "name": "Salvation Army Curt Garland Community Support Centre",
          "kind": "Food bank and community services",
          "operator": "The Salvation Army",
          "address": "3500 18th Ave, Prince George, BC V2N 1A9",
          "phone": "250-564-4000",
          "hours": "Office Mon–Fri 9 am–4 pm; thrift store Mon–Sat 9 am–5 pm; closed statutory holidays",
          "url": "https://www.sapg.ca/contact-us/",
          "source": "{…}",
          "checked": "2026-09-30"
        },
        {
          "id": "st-vincent-de-paul-drop-in",
          "name": "St. Vincent de Paul Society drop-in centre",
          "kind": "Meal program and drop-in",
          "operator": "Society of St. Vincent de Paul (St. Francis of Assisi Conference)",
          "address": "1220 2nd Ave, Prince George, BC V2L 3B3",
          "phone": "250-564-7871",
          "hours": null,
          "url": "https://www.pgdiocese.bc.ca/our-partners/st-vincent-de-paul-society/",
          "source": "{…}",
          "checked": "2026-09-30"
        },
        "… 14 more"
      ],
      "contacts": [],
      "links": [
        {
          "label": "bc211: call or text 2-1-1",
          "url": "https://bc.211.ca/",
          "description": "Free, confidential referrals to community and social services. Navigators by phone, text or chat 9 am–9 pm weekdays."
        }
      ]
    },
    "… 10 more"
  ],
  "meta": {
    "source": "PG Pulse public services directory",
    "sourceUrl": "https://princegeorgepulse.ca/community/help/",
    "updatedAt": "2026-10-02T03:43:49.993Z",
    "ageSec": 1235074,
    "license": "Facts copied from each operator’s own page (see each item’s source)",
    "attribution": "PG Pulse public services directory, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/community/help",
    "next": null,
    "docs": "/developers/reference/community/#get-community-help"
  }
}
```

## GET /api/v1/community/unions {#get-community-unions}

Union locals and labour councils with who they represent and official links.

- Cache: 1 h
- Source: [Each union’s own pages, the BC Labour Relations Board collective agreements list and employers’ agreements (see each entry)](https://princegeorgepulse.ca/community/unions/)
- Licence: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/), our own compilation; facts link to their public sources

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `sector` | query | string | public, health, education, forestry-mills, construction-trades, transport, retail-services, federal, other. |

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

**Example request**

```bash
curl "https://princegeorgepulse.ca/api/v1/community/unions"
```

**Example response** (trimmed)

```json
{
  "data": {
    "unions": [
      {
        "id": "cupe-399",
        "name": "CUPE Local 399",
        "union": "Canadian Union of Public Employees",
        "short": "CUPE 399",
        "sector": "public",
        "represents": "Outside workers employed by the City of Prince George.",
        "employers": [
          "City of Prince George"
        ],
        "url": "https://399.cupe.ca/",
        "phone": "250-563-6914",
        "email": null,
        "address": "1505 Victoria Street, Prince George, BC V2L 2L4",
        "affiliations": [],
        "…": "3 more keys"
      },
      {
        "id": "cupe-1048",
        "name": "CUPE Local 1048",
        "union": "Canadian Union of Public Employees",
        "short": "CUPE 1048",
        "sector": "public",
        "represents": "Inside workers employed by the City of Prince George.",
        "employers": [
          "City of Prince George"
        ],
        "url": "https://1048.cupe.ca/",
        "phone": null,
        "email": "membership@cupe1048.ca",
        "address": null,
        "affiliations": [],
        "…": "3 more keys"
      },
      "… 26 more"
    ],
    "councils": [
      {
        "id": "north-central-labour-council",
        "name": "North Central Labour Council",
        "union": "Canadian Labour Congress (chartered district labour council)",
        "short": "NCLC",
        "sector": "other",
        "represents": "Prince George-based council of affiliated union locals in north central BC; advocates for workers and hosts the Labour Day march and municipal all-candidates forums.",
        "employers": [],
        "url": "https://northcentrallabour.ca/",
        "phone": null,
        "email": null,
        "address": "PO Box 1449, Prince George, BC V2L 4V4",
        "affiliations": [
          "Canadian Labour Congress",
          "BC Federation of Labour"
        ],
        "…": "3 more keys"
      }
    ],
    "links": [
      {
        "label": "Labour Relations Board of BC",
        "url": "https://www.lrb.bc.ca/",
        "description": "Certifications, unfair labour practice complaints and decisions under the BC Labour Relations Code."
      },
      {
        "label": "LRB collective agreements search",
        "url": "https://www.lrb.bc.ca/collective-agreements",
        "description": "Collective agreements filed by BC unions and employers, searchable by employer, union and industry."
      },
      "… 6 more"
    ]
  },
  "meta": {
    "source": "Each union’s own pages, the BC Labour Relations Board collective agreements list and employers’ agreements (see each entry)",
    "sourceUrl": "https://princegeorgepulse.ca/community/unions/",
    "updatedAt": "2026-10-02T03:15:07.396Z",
    "ageSec": 1236797,
    "license": "CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/), our own compilation; facts link to their public sources",
    "attribution": "Each union’s own pages, the BC Labour Relations Board collective agreements list and employers’ agreements (see each entry), via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/community/unions",
    "next": null,
    "docs": "/developers/reference/community/#get-community-unions"
  }
}
```

## GET /api/v1/community/media {#get-community-media}

Local media: newspapers, online news, radio and TV stations with owners, frequencies and news-tip contacts.

- Cache: 1 h
- Source: [Each outlet’s own about and contact pages and its owner’s site (see each entry)](https://princegeorgepulse.ca/community/media/)
- Licence: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/), our own compilation; facts link to their public sources

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `kind` | query | string | newspaper, online, radio, tv, campus or magazine. |

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

**Example request**

```bash
curl "https://princegeorgepulse.ca/api/v1/community/media"
```

**Example response** (trimmed)

```json
{
  "data": {
    "outlets": [
      {
        "id": "prince-george-citizen",
        "name": "Prince George Citizen",
        "kind": "newspaper",
        "callSign": null,
        "frequency": null,
        "format": "Weekly print newspaper (free, pull boxes) with a daily-updated news website",
        "brand": null,
        "owner": "Cameron Stolz and Terresa Randall-Stolz (bought from Glacier Media in 2024)",
        "ownerUrl": null,
        "url": "https://www.princegeorgecitizen.com/",
        "newsUrl": "https://www.princegeorgecitizen.com/local-news",
        "tips": {
          "email": null,
          "phone": null,
          "url": "https://www.princegeorgecitizen.com/other/contact-us"
        },
        "…": "7 more keys"
      },
      {
        "id": "pg-daily-news",
        "name": "Prince George Daily News",
        "kind": "online",
        "callSign": null,
        "frequency": null,
        "format": "Independent online newspaper: news, opinion columns, sports",
        "brand": null,
        "owner": null,
        "ownerUrl": null,
        "url": "https://pgdailynews.ca/",
        "newsUrl": "https://pgdailynews.ca/",
        "tips": {
          "email": "bill@pgdailynews.ca",
          "phone": "250-552-6477",
          "url": "https://pgdailynews.ca/index.php/contact-us/"
        },
        "…": "7 more keys"
      },
      "… 12 more"
    ],
    "neverLink": [
      {
        "name": "250News / Opinion250",
        "domain": "250news.com",
        "reason": "Outlet closed 30 September 2017; the domain now serves an unrelated Russian-language placeholder (checked 2026-10-01). opinion250.com does not resolve."
      },
      {
        "name": "Opinion250",
        "domain": "opinion250.com",
        "reason": "Former name of 250News; domain does not resolve."
      },
      "… 3 more"
    ]
  },
  "meta": {
    "source": "Each outlet’s own about and contact pages and its owner’s site (see each entry)",
    "sourceUrl": "https://princegeorgepulse.ca/community/media/",
    "updatedAt": "2026-10-02T03:15:07.397Z",
    "ageSec": 1236797,
    "license": "CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/), our own compilation; facts link to their public sources",
    "attribution": "Each outlet’s own about and contact pages and its owner’s site (see each entry), via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/community/media",
    "next": null,
    "docs": "/developers/reference/community/#get-community-media"
  }
}
```

## GET /api/v1/community/facebook-groups {#get-community-facebook-groups}

Public Facebook groups and pages about the city: names, purpose and links only.

- Cache: 1 h
- Source: [Search results, group-finder listings and press coverage (Facebook itself is never fetched)](https://princegeorgepulse.ca/community/facebook-groups/)
- Licence: Names and links only (facts); descriptions are our own (CC BY 4.0)

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

**Example request**

```bash
curl "https://princegeorgepulse.ca/api/v1/community/facebook-groups"
```

**Example response** (trimmed)

```json
{
  "data": {
    "groups": [
      {
        "id": "hell-yeah-prince-george",
        "name": "Hell Yeah Prince George! (HYPG)",
        "url": "https://linktr.ee/hypg",
        "type": "group",
        "topic": "community",
        "what": "Positive local news, thank-yous, community asks and fundraising.",
        "privacy": null,
        "checked": "2026-10-01"
      },
      {
        "id": "pg-buy-and-sell-172631096159971",
        "name": "Prince George Bc Buy And Sell",
        "url": "https://www.facebook.com/groups/172631096159971",
        "type": "group",
        "topic": "buy-sell",
        "what": "Classifieds.",
        "privacy": "private",
        "checked": "2026-10-01"
      },
      "… 15 more"
    ],
    "elsewhere": [
      {
        "label": "r/princegeorge on Reddit",
        "url": "https://www.reddit.com/r/princegeorge/",
        "what": "The city's subreddit: questions, news links and recommendations."
      }
    ]
  },
  "meta": {
    "source": "Search results, group-finder listings and press coverage (Facebook itself is never fetched)",
    "sourceUrl": "https://princegeorgepulse.ca/community/facebook-groups/",
    "updatedAt": "2026-10-02T03:15:07.398Z",
    "ageSec": 1236797,
    "license": "Names and links only (facts); descriptions are our own (CC BY 4.0)",
    "attribution": "Search results, group-finder listings and press coverage (Facebook itself is never fetched), via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/community/facebook-groups",
    "next": null,
    "docs": "/developers/reference/community/#get-community-facebook-groups"
  }
}
```

## GET /api/v1/community/landmarks {#get-community-landmarks}

Landmarks with locations and one-line descriptions.

- Cache: 1 h
- Source: [OpenStreetMap (coordinates) and our own descriptions](https://www.openstreetmap.org/copyright)
- Licence: Coordinates ODbL (© OpenStreetMap contributors); descriptions CC BY 4.0

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

**Example request**

```bash
curl "https://princegeorgepulse.ca/api/v1/community/landmarks"
```

**Example response** (trimmed)

```json
{
  "data": [
    {
      "id": "cameron-street-bridge",
      "name": "Cameron Street Bridge",
      "kind": "Bridge",
      "what": "Historic bridge over the Nechako River beside the Nechako Crossing heritage site.",
      "lat": 53.92806,
      "lng": -122.76723,
      "page": null,
      "source": {
        "name": "OpenStreetMap",
        "url": "https://www.openstreetmap.org/way/480164720"
      },
      "checked": "2026-10-01"
    },
    {
      "id": "connaught-hill-park",
      "name": "Connaught Hill Park",
      "kind": "Park and lookout",
      "what": "Hilltop park near downtown with views over the city and the river valleys.",
      "lat": 53.91079,
      "lng": -122.74694,
      "page": "/maps/?layer=viewpoints",
      "source": {
        "name": "OpenStreetMap",
        "url": "https://www.openstreetmap.org/way/7609074"
      },
      "checked": "2026-10-01"
    },
    "… 10 more"
  ],
  "meta": {
    "source": "OpenStreetMap (coordinates) and our own descriptions",
    "sourceUrl": "https://www.openstreetmap.org/copyright",
    "updatedAt": "2026-10-02T04:52:44.494Z",
    "ageSec": 1230940,
    "license": "Coordinates ODbL (© OpenStreetMap contributors); descriptions CC BY 4.0",
    "attribution": "OpenStreetMap (coordinates) and our own descriptions, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/community/landmarks",
    "next": null,
    "docs": "/developers/reference/community/#get-community-landmarks"
  }
}
```

## GET /api/v1/facilities {#get-facilities}

Public and community facilities in Prince George: city hall, pools, arenas, sport centres, libraries, community halls, event centres, theatres, galleries and museums.

Hand-checked facts from each operator’s own pages (address, phone, amenities, published capacities, rental links, published hours), merged with what the daily job last read from those pages (drop-in schedules and fee tables). Hours appear only when the operator publishes them; `unknown` names the facts the operator does not publish. `openNow` is computed from the current published schedule or regular hours and ignores holidays. Types: city-hall, pool, spray-park, arena, sport, library, community-centre, hall, event-centre, theatre, arts, museum, park-venue.

- Cache: 15 min
- Source: [Each facility’s operator: City of Prince George’s facility pages and the operators’ own websites (each item lists its sources and the date they were checked); drop-in schedules and fees as the operator publishes them](https://princegeorgepulse.ca/facilities/)
- Licence: Facts as published by each operator, with a link to the page; compilation CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)
- Paginated: `limit` (default 100, max 300) and `offset`; also `format=csv`

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `type` | query | string | Facility type. One of: `city-hall`, `pool`, `spray-park`, `arena`, `sport`, `library`, `community-centre`, `hall`, `event-centre`, `theatre`, `arts`, `museum`, `park-venue`. |
| `rentable` | query | string | Only facilities with published rental or booking information. One of: `true`. |
| `q` | query | string | Text search in name, aliases, operator, address, description and amenities. Example: `pool`. |
| `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**

```bash
curl "https://princegeorgepulse.ca/api/v1/facilities?type=pool"
```

**Example response** (trimmed)

```json
{
  "data": [
    {
      "id": "canfor-leisure-pool",
      "slug": "canfor-leisure-pool",
      "name": "Canfor Leisure Pool",
      "aka": [],
      "type": "pool",
      "typeLabel": "Pool",
      "url": "https://princegeorgepulse.ca/facilities/canfor-leisure-pool/",
      "operator": "City of Prince George",
      "owner": null,
      "status": "open",
      "statusNote": "The city's only open public pool while the Prince George Aquatic Centre is closed for renovation (2026 to early 2028); clubs, lessons and most aquatics programs have moved here.",
      "address": "670 Quebec Street, Prince George, BC",
      "…": "25 more keys"
    },
    {
      "id": "prince-george-aquatic-centre",
      "slug": "prince-george-aquatic-centre",
      "name": "Prince George Aquatic Centre",
      "aka": [],
      "type": "pool",
      "typeLabel": "Pool",
      "url": "https://princegeorgepulse.ca/facilities/prince-george-aquatic-centre/",
      "operator": "City of Prince George",
      "owner": null,
      "status": "renovation",
      "statusNote": "Closed for renovation since January 1, 2026; the City estimates a two-year project with reopening in early 2028. The Sept 23, 2026 update to Council says the $37 million project is on time and on budget. Use the Canfo…",
      "address": null,
      "…": "25 more keys"
    }
  ],
  "meta": {
    "source": "Each facility’s operator: City of Prince George’s facility pages and the operators’ own websites (each item lists its sources and the date they were checked); drop-in schedules and fees as the operator publishes them",
    "sourceUrl": "https://princegeorgepulse.ca/facilities/",
    "updatedAt": "2026-10-15T15:22:26.319Z",
    "ageSec": 69958,
    "license": "Facts as published by each operator, with a link to the page; compilation CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)",
    "attribution": "PG Pulse compilation, via PG Pulse (princegeorgepulse.ca)",
    "total": 2,
    "count": 2,
    "limit": 100,
    "offset": 0
  },
  "links": {
    "self": "/api/v1/facilities?type=pool",
    "next": null,
    "docs": "/developers/reference/community/#get-facilities"
  }
}
```

## GET /api/v1/facilities/{slug} {#get-facilities-slug}

One facility by slug, with the upcoming events listed there.

- Cache: 15 min
- Source: [Each facility’s operator: City of Prince George’s facility pages and the operators’ own websites (each item lists its sources and the date they were checked); drop-in schedules and fees as the operator publishes them](https://princegeorgepulse.ca/facilities/)
- Licence: Facts as published by each operator, with a link to the page; compilation CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `slug` | path | string | Facility slug (see /facilities). Required. Example: `canfor-leisure-pool`. |

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

**Example request**

```bash
curl "https://princegeorgepulse.ca/api/v1/facilities/city-hall"
```

**Example response** (trimmed)

```json
{
  "data": {
    "id": "city-hall",
    "slug": "city-hall",
    "name": "Prince George City Hall",
    "aka": [],
    "type": "city-hall",
    "typeLabel": "City hall",
    "url": "https://princegeorgepulse.ca/facilities/city-hall/",
    "operator": "City of Prince George",
    "owner": null,
    "status": "open",
    "statusNote": null,
    "address": "1100 Patricia Boulevard, Prince George, BC V2L 3V9",
    "…": "26 more keys"
  },
  "meta": {
    "source": "Each facility’s operator: City of Prince George’s facility pages and the operators’ own websites (each item lists its sources and the date they were checked); drop-in schedules and fees as the operator publishes them",
    "sourceUrl": "https://princegeorgepulse.ca/facilities/",
    "updatedAt": "2026-10-15T15:22:26.319Z",
    "ageSec": 69958,
    "license": "Facts as published by each operator, with a link to the page; compilation CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)",
    "attribution": "PG Pulse compilation, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/facilities/city-hall",
    "next": null,
    "docs": "/developers/reference/community/#get-facilities-slug"
  }
}
```

## GET /api/v1/schools {#get-schools}

K-12 schools in and around Prince George: public, francophone and independent, with grades, enrolment, French programs and address.

Every school on the province’s K-12 list in the area (the configured school district plus schools near the city), refreshed monthly. `grades` and `level` come from the latest headcount by grade (the grades that actually have students); `enrolment` is the latest headcount ("All Grades"), null with `enrolmentNote` when the Ministry masks a count under 10. `catchment` is the name of the City catchment area that matches the school, if any: look up your address at https://princegeorgepulse.ca/zoning/ to find which catchment you are in. Website and phone only where OpenStreetMap has them (`contactSource`); official contacts for every school are in the Ministry’s BC School Contacts app (https://bcschoolcontacts.gov.bc.ca/).

- Cache: 1 h
- Source: [BC Ministry of Education and Child Care, BC Schools - K-12 with Francophone Indicators (BC Data Catalogue); grades and enrolment from BC Ministry of Education and Child Care, BC Schools - Student Headcount by Grade (BC Data Catalogue); website and phone from OpenStreetMap where mapped](https://catalogue.data.gov.bc.ca/dataset/bc-schools-k-12-with-francophone-indicators)
- Licence: Open Government Licence – British Columbia (https://www2.gov.bc.ca/gov/content/data/policy-standards/data-policies/open-data/open-government-licence-bc); contacts ODbL 1.0, © OpenStreetMap contributors (https://www.openstreetmap.org/copyright)
- Paginated: `limit` (default 100, max 500) and `offset`; also `format=csv`

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `level` | query | string | School level. One of: `elementary`, `middle`, `secondary`, `k12`, `adult`, `other`. |
| `sector` | query | string | Public (school district), francophone public (CSF) or independent. One of: `public`, `francophone`, `independent`. |
| `french` | query | string | French programs: immersion (early or late), francophone, core. One of: `immersion`, `francophone`, `core`. |
| `neighbourhood` | query | string | Neighbourhood slug (see /neighbourhoods). Example: `college-heights`. |
| `locality` | query | string | Town as the Ministry writes it. Example: `Prince George`. |
| `q` | query | string | Text search in name, address, neighbourhood. Example: `Heights`. |
| `near` | query | string | Sort by distance from "lat,lng" (adds `distanceKm`). Example: `53.9171,-122.7497`. |
| `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**

```bash
curl "https://princegeorgepulse.ca/api/v1/schools?level=secondary"
```

**Example response** (trimmed)

```json
{
  "data": [
    {
      "id": "05757012",
      "slug": "duchess-park-secondary-prince-george",
      "name": "Duchess Park Secondary",
      "url": "https://princegeorgepulse.ca/schools/duchess-park-secondary-prince-george/",
      "sector": "public",
      "sectorLabel": "Public (school district)",
      "level": "secondary",
      "levelLabel": "Secondary",
      "levelPublished": "Elementary",
      "facility": "Standard School",
      "program": "standard",
      "grades": "8–12",
      "…": "26 more keys"
    },
    {
      "id": "09357012",
      "slug": "secondaire-duchess-park-prince-george",
      "name": "Secondaire Duchess-Park",
      "url": "https://princegeorgepulse.ca/schools/secondaire-duchess-park-prince-george/",
      "sector": "francophone",
      "sectorLabel": "Francophone public (CSF)",
      "level": "secondary",
      "levelLabel": "Secondary",
      "levelPublished": "Secondary",
      "facility": "Standard School",
      "program": "standard",
      "grades": "8–12",
      "…": "26 more keys"
    },
    "… 8 more"
  ],
  "meta": {
    "source": "BC Ministry of Education and Child Care, BC Schools - K-12 with Francophone Indicators (BC Data Catalogue); grades and enrolment from BC Ministry of Education and Child Care, BC Schools - Student Headcount by Grade (B…",
    "sourceUrl": "https://catalogue.data.gov.bc.ca/dataset/bc-schools-k-12-with-francophone-indicators",
    "updatedAt": "2026-10-03T12:35:05.403Z",
    "ageSec": 1116799,
    "license": "Open Government Licence – British Columbia (https://www2.gov.bc.ca/gov/content/data/policy-standards/data-policies/open-data/open-government-licence-bc); contacts ODbL 1.0, © OpenStreetMap contributors (https://www.op…",
    "attribution": "BC Ministry of Education and Child Care, OpenStreetMap contributors, via PG Pulse (princegeorgepulse.ca)",
    "total": 10,
    "count": 10,
    "limit": 100,
    "offset": 0
  },
  "links": {
    "self": "/api/v1/schools?level=secondary",
    "next": null,
    "docs": "/developers/reference/community/#get-schools"
  }
}
```

## GET /api/v1/schools/post-secondary {#get-schools-post-secondary}

Universities, colleges and other post-secondary campuses in Prince George, plus early learning and official school links.

- Cache: 1 h
- Source: [Post-secondary institutions’ and governments’ own pages (each item links its source)](https://princegeorgepulse.ca/schools/)
- Licence: Facts from each institution’s own published information, with a link to it; compilation CC BY 4.0

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

**Example request**

```bash
curl "https://princegeorgepulse.ca/api/v1/schools/post-secondary"
```

**Example response** (trimmed)

```json
{
  "data": {
    "checked": "2026-10-01",
    "postSecondary": [
      {
        "id": "unbc",
        "name": "University of Northern British Columbia (UNBC)",
        "kind": "university",
        "address": "3333 University Way, Prince George, BC V2N 4Z9",
        "phone": "250-960-5555",
        "website": "https://www.unbc.ca/",
        "about": "Research university with its main campus in Prince George, on Lheidli T’enneh territory.",
        "sourceUrl": "https://www.unbc.ca/about-unbc/contact"
      },
      {
        "id": "cnc",
        "name": "College of New Caledonia (CNC), Prince George campus",
        "kind": "college",
        "address": "3330 22nd Avenue, Prince George, BC V2N 1P8",
        "phone": "250-562-2131",
        "website": "https://cnc.bc.ca/campuses/prince-george",
        "about": "Public college; Prince George is its main campus, with trades, health, business, university transfer and upgrading programs.",
        "sourceUrl": "https://cnc.bc.ca/campuses/prince-george"
      },
      "… 2 more"
    ],
    "earlyLearning": [
      {
        "id": "child-care-map",
        "label": "BC child care map",
        "url": "https://maps.gov.bc.ca/ess/hm/ccf/",
        "note": "The province’s map of licensed child care, with vacancies where centres report them.",
        "sourceUrl": "https://www2.gov.bc.ca/gov/content/family-social-supports/caring-for-young-children/family-information"
      },
      {
        "id": "ten-a-day",
        "label": "$10 a Day ChildCareBC centres",
        "url": "https://www2.gov.bc.ca/gov/content/family-social-supports/caring-for-young-children/childcarebc-programs/10-a-day-childcarebc-centres",
        "note": "Centres where families pay no more than $200 a month per child; contact centres directly.",
        "sourceUrl": "https://www2.gov.bc.ca/gov/content/family-social-supports/caring-for-young-children/family-information"
      },
      "… 3 more"
    ],
    "links": [
      {
        "id": "sd57",
        "label": "School District 57 (Prince George)",
        "url": "https://www.sd57.bc.ca/",
        "note": "Public schools: registration, calendars, catchments, bus routes and programs."
      },
      {
        "id": "csf",
        "label": "Conseil scolaire francophone (CSF) schools",
        "url": "https://www.csf.bc.ca/en/our-schools/",
        "note": "French-language public schools; in Prince George, École Franco-Nord and Secondaire Duchess-Park.",
        "sourceUrl": "https://www.csf.bc.ca/en/our-schools/"
      },
      "… 5 more"
    ],
    "firstNations": []
  },
  "meta": {
    "source": "Post-secondary institutions’ and governments’ own pages (each item links its source)",
    "sourceUrl": "https://princegeorgepulse.ca/schools/",
    "updatedAt": "2026-10-01T00:00:00-07:00",
    "updatedAtPrecision": "day",
    "ageSec": 1309704,
    "license": "Facts from each institution’s own published information, with a link to it; compilation CC BY 4.0",
    "attribution": "PG Pulse compilation, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/schools/post-secondary",
    "next": null,
    "docs": "/developers/reference/community/#get-schools-post-secondary"
  }
}
```

## GET /api/v1/schools/{id} {#get-schools-id}

One school by provincial school number or slug.

- Cache: 1 h
- Source: [BC Ministry of Education and Child Care, BC Schools - K-12 with Francophone Indicators (BC Data Catalogue); grades and enrolment from BC Ministry of Education and Child Care, BC Schools - Student Headcount by Grade (BC Data Catalogue); website and phone from OpenStreetMap where mapped](https://catalogue.data.gov.bc.ca/dataset/bc-schools-k-12-with-francophone-indicators)
- Licence: Open Government Licence – British Columbia (https://www2.gov.bc.ca/gov/content/data/policy-standards/data-policies/open-data/open-government-licence-bc); contacts ODbL 1.0, © OpenStreetMap contributors (https://www.openstreetmap.org/copyright)

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `id` | path | string | Provincial school number (mincode) or slug. Required. Example: `05757036`. |

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

**Example request**

```bash
curl "https://princegeorgepulse.ca/api/v1/schools/05757012"
```

**Example response** (trimmed)

```json
{
  "data": {
    "id": "05757012",
    "slug": "duchess-park-secondary-prince-george",
    "name": "Duchess Park Secondary",
    "url": "https://princegeorgepulse.ca/schools/duchess-park-secondary-prince-george/",
    "sector": "public",
    "sectorLabel": "Public (school district)",
    "level": "secondary",
    "levelLabel": "Secondary",
    "levelPublished": "Elementary",
    "facility": "Standard School",
    "program": "standard",
    "grades": "8–12",
    "…": "26 more keys"
  },
  "meta": {
    "source": "BC Ministry of Education and Child Care, BC Schools - K-12 with Francophone Indicators (BC Data Catalogue); grades and enrolment from BC Ministry of Education and Child Care, BC Schools - Student Headcount by Grade (B…",
    "sourceUrl": "https://catalogue.data.gov.bc.ca/dataset/bc-schools-k-12-with-francophone-indicators",
    "updatedAt": "2026-10-03T12:35:05.403Z",
    "ageSec": 1116799,
    "license": "Open Government Licence – British Columbia (https://www2.gov.bc.ca/gov/content/data/policy-standards/data-policies/open-data/open-government-licence-bc); contacts ODbL 1.0, © OpenStreetMap contributors (https://www.op…",
    "attribution": "BC Ministry of Education and Child Care, OpenStreetMap contributors, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/schools/05757012",
    "next": null,
    "docs": "/developers/reference/community/#get-schools-id"
  }
}
```
