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

Maps: API reference

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

GET /api/v1/maps/layers #

Every map layer (parks, trails, playgrounds, washrooms, EV chargers, schools…).

  • Cache: 24 h
  • Source: City of Prince George open data and OpenStreetMap contributors
  • Licence: Open Government Licence – City of Prince George (https://pgmapinfo.princegeorge.ca/OpenData/CityofPrinceGeorge_Open_Government_License_Open_Data.pdf); ODbL 1.0, © OpenStreetMap contributors (https://www.openstreetmap.org/copyright)

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

Example request

bash
curl "https://princegeorgepulse.ca/api/v1/maps/layers"

Example response (trimmed)

json
{
  "data": [
    {
      "id": "parks",
      "label": "Parks",
      "singular": "park",
      "group": "Outdoors",
      "geometry": "polygon",
      "description": "City parks, nature parks and athletic parks with their amenities.",
      "sources": [
        {
          "name": "City of Prince George open data",
          "url": "https://data-cityofpg.opendata.arcgis.com/"
        }
      ],
      "url": "/maps/parks/",
      "api": "/api/v1/maps/layers/parks",
      "geojson": "/api/v1/maps/layers/parks?format=geojson"
    },
    {
      "id": "trails",
      "label": "Trails",
      "singular": "trail",
      "group": "Outdoors",
      "geometry": "line",
      "description": "Walking, multi-use and equestrian trails maintained by the City.",
      "sources": [
        {
          "name": "City of Prince George open data",
          "url": "https://data-cityofpg.opendata.arcgis.com/"
        }
      ],
      "url": "/maps/trails/",
      "api": "/api/v1/maps/layers/trails",
      "geojson": "/api/v1/maps/layers/trails?format=geojson"
    },
    "… 48 more"
  ],
  "meta": {
    "source": "City of Prince George open data and OpenStreetMap contributors",
    "sourceUrl": "https://princegeorgepulse.ca/maps/",
    "updatedAt": null,
    "license": "Open Government Licence – City of Prince George (https://pgmapinfo.princegeorge.ca/OpenData/CityofPrinceGeorge_Open_Government_License_Open_Data.pdf); ODbL 1.0, © OpenStreetMap contributors (https://www.openstreetmap.…",
    "attribution": "City of Prince George and OpenStreetMap contributors, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/maps/layers",
    "next": null,
    "docs": "/developers/reference/maps/#get-maps-layers"
  }
}

GET /api/v1/maps/layers/{id} #

One map layer as a GeoJSON FeatureCollection.

Add ?format=geojson for a bare FeatureCollection (application/geo+json) you can drop into any map library. Point-like features carry properties.at = [lat, lng]. Narrow large layers with bbox (features whose bounds overlap the box) or sort by distance with near (adds properties.distanceM, measured to the feature’s point or the centre of its bounds).

ParameterInTypeDescription
idpathstringLayer id. Required. One of: parks, trails, playgrounds, sports-fields, outdoor-rinks, dog-parks, disc-golf, viewpoints, boat-launches, public-art, washrooms, drinking-water, ev-chargers, fuel, car-washes, transit-stops, schools, community-centres, fire-halls, garbage-zones, waste-sites, recycling, health-care, pharmacies, libraries, government-offices, post-offices, police-ambulance, zoning, future-land-use, rural-zoning, provincial-parks, rec-sites, rec-trails, campgrounds, lakes, boat-launches-region, swimming, waterfalls, summits, huts, ski-hills, sledding, fishing-waters, wildlife-management-units, shooting-ranges, places-of-worship, child-care, heritage-sites, facilities. Example: dog-parks.
qquerystringText search in feature names.
bboxquerystringOnly features overlapping this box: west,south,east,north in degrees (WGS84). Example: -122.770,53.907,-122.730,53.927.
nearquerystringSort by distance from "lat,lng" and add properties.distanceM. Example: 53.9171,-122.7497.
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, geojson).

Example request

bash
curl "https://princegeorgepulse.ca/api/v1/maps/layers/dog-parks?limit=2"

Example response (trimmed)

json
{
  "data": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          -122.78451,
          53.99194
        ]
      },
      "properties": {
        "name": "Corporal Darren Fitzpatrick Bravery Park",
        "kind": "Fenced off-leash park",
        "addr": "6877 Glenview Drive",
        "info": [
          [
            "Fenced",
            "Yes, with two separate areas: one for large or energetic dogs, one for small or older dogs"
          ],
          [
            "Features",
            "On-leash to off-leash transition area, pet waste bins"
          ],
          "… 3 more"
        ],
        "url": "https://www.princegeorge.ca/city-services/bylaw-enforcement/pets-leash-areas",
        "src": "city",
        "id": "dog-bravery-park",
        "at": [
          53.99194,
          -122.78451
        ]
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          -122.76049,
          53.91757
        ]
      },
      "properties": {
        "name": "Duchess Park",
        "kind": "Fenced off-leash park",
        "addr": "2425 Ross Crescent",
        "info": [
          [
            "Fenced",
            "Yes, a large fully fenced area plus a separate fenced area for small or older dogs"
          ],
          [
            "Features",
            "Double-gated entry, perimeter ring trail, benches, dog water fountain, pet waste bins"
          ],
          "… 3 more"
        ],
        "url": "https://www.princegeorge.ca/city-services/bylaw-enforcement/pets-leash-areas",
        "src": "city",
        "id": "dog-duchess-park",
        "at": [
          53.91757,
          -122.76049
        ]
      }
    }
  ],
  "meta": {
    "source": "City of Prince George, pets and off-leash areas; City of Prince George open data; OpenStreetMap contributors (ODbL)",
    "sourceUrl": "https://www.princegeorge.ca/city-services/bylaw-enforcement/pets-leash-areas",
    "updatedAt": "2026-10-11T10:30:06.887Z",
    "ageSec": 433096,
    "license": "Open Government Licence – City of Prince George (https://pgmapinfo.princegeorge.ca/OpenData/CityofPrinceGeorge_Open_Government_License_Open_Data.pdf); Open Government Licence – City of Prince George (https://pgmapinfo…",
    "attribution": "City of Prince George, pets and off-leash areas, City of Prince George open data, OpenStreetMap contributors, via PG Pulse (princegeorgepulse.ca)",
    "layer": {
      "id": "dog-parks",
      "label": "Dog parks",
      "singular": "dog park",
      "group": "Outdoors",
      "geometry": "point",
      "description": "The City’s seven designated off-leash areas, fenced parks and open meadows.",
      "sources": [
        {
          "name": "City of Prince George, pets and off-leash areas",
          "url": "https://www.princegeorge.ca/city-services/bylaw-enforcement/pets-leash-areas"
        },
        {
          "name": "City of Prince George open data",
          "url": "https://data-cityofpg.opendata.arcgis.com/"
        },
        "… 1 more"
      ],
      "url": "/maps/dog-parks/",
      "api": "/api/v1/maps/layers/dog-parks",
      "geojson": "/api/v1/maps/layers/dog-parks?format=geojson"
    },
    "total": 7,
    "count": 2,
    "limit": 2,
    "offset": 0
  },
  "links": {
    "self": "/api/v1/maps/layers/dog-parks?limit=2",
    "next": "/api/v1/maps/layers/dog-parks?limit=2&offset=2",
    "docs": "/developers/reference/maps/#get-maps-layers-id"
  }
}

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.