Skip to content
PG Pulse
PG Pulse

Try searching for

Local knowledge for your AI tools

Connect Cursor, VS Code, Codex or Claude Code. Free MCP access, no key needed.

Connect your AI assistant
View as MarkdownFree, no key needed

Neighbourhoods: API reference

7 endpoints. Base URL https://princegeorgepulse.ca/api/v1. Conventions (envelope, paging, fields, formats, limits) are on the overview. All endpoints.

GET /api/v1/neighbourhoods #

The 31 City-mapped neighbourhoods (communities) with area, centre and counts.

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

Example request

bash
curl "https://princegeorgepulse.ca/api/v1/neighbourhoods"

Example response (trimmed)

json
{
  "data": [
    {
      "slug": "airport",
      "name": "Airport",
      "areaKm2": 21,
      "center": {
        "lat": 53.888695,
        "lng": -122.699975
      },
      "businesses": 23,
      "url": "/neighbourhoods/airport/",
      "geojson": "/api/v1/neighbourhoods/airport/geojson"
    },
    {
      "slug": "assman",
      "name": "Assman",
      "areaKm2": 0.56,
      "center": {
        "lat": 53.898725,
        "lng": -122.761995
      },
      "businesses": 7,
      "url": "/neighbourhoods/assman/",
      "geojson": "/api/v1/neighbourhoods/assman/geojson"
    },
    "… 29 more"
  ],
  "meta": {
    "source": "City of Prince George Open Data, Community Boundary",
    "sourceUrl": "https://services2.arcgis.com/CnkB6jCzAsyli34z/arcgis/rest/services/OpenData_AdminBoundary/FeatureServer/3",
    "updatedAt": "2026-10-12T00:00:00-07:00",
    "updatedAtPrecision": "day",
    "ageSec": 359299,
    "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, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/neighbourhoods",
    "next": null,
    "docs": "/developers/reference/neighbourhoods/#get-neighbourhoods"
  }
}

GET /api/v1/neighbourhoods/geojson #

All neighbourhood boundaries as GeoJSON.

  • GeoJSON: add format=geojson for a bare FeatureCollection

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

Example request

bash
curl "https://princegeorgepulse.ca/api/v1/neighbourhoods/geojson"

Example response (trimmed)

json
{
  "data": {
    "type": "FeatureCollection",
    "features": [
      {
        "type": "Feature",
        "properties": {
          "name": "Airport",
          "slug": "airport",
          "areaKm2": 21
        },
        "geometry": {
          "type": "Polygon",
          "coordinates": [
            [
              [
                -122.66564,
                53.91954
              ],
              [
                -122.66559,
                53.90895
              ],
              "… 125 more"
            ]
          ]
        }
      },
      {
        "type": "Feature",
        "properties": {
          "name": "Assman",
          "slug": "assman",
          "areaKm2": 0.56
        },
        "geometry": {
          "type": "Polygon",
          "coordinates": [
            [
              [
                -122.75791,
                53.90227
              ],
              [
                -122.7579,
                53.90103
              ],
              "… 15 more"
            ]
          ]
        }
      },
      "… 29 more"
    ]
  },
  "meta": {
    "source": "City of Prince George Open Data, Community Boundary",
    "sourceUrl": "https://services2.arcgis.com/CnkB6jCzAsyli34z/arcgis/rest/services/OpenData_AdminBoundary/FeatureServer/3",
    "updatedAt": "2026-10-12T00:00:00-07:00",
    "updatedAtPrecision": "day",
    "ageSec": 359299,
    "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, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/neighbourhoods/geojson",
    "next": null,
    "docs": "/developers/reference/neighbourhoods/#get-neighbourhoods-geojson"
  }
}

GET /api/v1/neighbourhoods/lookup #

