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

Getting around: API reference

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

GET /api/v1/airport/info #

Prince George Airport (YXS): airlines and destinations, parking rates, taxis, rental cars and shuttles, and where to check flight times.

Live flying conditions (METAR, TAF) are at /airport. The airport publishes no open flight-status feed and its terms do not allow republishing its flight board, so flightStatus.url links to it.

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

Example request

bash
curl "https://princegeorgepulse.ca/api/v1/airport/info"

Example response (trimmed)

json
{
  "data": {
    "name": "Prince George Airport (YXS)",
    "operator": "Prince George Airport Authority",
    "addr": "4141 Airport Road – 10, Prince George, BC V2N 4M6",
    "lat": 53.8844198,
    "lng": -122.6737511,
    "located": "BC Address Geocoder (score 100, CIVIC_NUMBER) for 4141 Airport Rd",
    "phone": "250-963-2400",
    "fax": "250-963-3462",
    "url": "https://www.pgairport.ca/",
    "airlines": [
      {
        "name": "Air Canada",
        "url": "https://www.aircanada.com/ca/en/aco/home.html",
        "destinations": [
          "Vancouver (YVR)"
        ],
        "seasonal": false,
        "phone": "1-888-247-2262",
        "note": "Daily direct to Vancouver. Baggage: 1-888-689-2247.",
        "source": {
          "name": "Prince George Airport Authority: Airline information",
          "url": "https://www.pgairport.ca/passenger-information/airline-information/"
        }
      },
      {
        "name": "WestJet",
        "url": "https://www.westjet.com/en-ca",
        "destinations": [
          "Vancouver (YVR)",
          "Calgary (YYC)"
        ],
        "seasonal": false,
        "phone": "1-800-538-5696",
        "note": "Daily to Vancouver and Calgary. Local baggage: 250-963-8197. Flight status: westjet.com/en-ca/guest-updates.",
        "source": {
          "name": "Prince George Airport Authority: Airline information",
          "url": "https://www.pgairport.ca/passenger-information/airline-information/"
        }
      },
      "… 5 more"
    ],
    "parking": {
      "summary": "Short-term hourly lot in front of the terminal (pay by plate inside the terminal, cash or card); daily/weekly lot (permit at entrance, pay at the Arrivals paystation or by card at the exit); monthly, annual and premiu…",
      "rates": [
        {
          "item": "Hourly (max 2 hours)",
          "price": "$2 per hour"
        },
        {
          "item": "Daily",
          "price": "$15 per day"
        },
        "… 5 more"
      ],
      "contacts": [
        {
          "label": "Long-term and premium parking",
          "phone": "250-963-2411"
        },
        {
          "label": "Security (accessible parking, receipts)",
          "phone": "250-963-2406"
        }
      ],
      "paymentPortal": "https://app.securepark.io/user/pgaa",
      "source": {
        "name": "Prince George Airport Authority: Parking",
        "url": "https://www.pgairport.ca/passenger-information/parking/"
      }
    },
    "groundTransport": [
      {
        "name": "Prince George Taxi",
        "kind": "Taxi",
        "phone": "250-564-4444",
        "url": "https://pgtaxi.ca/",
        "note": "Waits outside the terminal for arriving flights; cash or credit card. Accessible taxis available.",
        "source": {
          "name": "Prince George Airport Authority: Transportation",
          "url": "https://www.pgairport.ca/passenger-information/transportation/"
        }
      },
      {
        "name": "Uride",
        "kind": "Ride share",
        "phone": null,
        "url": "https://www.uride.co/locations/prince-george",
        "note": "App-based ride share serving the airport.",
        "source": {
          "name": "Prince George Airport Authority: Transportation",
          "url": "https://www.pgairport.ca/passenger-information/transportation/"
        }
      },
      "… 5 more"
    ],
    "…": "3 more keys"
  },
  "meta": {
    "source": "Prince George Airport Authority: Contact",
    "sourceUrl": "https://www.pgairport.ca/contact/",
    "updatedAt": "2026-09-30T12:00:00Z",
    "ageSec": 1378104,
    "license": "Facts copied from the operator's published pages, with attribution",
    "attribution": "Prince George Airport Authority: Contact"
  },
  "links": {
    "self": "/api/v1/airport/info",
    "next": null,
    "docs": "/developers/reference/getting-around/#get-airport-info"
  }
}

GET /api/v1/intercity #

Intercity buses and trains from Prince George (BC Bus North, VIA Rail, Ebus, Northern Health Connections, Route 161), with the next VIA Rail train times.

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

Example request

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

Example response (trimmed)

json
{
  "data": {
    "services": [
      {
        "id": "bc-bus-north",
        "name": "BC Bus North",
        "kind": "Bus",
        "operator": "Tahltan NST Bussing Ltd. (bcbus.ca redirects to tnst.ca)",
        "routes": [
          "{…}",
          "{…}",
          "… 2 more"
        ],
        "phone": "778-763-4155",
        "hours": "Daily 8:30 am–5 pm; closed statutory holidays",
        "url": "https://bcbus.ca/",
        "stopAddr": "1248 7th Ave (beside Canfor Leisure Pool); also Pine Centre Mall (Starbucks/TD end) and the College Heights Smart Centres (Walmart) stop",
        "stopLat": 53.9137519,
        "stopLng": -122.7476766,
        "stopLocated": "BC Address Geocoder (score 99, BLOCK) for 1248 7th Ave",
        "…": "3 more keys"
      },
      {
        "id": "via-rail-jasper-prince-rupert",
        "name": "VIA Rail Jasper – Prince Rupert train",
        "kind": "Train",
        "operator": "VIA Rail Canada",
        "routes": [
          "{…}",
          "{…}"
        ],
        "departuresPerWeek": 3,
        "phone": "1-888-842-7245",
        "phoneAlt": "250-564-0178 (ticket counter)",
        "url": "https://www.viarail.ca/en/explore-our-destinations/trains/regional-trains/jasper-prince-rupert",
        "scheduleUrl": "https://www.viarail.ca/en/plan/train-schedules",
        "stopAddr": "Prince George train station, 1300 1st Ave, Prince George, BC V2L 2Y3",
        "stopLat": 53.9189694,
        "…": "9 more keys"
      },
      "… 3 more"
    ],
    "trains": {
      "station": {
        "id": "454",
        "name": "Prince George",
        "lat": 53.919317,
        "lng": -122.744185
      },
      "calls": [
        {
          "train": "5",
          "route": "Jasper - Prince Rupert",
          "headsign": "Prince Rupert",
          "direction": "westbound",
          "arrives": "2026-10-17T00:08:00.000Z",
          "departs": "2026-10-17T15:00:00.000Z"
        },
        {
          "train": "6",
          "route": "Jasper - Prince Rupert",
          "headsign": "Jasper",
          "direction": "eastbound",
          "arrives": "2026-10-17T03:29:00.000Z",
          "departs": "2026-10-17T15:15:00.000Z"
        },
        "… 10 more"
      ],
      "feed": {
        "start": "20261013",
        "end": "20270212"
      },
      "source": "VIA Rail Canada GTFS schedule",
      "sourceUrl": "https://www.viarail.ca/en/developer-resources",
      "licence": "Open Government Licence – Canada 2.0 (https://open.canada.ca/en/open-government-licence-canada)"
    }
  },
  "meta": {
    "source": "Intercity bus and train operators (each service links its source)",
    "sourceUrl": "https://princegeorgepulse.ca/getting-around/",
    "updatedAt": "2026-10-16T10:04:26.217Z",
    "ageSec": 2638,
    "license": "Facts copied from the operator's published pages, with attribution; train times: Open Government Licence – Canada 2.0 (https://open.canada.ca/en/open-government-licence-canada)",
    "attribution": "The carriers named in each item, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/intercity",
    "next": null,
    "docs": "/developers/reference/getting-around/#get-intercity"
  }
}

GET /api/v1/taxis #

Taxi and ride-share services confirmed to operate in Prince George.

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

Example request

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

Example response (trimmed)