Which neighbourhood contains a point.

  • Cache: 24 h
  • Source: City of Prince George open data
  • Licence: Open Government Licence – City of Prince George (https://pgmapinfo.princegeorge.ca/OpenData/CityofPrinceGeorge_Open_Government_License_Open_Data.pdf)
ParameterInTypeDescription
latquerynumberLatitude. Required. Example: 53.9171.
lngquerynumberLongitude. Required. Example: -122.7497.

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

Example request

bash
curl "https://princegeorgepulse.ca/api/v1/neighbourhoods/lookup?lat=53.9171&lng=-122.7497"

Example response (trimmed)

json
{
  "data": {
    "slug": "downtown",
    "name": "Downtown",
    "url": "/neighbourhoods/downtown/",
    "api": "/api/v1/neighbourhoods/downtown"
  },
  "meta": {
    "source": "City of Prince George open data",
    "sourceUrl": "https://data-cityofpg.opendata.arcgis.com/",
    "updatedAt": null,
    "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, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/neighbourhoods/lookup?lat=53.9171&lng=-122.7497",
    "next": null,
    "docs": "/developers/reference/neighbourhoods/#get-neighbourhoods-lookup"
  }
}

GET /api/v1/neighbourhoods/aliases #

Subdivision and local area names (Southridge, Highland Park, the Hart) and the City neighbourhoods they are in.

Each name with its kind (subdivision, local name, outside the city), the neighbourhood slugs it belongs to (empty = outside city limits) and a note. q finds a name (exact first, then prefix, then contains). Compiled from published subdivision lists placed in the City’s community boundaries; correctable in the admin (dataset neighbourhood-aliases).

ParameterInTypeDescription
qquerystringA place name. Example: Southridge.
limitqueryintegerItems per page (default 50, max 500 unless noted). Example: 20.
offsetqueryintegerItems 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/neighbourhoods/aliases"

Example response (trimmed)

json
{
  "data": [
    {
      "name": "South Kelly Gardens",
      "kind": "subdivision",
      "neighbourhoods": [
        {
          "slug": "austin-east",
          "name": "Austin East",
          "url": "/neighbourhoods/austin-east/"
        },
        {
          "slug": "austin-west",
          "name": "Austin West",
          "url": "/neighbourhoods/austin-west/"
        }
      ],
      "outsideCity": false,
      "note": null,
      "source": {
        "id": "moveup",
        "label": "Move Up Prince George: neighbourhoods (City of Prince George)",
        "url": "https://www.moveupprincegeorge.ca/moving-here/neighbourhoods"
      }
    },
    {
      "name": "Nechako Heights",
      "kind": "subdivision",
      "neighbourhoods": [
        {
          "slug": "austin-east",
          "name": "Austin East",
          "url": "/neighbourhoods/austin-east/"
        },
        {
          "slug": "austin-west",
          "name": "Austin West",
          "url": "/neighbourhoods/austin-west/"
        }
      ],
      "outsideCity": false,
      "note": null,
      "source": {
        "id": "moveup",
        "label": "Move Up Prince George: neighbourhoods (City of Prince George)",
        "url": "https://www.moveupprincegeorge.ca/moving-here/neighbourhoods"
      }
    },
    "… 83 more"
  ],
  "meta": {
    "source": "PG Pulse compilation of subdivision and local area names, placed in City of Prince George community boundaries",
    "sourceUrl": "https://princegeorgepulse.ca/neighbourhoods/#also-known-as",
    "updatedAt": "2026-10-01T00:00:00-07:00",
    "updatedAtPrecision": "day",
    "ageSec": 1309699,
    "license": "CC BY 4.0 compilation; boundaries Open Government Licence – City of Prince George (https://pgmapinfo.princegeorge.ca/OpenData/CityofPrinceGeorge_Open_Government_License_Open_Data.pdf)",
    "attribution": "PG Pulse compilation of subdivision and local area names, placed in City of Prince George community boundaries, via PG Pulse (princegeorgepulse.ca)",
    "total": 85,
    "count": 85,
    "limit": 200,
    "offset": 0
  },
  "links": {
    "self": "/api/v1/neighbourhoods/aliases",
    "next": null,
    "docs": "/developers/reference/neighbourhoods/#get-neighbourhoods-aliases"
  }
}

GET /api/v1/neighbourhoods/{slug} #

One neighbourhood: area, property-crime summary and top businesses.

ParameterInTypeDescription
slugpathstringNeighbourhood slug. Required. Example: downtown.

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

Example request

bash
curl "https://princegeorgepulse.ca/api/v1/neighbourhoods/downtown"

Example response (trimmed)

json
{
  "data": {
    "slug": "downtown",
    "name": "Downtown",
    "areaKm2": 1.5,
    "center": {
      "lat": 53.915775,
      "lng": -122.74819
    },
    "url": "/neighbourhoods/downtown/",
    "crime": {
      "months": [
        "2024-09",
        "2024-10",
        "… 22 more"
      ],
      "byMonth": {
        "theft": [
          38,
          28,
          "… 22 more"
        ],
        "fromauto": [
          20,
          13,
          "… 22 more"
        ],
        "mischief": [
          27,
          26,
          "… 22 more"
        ],
        "bne": [
          11,
          7,
          "… 22 more"
        ],
        "auto": [
          1,
          0,
          "… 22 more"
        ],
        "bike": [
          0,
          1,
          "… 22 more"
        ]
      },
      "last12": 968,
      "prev12": 895,
      "byType12": {
        "theft": 319,
        "fromauto": 199,
        "mischief": 277,
        "bne": 138,
        "auto": 21,
        "bike": 14
      },
      "byCommunity12": [
        {
          "name": "Downtown",
          "count": 968,
          "perKm2": 646.9587462863218
        }
      ],
      "byYear": [
        {
          "year": 2021,
          "count": 1004,
          "partial": false
        },
        {
          "year": 2022,
          "count": 1186,
          "partial": false
        },
        "… 4 more"
      ],
      "byHour": [
        25,
        25,
        "… 22 more"
      ],
      "byWeekday": [
        115,
        120,
        "… 5 more"
      ],
      "periodLabel": "September 2025 to August 2026"
    },
    "businessCount": 610,
    "topCategories": [
      {
        "slug": "legal",
        "label": "Lawyers & notaries",
        "count": 33
      },
      {
        "slug": "finance-insurance",
        "label": "Insurance & finance",
        "count": 32
      },
      "… 10 more"
    ],
    "businesses": [
      {
        "slug": "2-percent-realty-experts",
        "name": "2 Percent Realty Experts",
        "category": "real-estate",
        "street": "715 Victoria St",
        "url": "/business/2-percent-realty-experts/"
      },
      {
        "slug": "a-plus-automatic-door-and-storefront-ltd",
        "name": "A Plus Automatic Door and Storefront",
        "category": "windows-glass",
        "street": "841 2nd Ave",
        "url": "/business/a-plus-automatic-door-and-storefront/"
      },
      "… 23 more"
    ],
    "businessesApi": "/api/v1/businesses?neighbourhood=downtown",
    "geojson": "/api/v1/neighbourhoods/downtown/geojson"
  },
  "meta": {
    "source": "City of Prince George open data (boundaries, RCMP property-crime occurrences)",
    "sourceUrl": "https://data-cityofpg.opendata.arcgis.com/",
    "updatedAt": null,
    "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, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/neighbourhoods/downtown",
    "next": null,
    "docs": "/developers/reference/neighbourhoods/#get-neighbourhoods-slug"
  }
}

GET /api/v1/neighbourhoods/{slug}/geojson #

One neighbourhood boundary as a GeoJSON Feature.

  • Cache: 24 h
  • Source: City of Prince George open data
  • 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
ParameterInTypeDescription
slugpathstringNeighbourhood slug. Required. Example: downtown.

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

Example request

bash
curl "https://princegeorgepulse.ca/api/v1/neighbourhoods/downtown/geojson"

Example response (trimmed)

json
{
  "data": {
    "type": "FeatureCollection",
    "features": [
      {
        "type": "Feature",
        "properties": {
          "name": "Downtown",
          "slug": "downtown"
        },
        "geometry": {
          "type": "Polygon",
          "coordinates": [
            [
              [
                -122.72706,
                53.9144
              ],
              [
                -122.7274,
                53.9144
              ],
              "… 61 more"
            ]
          ]
        }
      }
    ]
  },
  "meta": {
    "source": "City of Prince George open data",
    "sourceUrl": "https://data-cityofpg.opendata.arcgis.com/",
    "updatedAt": null,
    "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, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/neighbourhoods/downtown/geojson",
    "next": null,
    "docs": "/developers/reference/neighbourhoods/#get-neighbourhoods-slug-geojson"
  }
}

GET /api/v1/neighbourhoods/stats #

Property crime per neighbourhood, last 12 full months (count and per km²).

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

Example request

bash
curl "https://princegeorgepulse.ca/api/v1/neighbourhoods/stats"

Example response (trimmed)

json
{
  "data": [
    {
      "slug": "airport",
      "name": "Airport",
      "crime12": 28,
      "crimePerKm2": 1.3
    },
    {
      "slug": "assman",
      "name": "Assman",
      "crime12": 23,
      "crimePerKm2": 41.4
    },
    "… 29 more"
  ],
  "meta": {
    "source": "RCMP property crime occurrences, City of Prince George Open Data",
    "sourceUrl": "https://data-cityofpg.opendata.arcgis.com/",
    "updatedAt": null,
    "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 and RCMP, via PG Pulse (princegeorgepulse.ca)",
    "period": "September 2025 to August 2026"
  },
  "links": {
    "self": "/api/v1/neighbourhoods/stats",
    "next": null,
    "docs": "/developers/reference/neighbourhoods/#get-neighbourhoods-stats"
  }
}

Add PG Pulse to your home screen

Your browser installs apps from its Share menu.

  1. Tap Share in the browser toolbar (at the bottom of the screen on iPhone, at the top on iPad).
  2. Scroll down and tap Add to Home Screen.
  3. Tap Add. PG Pulse opens from its icon like any other app.