json
{
  "data": [
    {
      "name": "Prince George Taxi",
      "phone": "250-564-4444",
      "url": "https://pgtaxi.ca/",
      "addr": "331 1st Ave, Prince George, BC",
      "note": "24/7; 60 cars and 5 minivans; airport service; booking app; battery boosts.",
      "source": {
        "name": "Prince George Taxi",
        "url": "https://pgtaxi.ca/"
      }
    },
    {
      "name": "Uride (ride share)",
      "phone": null,
      "url": "https://www.uride.co/locations/prince-george",
      "addr": null,
      "note": "App-based ride share; Prince George listed on Uride's locations page and on the airport's transportation page.",
      "source": {
        "name": "Uride: Prince George",
        "url": "https://www.uride.co/locations/prince-george"
      }
    }
  ],
  "meta": {
    "source": "The airport authority’s published pages (airline information, parking, transportation)",
    "sourceUrl": "https://princegeorgepulse.ca/getting-around/",
    "updatedAt": "2026-09-30T12:00:00Z",
    "ageSec": 1378104,
    "license": "Facts copied from the operator's published pages, with attribution",
    "attribution": "The airport authority, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/taxis",
    "next": null,
    "docs": "/developers/reference/getting-around/#get-taxis"
  }
}

GET /api/v1/roads/highways #

Highways out of Prince George, winter tire rules and DriveBC links (live road events are at /roads).

  • Cache: 1 h
  • Source: Province of BC: Winter driving; DriveBC
  • Licence: Open Government Licence – British Columbia (https://www2.gov.bc.ca/gov/content/data/policy-standards/data-policies/open-data/open-government-licence-bc)

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

Example request

bash
curl "https://princegeorgepulse.ca/api/v1/roads/highways"

Example response (trimmed)

json
{
  "data": {
    "highways": [
      {
        "name": "Highway 97 south (Cariboo Highway) to Quesnel, Williams Lake, 100 Mile House and Cache Creek",
        "note": "Ebus Prince George – Kamloops follows this corridor (stops on Cariboo Hwy 97)."
      },
      {
        "name": "Highway 97 north (Hart Highway) to Mackenzie junction, Chetwynd and Dawson Creek",
        "note": "BC Bus North Prince George – Fort St John corridor."
      },
      "… 2 more"
    ],
    "drivebcLinks": [
      {
        "label": "DriveBC road conditions map",
        "url": "https://www.drivebc.ca/"
      },
      {
        "label": "DriveBC highway cameras",
        "url": "https://www.drivebc.ca/cameras"
      },
      "… 3 more"
    ],
    "winterTires": {
      "url": "https://www2.gov.bc.ca/gov/content/transportation/driving-and-cycling/traveller-information/seasonal/winter-driving",
      "note": "Signed highways need winter tires or chains on board October 1 to April 30; some highways outside mountain passes or high-snowfall areas end March 31.",
      "mapPdf": "https://www2.gov.bc.ca/assets/gov/driving-and-transportation/driving/winter/pdfs/sirmap.pdf"
    },
    "source": {
      "name": "Province of BC: Winter driving",
      "url": "https://www2.gov.bc.ca/gov/content/transportation/driving-and-cycling/traveller-information/seasonal/winter-driving"
    },
    "checked": "2026-09-30"
  },
  "meta": {
    "source": "Province of BC: Winter driving; DriveBC",
    "sourceUrl": "https://www2.gov.bc.ca/gov/content/transportation/driving-and-cycling/traveller-information/seasonal/winter-driving",
    "updatedAt": "2026-09-30T12:00:00Z",
    "ageSec": 1378104,
    "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 British Columbia, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/roads/highways",
    "next": null,
    "docs": "/developers/reference/getting-around/#get-roads-highways"
  }
}

GET /api/v1/ev-chargers #

Public EV charging stations in Prince George: ports, power, connectors, network and hours.

Stations at one site are grouped. Same data as the map layer /maps/layers/ev-chargers, flattened. Refreshed daily into the PG Pulse database.

ParameterInTypeDescription
qquerystringText search in name, address and network. Example: Tesla.
fastquerybooleanOnly sites with DC fast charging.
nearquerystringSort by distance from "lat,lng" (adds 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).

Example request

bash
curl "https://princegeorgepulse.ca/api/v1/ev-chargers?fast=1&limit=3"

Example response (trimmed)

json
{
  "data": [
    {
      "id": "ev-bc-hydro---prince-george---college-of-new-caledonia-377620",
      "name": "BC Hydro - Prince George - College of New Caledonia",
      "kind": "DC fast charging",
      "addr": "3330 22 Ave",
      "lat": 53.90412,
      "lng": -122.78537,
      "dcFastPorts": 15,
      "level2Ports": 0,
      "maxPower": "350 kW",
      "connectors": [
        "CHAdeMO",
        "CCS",
        "… 1 more"
      ],
      "network": "BCHYDRO",
      "hours": "24 hours daily",
      "…": "2 more keys"
    },
    {
      "id": "ev-bc-hydro---prince-george---superstore-156686",
      "name": "BC Hydro - Prince George - Superstore",
      "kind": "DC fast charging",
      "addr": "2155 Ferry Ave",
      "lat": 53.8886,
      "lng": -122.77,
      "dcFastPorts": 2,
      "level2Ports": 0,
      "maxPower": "50 kW",
      "connectors": [
        "CHAdeMO",
        "CCS"
      ],
      "network": "BCHYDRO",
      "hours": "24 hours daily",
      "…": "2 more keys"
    },
    "… 1 more"
  ],
  "meta": {
    "source": "Natural Resources Canada / U.S. DOE Alternative Fuels Data Center station locator",
    "sourceUrl": "https://natural-resources.canada.ca/energy-efficiency/transportation-energy-efficiency/electric-charging-alternative-fuelling-stationslocator-map",
    "updatedAt": "2026-10-11T10:30:08.240Z",
    "ageSec": 433096,
    "license": "Alternative Fuels Data Center station data (public), with attribution; OpenStreetMap fallback under ODbL",
    "attribution": "NRCan / AFDC, via PG Pulse (princegeorgepulse.ca)",
    "total": 5,
    "count": 3,
    "limit": 3,
    "offset": 0
  },
  "links": {
    "self": "/api/v1/ev-chargers?fast=1&limit=3",
    "next": "/api/v1/ev-chargers?fast=1&limit=3&offset=3",
    "docs": "/developers/reference/getting-around/#get-ev-chargers"
  }
}

GET /api/v1/fuel/prices #

Average pump prices in Prince George: regular, premium, diesel and auto propane, latest day and week, with the change and comparisons.

City-wide average pump prices in cents per litre, taxes included: not the price at any one station. No open source publishes per-station prices. Daily figures are weekday survey averages; weeks run Wednesday to Tuesday. elsewhere compares the same day (or week) in other cities and the national average. History: /fuel/prices/history.

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

Example request

bash
curl "https://princegeorgepulse.ca/api/v1/fuel/prices"

Example response (trimmed)

json
{
  "data": {
    "location": "Prince George",
    "note": "City-wide average pump prices in cents per litre, taxes included: not the price at any one station. No open source publishes per-station prices.",
    "products": [
      {
        "product": "regular",
        "label": "Regular gasoline",
        "price": 187.1,
        "date": "2026-10-15",
        "changeFromWeekBefore": -0.4,
        "vsVancouver": -18.6,
        "vsCanada": 4.6,
        "unit": "cents per litre",
        "daily": {
          "date": "2026-10-15",
          "price": 187.1,
          "compareDate": "2026-10-08",
          "change": -0.4
        },
        "weekly": {
          "weekEnding": "2026-10-13",
          "price": 187.2,
          "change": -0.7,
          "yearAgo": 142.6
        },
        "elsewhere": [
          "{…}",
          "{…}"
        ]
      },
      {
        "product": "premium",
        "label": "Premium gasoline",
        "price": 215.2,
        "date": "2026-10-15",
        "changeFromWeekBefore": 0,
        "vsVancouver": -16.8,
        "vsCanada": 3.8,
        "unit": "cents per litre",
        "daily": {
          "date": "2026-10-15",
          "price": 215.2,
          "compareDate": "2026-10-08",
          "change": 0
        },
        "weekly": {
          "weekEnding": "2026-10-13",
          "price": 214.9,
          "change": -0.3,
          "yearAgo": 168.7
        },
        "elsewhere": [
          "{…}",
          "{…}"
        ]
      },
      "… 2 more"
    ]
  },
  "meta": {
    "source": "Natural Resources Canada, average retail fuel prices by city (survey data by Kalibrate)",
    "sourceUrl": "https://natural-resources.canada.ca/domestic-international-markets/transportation-fuel-prices",
    "updatedAt": "2026-10-15T22:50:37.856Z",
    "ageSec": 43066,
    "license": "Natural Resources Canada, reproduced under its terms for non-commercial reproduction (https://natural-resources.canada.ca/terms-conditions): a copy of an official work published by the Government of Canada, not produc…",
    "attribution": "Natural Resources Canada (survey data: Kalibrate), via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/fuel/prices",
    "next": null,
    "docs": "/developers/reference/getting-around/#get-fuel-prices"
  }
}

GET /api/v1/fuel/prices/history #

Average pump price history: daily or weekly city averages for one product, for the city, comparison cities and Canada.

City-wide average pump prices in cents per litre, taxes included: not the price at any one station. No open source publishes per-station prices. freq=W (default) is weekly averages since 2024 (the week in progress is marked partial); freq=D is daily, kept since the job started (NRCan itself shows only the last 60 days). Columns: price, taxes, marketing margin and refining margin (NRCan approximations), all cents per litre.

  • Cache: 30 min
  • Source: Natural Resources Canada, average retail fuel prices by city (survey data by Kalibrate)
  • Licence: Natural Resources Canada, reproduced under its terms for non-commercial reproduction (https://natural-resources.canada.ca/terms-conditions): a copy of an official work published by the Government of Canada, not produced in affiliation with or with the endorsement of NRCan. Survey data collected by Kalibrate.
  • Paginated: limit (default 500, max 2000) and offset; also format=csv
ParameterInTypeDescription
productquerystringFuel. One of: regular, premium, diesel, propane. Example: diesel.
freqquerystringD = daily, W = weekly (Wednesday to Tuesday). One of: D, W.
locationquerystringLocation id (see locations in meta) or all. Default: the city. Example: all.
fromquerystringFirst date, YYYY-MM-DD. Example: 2026-01-01.
toquerystringLast date, YYYY-MM-DD.
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/fuel/prices/history?product=regular&freq=W&location=all&from=2026-06-01"

Example response (trimmed)

json
{
  "data": [
    {
      "location": "Prince George",
      "locationId": 4,
      "product": "regular",
      "freq": "W",
      "period": "2026-06-02",
      "price": 177.8,
      "taxes": 23,
      "marketing": 16.8,
      "refining": 60.9
    },
    {
      "location": "Vancouver",
      "locationId": 2,
      "product": "regular",
      "freq": "W",
      "period": "2026-06-02",
      "price": 210.9,
      "taxes": 37,
      "marketing": 10,
      "refining": 86.8
    },
    "… 61 more"
  ],
  "meta": {
    "source": "Natural Resources Canada, average retail fuel prices by city (survey data by Kalibrate)",
    "sourceUrl": "https://natural-resources.canada.ca/domestic-international-markets/transportation-fuel-prices",
    "updatedAt": "2026-10-15T22:50:37.856Z",
    "ageSec": 43066,
    "license": "Natural Resources Canada, reproduced under its terms for non-commercial reproduction (https://natural-resources.canada.ca/terms-conditions): a copy of an official work published by the Government of Canada, not produc…",
    "attribution": "Natural Resources Canada (survey data: Kalibrate), via PG Pulse (princegeorgepulse.ca)",
    "product": "regular",
    "label": "Regular gasoline",
    "unit": "cents per litre",
    "locations": [
      {
        "id": 4,
        "name": "Prince George"
      },
      {
        "id": 2,
        "name": "Vancouver"
      },
      "… 1 more"
    ],
    "total": 63,
    "count": 63,
    "…": "2 more keys"
  },
  "links": {
    "self": "/api/v1/fuel/prices/history?product=regular&freq=W&location=all&from=2026-06-01",
    "next": null,
    "docs": "/developers/reference/getting-around/#get-fuel-prices-history"
  }
}

GET /api/v1/fuel/stations #

Gas stations, cardlocks, propane and car washes in Prince George, with brand, address, directions and the directory listing.

From OpenStreetMap (amenity=fuel, amenity=car_wash) merged with the business directory and deduplicated. fuels lists extra fuels where OpenStreetMap or the business licence records them (diesel, premium, propane); absence means unknown, not unavailable. No prices per station. Same data as the map layers /maps/layers/fuel and /maps/layers/car-washes.

ParameterInTypeDescription
kindquerystringfuel (gas stations and cardlocks) or car-wash. One of: fuel, car-wash.
qquerystringText search in name, brand and address. Example: Esso.
propanequerybooleanOnly places recorded as selling propane.
nearquerystringSort by distance from "lat,lng" (adds 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).

Example request

bash
curl "https://princegeorgepulse.ca/api/v1/fuel/stations?kind=fuel&limit=5"

Example response (trimmed)

json
{
  "data": [
    {
      "id": "osm-n5180751813",
      "kind": "fuel",
      "name": "Bon Voyage Esso",
      "brand": "Esso",
      "addr": "4488 Highway 16 W",
      "lat": 53.85747,
      "lng": -122.81626,
      "fuels": [],
      "propane": false,
      "cardlock": false,
      "businessSlug": "bon-voyage-esso",
      "url": "https://princegeorgepulse.ca/business/bon-voyage-esso/",
      "…": "5 more keys"
    },
    {
      "id": "osm-n5180751803",
      "kind": "fuel",
      "name": "Camco",
      "brand": "Husky",
      "addr": "122 George St",
      "lat": 53.91779,
      "lng": -122.74076,
      "fuels": [],
      "propane": false,
      "cardlock": false,
      "businessSlug": null,
      "url": null,
      "…": "5 more keys"
    },
    "… 3 more"
  ],
  "meta": {
    "source": "OpenStreetMap contributors; business directory (City business licences)",
    "sourceUrl": "https://www.openstreetmap.org/copyright",
    "updatedAt": "2026-10-13T22:51:00.657Z",
    "ageSec": 215844,
    "license": "ODbL 1.0, © OpenStreetMap contributors (https://www.openstreetmap.org/copyright); directory links: CC BY 4.0, PG Pulse",
    "attribution": "© OpenStreetMap contributors, via PG Pulse (princegeorgepulse.ca)",
    "total": 42,
    "count": 5,
    "limit": 5,
    "offset": 0
  },
  "links": {
    "self": "/api/v1/fuel/stations?kind=fuel&limit=5",
    "next": "/api/v1/fuel/stations?kind=fuel&limit=5&offset=5",
    "docs": "/developers/reference/getting-around/#get-fuel-stations"
  }
}

GET /api/v1/road-closures #

City road closures and lane restrictions, now and coming up.

From the City’s traffic disruptions map, refreshed every 30 minutes. Each item has phase (now, today, upcoming, ended), impact (plain-language lanes and access), start and end times (UTC ISO), the City’s description and a GeoJSON geometry. Highway events are in /roads (DriveBC).

  • Cache: 5 min
  • Source: City of Prince George, traffic disruptions map
  • Licence: Public information published by the City on its traffic disruptions map; facts and links only, with attribution
  • Paginated: limit (default 100, max 500) and offset; also format=csv
ParameterInTypeDescription
whenquerystringcurrent (in effect now or starting later today, default), upcoming (not yet ended) or all. One of: current, upcoming, all.
reasonquerystringConstruction, Event or Hazard. Example: Construction.
qquerystringStreet or text search. Example: Westwood.

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

Example request

bash
curl "https://princegeorgepulse.ca/api/v1/road-closures"

Example response (trimmed)

json
{
  "data": [
    {
      "id": "2a5cb275-0d25-474d-8f19-0d48fffe6751",
      "kind": "closure",
      "parentId": null,
      "street": "17th Ave from Upland to Spruce",
      "direction": "One Direction",
      "reason": "Construction",
      "laneImpact": "Some Lanes",
      "access": "Local Access",
      "impact": "Some lanes closed, local traffic only",
      "description": "Replacing South side sidewalk along 17th Ave from Upland St to Spruce St. Full access available.",
      "altRoute": null,
      "url": null,
      "…": "9 more keys"
    },
    {
      "id": "10c3297f-a3e2-4f63-9167-1615c1d35bbb",
      "kind": "closure",
      "parentId": null,
      "street": "1168 4th Ave Frontage",
      "direction": "Both Directions",
      "reason": "Construction",
      "laneImpact": "Some Lanes",
      "access": null,
      "impact": "Some lanes closed",
      "description": "North side of 4th Ave sidewalk closure (fronting 1168 4th Ave) for construction in the sidewalk taking place from October 12th - October 16th. Full access along 4th Ave.",
      "altRoute": null,
      "url": null,
      "…": "9 more keys"
    },
    "… 16 more"
  ],
  "meta": {
    "source": "City of Prince George, traffic disruptions map",
    "sourceUrl": "https://www.princegeorge.ca/city-services/roads-transportation/traffic-disruptions",
    "updatedAt": "2026-10-16T10:37:17.378Z",
    "ageSec": 667,
    "license": "Public information published by the City on its traffic disruptions map; facts and links only, with attribution",
    "attribution": "City of Prince George, traffic disruptions map, via PG Pulse (princegeorgepulse.ca)",
    "total": 18,
    "count": 18,
    "limit": 100,
    "offset": 0
  },
  "links": {
    "self": "/api/v1/road-closures",
    "next": null,
    "docs": "/developers/reference/getting-around/#get-road-closures"
  }
}

GET /api/v1/road-closures/map #

Road closures, detours and block points as GeoJSON.

  • GeoJSON: add format=geojson for a bare FeatureCollection
ParameterInTypeDescription
whenquerystringupcoming (default), current or all. One of: current, upcoming, all.

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

Example request

bash
curl "https://princegeorgepulse.ca/api/v1/road-closures/map?format=geojson"

Example response (trimmed)

json
{
  "data": {
    "type": "FeatureCollection",
    "features": [
      {
        "type": "Feature",
        "geometry": {
          "type": "LineString",
          "coordinates": [
            [
              -122.76058,
              53.90843
            ],
            [
              -122.75794,
              53.90844
            ]
          ]
        },
        "properties": {
          "id": "2a5cb275-0d25-474d-8f19-0d48fffe6751",
          "kind": "closure",
          "street": "17th Ave from Upland to Spruce",
          "reason": "Construction",
          "impact": "Some lanes closed, local traffic only",
          "description": "Replacing South side sidewalk along 17th Ave from Upland St to Spruce St. Full access available.",
          "startsAt": "2026-09-24T16:00:00.000Z",
          "endsAt": "2026-10-17T00:00:00.000Z",
          "phase": "now"
        }
      },
      {
        "type": "Feature",
        "geometry": {
          "type": "LineString",
          "coordinates": [
            [
              -122.74483,
              53.9158
            ],
            [
              -122.74442,
              53.91569
            ]
          ]
        },
        "properties": {
          "id": "10c3297f-a3e2-4f63-9167-1615c1d35bbb",
          "kind": "closure",
          "street": "1168 4th Ave Frontage",
          "reason": "Construction",
          "impact": "Some lanes closed",
          "description": "North side of 4th Ave sidewalk closure (fronting 1168 4th Ave) for construction in the sidewalk taking place from October 12th - October 16th. Full access along 4th Ave.",
          "startsAt": "2026-10-12T14:00:00.000Z",
          "endsAt": "2026-10-17T00:00:00.000Z",
          "phase": "now"
        }
      },
      "… 26 more"
    ]
  },
  "meta": {
    "source": "City of Prince George, traffic disruptions map",
    "sourceUrl": "https://www.princegeorge.ca/city-services/roads-transportation/traffic-disruptions",
    "updatedAt": "2026-10-16T10:37:17.378Z",
    "ageSec": 667,
    "license": "Public information published by the City on its traffic disruptions map; facts and links only, with attribution",
    "attribution": "City of Prince George, traffic disruptions map, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/road-closures/map?format=geojson",
    "next": null,
    "docs": "/developers/reference/getting-around/#get-road-closures-map"
  }
}

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.