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

Directory: API reference

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

GET /api/v1/businesses #

Search and list local businesses.

Every business in the PG Pulse directory (licensed Prince George businesses), read live from the database: new City business licences appear after the nightly import. Each record has source (researched or licence), licenceNumber, firstSeen and updatedAt. Default order is the site ranking: featured listings, then most complete listings, then A to Z. With near, results are sorted by distance and include distanceKm.

ParameterInTypeDescription
qquerystringText search over name, tagline, description, tags, services, products and street. Example: pizza.
categoryquerystringCategory slug (see /categories). Example: restaurants.
groupquerystringGroup slug (see /groups). Example: food-drink.
neighbourhoodquerystringNeighbourhood slug or name (see /neighbourhoods). Alias: community. Example: downtown.
updated_sincequerystringOnly listings added or changed after this ISO date or date-time (alias since). For a full sync of removals use /businesses/changes. Example: 2026-09-01.
nearquerystringSort by distance from "lat,lng". Example: 53.9171,-122.7497.
radiusquerynumberWith near: only within this many km. Example: 2.
hasquerystringComma list of fields that must be present: website, phone, email, facebook, instagram, description, thumb, bookingUrl, menuUrl, location. Example: website,phone.
sponsoredquerybooleanOnly featured (sponsored) listings.
sortquerystringIgnored with near. updated: most recently changed first. One of: rank, name, updated.
fieldsquerystringSparse fieldset, e.g. slug,name,lat,lng.
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/businesses?category=restaurants&neighbourhood=downtown&limit=2"

Example response (trimmed)

json
{
  "data": [
    {
      "slug": "gosling",
      "name": "Gosling",
      "legalName": "0794255 BC Ltd. Dba Gosling",
      "numbered": false,
      "tagline": "Sophisticated yet casual dining in Prince George",
      "description": "White Goose Bistro is a casual dining restaurant in Prince George, BC offering lunch, dinner, appetizers, desserts, and an extensive wine selection. The restaurant also provides special five-course dinners, group rese…",
      "tags": [
        "Restaurant",
        "Bistro",
        "… 1 more"
      ],
      "services": [
        "Dine-in dining",
        "Lunch service",
        "… 4 more"
      ],
      "products": [
        "Appies & Salads",
        "Dinner menu",
        "… 4 more"
      ],
      "group": "food-drink",
      "subcats": [
        "restaurants"
      ],
      "street": "1205 3rd Ave",
      "…": "39 more keys"
    },
    {
      "slug": "ambey-holding-ltd-mucho-burrito",
      "name": "Mucho Burrito",
      "legalName": "Ambey Holding Ltd.- Mucho Burrito",
      "numbered": false,
      "tagline": "Fresh Mexican Grill",
      "description": "Mucho Burrito is a Mexican restaurant offering burritos, bowls, quesadillas, and other made-to-order menu items. The Prince George location is at 1600-15th Ave, unit 145, and offers online ordering and MUCHO Rewards.",
      "tags": [
        "Restaurant",
        "Mexican restaurant",
        "… 1 more"
      ],
      "services": [
        "Dine-in",
        "Takeout",
        "… 2 more"
      ],
      "products": [
        "Burritos",
        "Bowls",
        "… 3 more"
      ],
      "group": "food-drink",
      "subcats": [
        "restaurants"
      ],
      "street": "1600 15th Ave",
      "…": "39 more keys"
    }
  ],
  "meta": {
    "source": "PG Pulse business directory, compiled from the City of Prince George business licence registry and business websites",
    "sourceUrl": "https://princegeorgepulse.ca/directory/",
    "updatedAt": "2026-10-15T09:45:16.195Z",
    "ageSec": 90182,
    "license": "CC BY 4.0 for the compilation; licence records under the Open Government Licence – City of Prince George (https://pgmapinfo.princegeorge.ca/OpenData/CityofPrinceGeorge_Open_Government_License_Open_Data.pdf)",
    "attribution": "PG Pulse (princegeorgepulse.ca)",
    "total": 33,
    "count": 2,
    "limit": 2,
    "offset": 0
  },
  "links": {
    "self": "/api/v1/businesses?category=restaurants&neighbourhood=downtown&limit=2",
    "next": "/api/v1/businesses?category=restaurants&neighbourhood=downtown&limit=2&offset=2",
    "docs": "/developers/reference/directory/#get-businesses"
  }
}

GET /api/v1/businesses/changes #

Listings added, changed or removed since a date (incremental sync).

Oldest change first. Removed listings (closed, hidden, or gone from the sources) come back as { slug, status: "removed", updatedAt } so a copy can drop them. Store meta.updatedAt and pass it as since next time.

ParameterInTypeDescription
sincequerystringISO date or date-time. Required. Example: 2026-09-01.
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/businesses/changes?since=2026-09-01&limit=5"

Example response (trimmed)

json
{
  "data": [
    {
      "slug": "1-64-customs",
      "name": "1:64 Customs",
      "legalName": null,
      "numbered": false,
      "tagline": null,
      "description": null,
      "tags": [],
      "services": [],
      "products": [],
      "group": "other",
      "subcats": [],
      "street": "1299 3rd Ave",
      "…": "40 more keys"
    },
    {
      "slug": "141-victoria-st",
      "name": "141 Victoria St",
      "legalName": null,
      "numbered": false,
      "tagline": null,
      "description": null,
      "tags": [],
      "services": [],
      "products": [],
      "group": "other",
      "subcats": [],
      "street": "141 Victoria St",
      "…": "40 more keys"
    },
    "… 3 more"
  ],
  "meta": {
    "source": "PG Pulse business directory, compiled from the City of Prince George business licence registry and business websites",
    "sourceUrl": "https://princegeorgepulse.ca/directory/",
    "updatedAt": "2026-10-15T09:45:16.195Z",
    "ageSec": 90182,
    "license": "CC BY 4.0 for the compilation; licence records under the Open Government Licence – City of Prince George (https://pgmapinfo.princegeorge.ca/OpenData/CityofPrinceGeorge_Open_Government_License_Open_Data.pdf)",
    "attribution": "PG Pulse (princegeorgepulse.ca)",
    "total": 2540,
    "count": 5,
    "limit": 5,
    "offset": 0
  },
  "links": {
    "self": "/api/v1/businesses/changes?since=2026-09-01&limit=5",
    "next": "/api/v1/businesses/changes?since=2026-09-01&limit=5&offset=5",
    "docs": "/developers/reference/directory/#get-businesses-changes"
  }
}

GET /api/v1/businesses/new #

New in town: businesses that opened recently (new City business licences), newest first.

Directory listings whose City business licence was issued in the window: a licence period that starts on a day other than 1 January (renewals start on 1 January), or a licence first seen by the nightly import. since is that date, licensedFrom the licence start. Out-of-town contractors are left out unless outOfTown=true.

ParameterInTypeDescription
daysqueryintegerWindow in days, 1 to 730 (default 365). Example: 90.
groupquerystringGroup slug (see /groups). Example: food-drink.
outOfTownquerybooleanInclude out-of-town contractors licensed to work in the city.
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/businesses/new?days=90&limit=5"

Example response (trimmed)

json
{
  "data": [
    {
      "slug": "dr-christine-brenckmann",
      "name": "Dr. Christine Brenckmann",
      "group": "health-wellness",
      "groupLabel": "Health & wellness",
      "categories": [
        "Medical clinics"
      ],
      "area": null,
      "community": "Downtown",
      "tagline": null,
      "url": "/business/dr-christine-brenckmann/",
      "licensedFrom": null,
      "firstSeen": "2026-10-15T09:45:11.669Z",
      "since": "2026-10-15",
      "…": "2 more keys"
    },
    {
      "slug": "dr-lawrence-fredeen-inc",
      "name": "Dr. Lawrence Fredeen",
      "group": "health-wellness",
      "groupLabel": "Health & wellness",
      "categories": [
        "Medical clinics"
      ],
      "area": null,
      "community": "Downtown",
      "tagline": null,
      "url": "/business/dr-lawrence-fredeen/",
      "licensedFrom": null,
      "firstSeen": "2026-10-15T09:45:11.669Z",
      "since": "2026-10-15",
      "…": "2 more keys"
    },
    "… 3 more"
  ],
  "meta": {
    "source": "PG Pulse business directory, compiled from the City of Prince George business licence registry and business websites",
    "sourceUrl": "https://princegeorgepulse.ca/directory/",
    "updatedAt": "2026-10-15T09:45:16.195Z",
    "ageSec": 90182,
    "license": "CC BY 4.0 for the compilation; licence records under the Open Government Licence – City of Prince George (https://pgmapinfo.princegeorge.ca/OpenData/CityofPrinceGeorge_Open_Government_License_Open_Data.pdf)",
    "attribution": "PG Pulse (princegeorgepulse.ca)",
    "total": 24,
    "count": 5,
    "limit": 5,
    "offset": 0
  },
  "links": {
    "self": "/api/v1/businesses/new?days=90&limit=5",
    "next": "/api/v1/businesses/new?days=90&limit=5&offset=5",
    "docs": "/developers/reference/directory/#get-businesses-new"
  }
}

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

One business, with categories, awards and similar businesses.

Closed listings are left out of every list but still answer here with closed: true and closure (state, source: google | licence | manual, since, checkedAt): only the derived fact, never Google Places data.

ParameterInTypeDescription
slugpathstringBusiness slug (slug), or the public slug of its page address (publicSlug, the last segment of url). Required. Example: camelot-restaurant.

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

Example request

bash
curl "https://princegeorgepulse.ca/api/v1/businesses/camelot-restaurant"

Example response (trimmed)

json
{
  "data": {
    "slug": "camelot-restaurant",
    "name": "Camelot Restaurant",
    "legalName": null,
    "numbered": false,
    "tagline": "Serving homestyle food since 1966",
    "description": "Camelot Court Restaurant is a family-owned restaurant in Prince George serving breakfast all day, along with home-style lunch and dinner. The menu includes homemade soups and desserts, and the restaurant offers dine-i…",
    "tags": [
      "Restaurant",
      "Family restaurant",
      "… 1 more"
    ],
    "services": [
      "Breakfast all day",
      "Lunch service",
      "… 4 more"
    ],
    "products": [
      "Homemade soups",
      "Homemade desserts",
      "… 1 more"
    ],
    "group": "food-drink",
    "subcats": [
      "restaurants"
    ],
    "street": "1600 Central St E",
    "…": "41 more keys"
  },
  "meta": {
    "source": "PG Pulse business directory, compiled from the City of Prince George business licence registry and business websites",
    "sourceUrl": "https://princegeorgepulse.ca/directory/",
    "updatedAt": "2026-10-15T09:45:16.195Z",
    "ageSec": 90182,
    "license": "CC BY 4.0 for the compilation; licence records under the Open Government Licence – City of Prince George (https://pgmapinfo.princegeorge.ca/OpenData/CityofPrinceGeorge_Open_Government_License_Open_Data.pdf)",
    "attribution": "PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/businesses/camelot-restaurant",
    "next": null,
    "docs": "/developers/reference/directory/#get-businesses-slug"
  }
}

GET /api/v1/categories #

Business categories with counts.

ParameterInTypeDescription
groupquerystringOnly categories in this group. Example: food-drink.
qquerystringText search on the label.
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/categories"

Example response (trimmed)

json
{
  "data": [
    {
      "slug": "restaurants",
      "group": "food-drink",
      "label": "Restaurants",
      "title": "restaurants",
      "count": 129,
      "groupLabel": "Food & drink",
      "url": "/directory/c/restaurants/",
      "api": "/api/v1/businesses?category=restaurants"
    },
    {
      "slug": "cafes",
      "group": "food-drink",
      "label": "Cafés & coffee",
      "title": "coffee shops and cafés",
      "count": 31,
      "groupLabel": "Food & drink",
      "url": "/directory/c/cafes/",
      "api": "/api/v1/businesses?category=cafes"
    },
    "… 86 more"
  ],
  "meta": {
    "source": "PG Pulse business directory, compiled from the City of Prince George business licence registry and business websites",
    "sourceUrl": "https://princegeorgepulse.ca/directory/",
    "updatedAt": "2026-10-15T09:45:16.195Z",
    "ageSec": 90182,
    "license": "CC BY 4.0 for the compilation; licence records under the Open Government Licence – City of Prince George (https://pgmapinfo.princegeorge.ca/OpenData/CityofPrinceGeorge_Open_Government_License_Open_Data.pdf)",
    "attribution": "PG Pulse (princegeorgepulse.ca)",
    "total": 88,
    "count": 88,
    "limit": 500,
    "offset": 0
  },
  "links": {
    "self": "/api/v1/categories",
    "next": null,
    "docs": "/developers/reference/directory/#get-categories"
  }
}

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

One category: its guide copy (intro, tips, FAQ) and its businesses.

ParameterInTypeDescription
slugpathstringCategory slug. Required. Example: restaurants.
businessesqueryintegerHow many businesses to embed (default 25, max 500; 0 for none). Example: 5.

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

Example request

bash
curl "https://princegeorgepulse.ca/api/v1/categories/restaurants?businesses=3"

Example response (trimmed)

json
{
  "data": {
    "slug": "restaurants",
    "group": "food-drink",
    "label": "Restaurants",
    "title": "restaurants",
    "count": 129,
    "groupLabel": "Food & drink",
    "url": "/directory/c/restaurants/",
    "api": "/api/v1/businesses?category=restaurants",
    "copy": {
      "h1": "The best restaurants in Prince George",
      "metaDescription": "Find restaurants in Prince George, BC: family diners, Mexican, Indian, Italian, Asian and Caribbean kitchens, takeout and sit-down spots across the city.",
      "intro": "Prince George eats well, and it eats with a northern appetite. As the service hub for a huge stretch of central and northern BC, the city feeds mill crews coming off shift, UNBC and CNC students, families from across …",
      "tips": [
        "Check current hours directly with the restaurant; many Prince George kitchens adjust hours seasonally and on holidays.",
        "For allergies or dietary needs, call ahead and ask how the kitchen handles cross-contact rather than relying on menu labels alone.",
        "… 4 more"
      ],
      "faq": [
        {
          "q": "What kinds of cuisine can I find in Prince George?",
          "a": "Prince George has a wide mix, including classic Canadian diners and pubs, Mexican and Tex-Mex, Indian, Italian, Chinese, Korean, Japanese, Vietnamese and Caribbean food, plus pizza, burgers and fast-casual chains."
        },
        {
          "q": "Where are most restaurants located in Prince George?",
          "a": "You will find clusters downtown, along the main commercial corridors in College Heights and the south end, around the Westgate and Spruceland areas, and in the Hart to the north."
        },
        "… 2 more"
      ]
    },
    "businessCount": 129,
    "businesses": [
      {
        "slug": "barburrito",
        "name": "Barburrito",
        "legalName": null,
        "numbered": false,
        "tagline": "Fast, fresh Tex-Mex food and burritos",
        "description": "BarBurrito is a Tex-Mex restaurant chain offering burritos, bowls, tacos, and related Mexican grill items. The Prince George location listed is Prince George Spruceland at 715 Central Street W, with daily hours and on…",
        "tags": [
          "Tex-Mex restaurant",
          "Burrito restaurant",
          "… 1 more"
        ],
        "services": [
          "Dine-in",
          "Takeout",
          "… 2 more"
        ],
        "products": [
          "Burritos",
          "Bowls",
          "… 1 more"
        ],
        "group": "food-drink",
        "subcats": [
          "restaurants"
        ],
        "street": "3040 Recplace Dr",
        "…": "39 more keys"
      },
      {
        "slug": "carls-jr",
        "name": "Carl's Jr",
        "legalName": null,
        "numbered": false,
        "tagline": "Order burgers, breakfast, chicken & more",
        "description": "Carl's Jr. is a fast food restaurant chain known for charbroiled burgers, breakfast items, chicken sandwiches and tenders, sides, desserts, and beverages. The website also promotes rewards, gift cards, delivery, franc…",
        "tags": [
          "Fast Food Restaurant",
          "Burger Restaurant",
          "… 1 more"
        ],
        "services": [
          "Dine-in food service",
          "Takeout",
          "… 4 more"
        ],
        "products": [
          "Burgers",
          "Breakfast combos",
          "… 8 more"
        ],
        "group": "food-drink",
        "subcats": [
          "restaurants"
        ],
        "street": "2333 Westwood Dr",
        "…": "39 more keys"
      },
      "… 1 more"
    ]
  },
  "meta": {
    "source": "PG Pulse business directory, compiled from the City of Prince George business licence registry and business websites",
    "sourceUrl": "https://princegeorgepulse.ca/directory/",
    "updatedAt": "2026-10-15T09:45:16.195Z",
    "ageSec": 90182,
    "license": "CC BY 4.0 for the compilation; licence records under the Open Government Licence – City of Prince George (https://pgmapinfo.princegeorge.ca/OpenData/CityofPrinceGeorge_Open_Government_License_Open_Data.pdf)",
    "attribution": "PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/categories/restaurants?businesses=3",
    "next": null,
    "docs": "/developers/reference/directory/#get-categories-slug"
  }
}

GET /api/v1/groups #

Top-level business groups (Food & Drink, Health, Trades…).

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

Example request

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

Example response (trimmed)

json
{
  "data": [
    {
      "slug": "food-drink",
      "label": "Food & drink",
      "icon": "utensils",
      "count": 215,
      "url": "/directory/food-drink/",
      "categories": [
        "restaurants",
        "cafes",
        "… 6 more"
      ]
    },
    {
      "slug": "health-wellness",
      "label": "Health & wellness",
      "icon": "heart",
      "count": 311,
      "url": "/directory/health-wellness/",
      "categories": [
        "medical-clinics",
        "physio-massage",
        "… 7 more"
      ]
    },
    "… 11 more"
  ],
  "meta": {
    "source": "PG Pulse business directory, compiled from the City of Prince George business licence registry and business websites",
    "sourceUrl": "https://princegeorgepulse.ca/directory/",
    "updatedAt": "2026-10-15T09:45:16.195Z",
    "ageSec": 90182,
    "license": "CC BY 4.0 for the compilation; licence records under the Open Government Licence – City of Prince George (https://pgmapinfo.princegeorge.ca/OpenData/CityofPrinceGeorge_Open_Government_License_Open_Data.pdf)",
    "attribution": "PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/groups",
    "next": null,
    "docs": "/developers/reference/directory/#get-groups"
  }
}

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

One group with its categories.

ParameterInTypeDescription
slugpathstringGroup slug. Required. Example: food-drink.

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

Example request

bash
curl "https://princegeorgepulse.ca/api/v1/groups/food-drink"

Example response (trimmed)

json
{
  "data": {
    "slug": "food-drink",
    "label": "Food & drink",
    "icon": "utensils",
    "count": 215,
    "url": "/directory/food-drink/",
    "categories": [
      {
        "slug": "restaurants",
        "group": "food-drink",
        "label": "Restaurants",
        "title": "restaurants",
        "count": 129,
        "groupLabel": "Food & drink",
        "url": "/directory/c/restaurants/",
        "api": "/api/v1/businesses?category=restaurants"
      },
      {
        "slug": "cafes",
        "group": "food-drink",
        "label": "Cafés & coffee",
        "title": "coffee shops and cafés",
        "count": 31,
        "groupLabel": "Food & drink",
        "url": "/directory/c/cafes/",
        "api": "/api/v1/businesses?category=cafes"
      },
      "… 6 more"
    ]
  },
  "meta": {
    "source": "PG Pulse business directory, compiled from the City of Prince George business licence registry and business websites",
    "sourceUrl": "https://princegeorgepulse.ca/directory/",
    "updatedAt": "2026-10-15T09:45:16.195Z",
    "ageSec": 90182,
    "license": "CC BY 4.0 for the compilation; licence records under the Open Government Licence – City of Prince George (https://pgmapinfo.princegeorge.ca/OpenData/CityofPrinceGeorge_Open_Government_License_Open_Data.pdf)",
    "attribution": "PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/groups/food-drink",
    "next": null,
    "docs": "/developers/reference/directory/#get-groups-slug"
  }
}

GET /api/v1/realtors #

Real estate agents in Prince George: name, brokerage, published title and designations, languages, business contacts and the official profile link.

Agents come from brokerages’ own public team pages, read weekly where robots.txt and the site’s terms allow; brokerages whose pages we may not read have no agents here (see /realtors/brokerages and meta.notUsed). Phone and email only as published for business use (no numbers labelled cell or text, no free-mail addresses). areas, bio and photo come only from the agent’s verified claim. Order is alphabetical (or by brokerage or newest); paid placements never change it. Not affiliated with or endorsed by the Canadian Real Estate Association (CREA), REALTOR.ca or the provincial regulator. REALTOR® is a CREA trademark; realtorMark says only that the brokerage’s own page lists the person with it. Check a licence yourself at https://www.bcfsa.ca/public-resources/real-estate/find-professional.

ParameterInTypeDescription
qquerystringText search in name, title, brokerage, languages, areas and designations. Example: broker.
brokeragequerystringBrokerage slug (see /realtors/brokerages). Example: maxsave-real-estate-services-ltd.
languagequerystringA language the agent lists. Example: French.
areaquerystringAn area the agent says they serve (claimed profiles only).
designationquerystringA designation, e.g. "Managing broker".
sortquerystringname (default), brokerage or newest. One of: name, brokerage, newest.
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/realtors"

Example response (trimmed)

json
{
  "data": [
    {
      "slug": "amolak-johal",
      "name": "Amolak Johal",
      "url": "https://princegeorgepulse.ca/realtors/amolak-johal/",
      "initials": "AJ",
      "title": "Associate, REALTOR®",
      "realtorMark": true,
      "designations": [],
      "languages": [],
      "areas": [],
      "bio": null,
      "photo": null,
      "phone": "778-384-7850",
      "…": "10 more keys"
    },
    {
      "slug": "chad-harvey",
      "name": "Chad Harvey",
      "url": "https://princegeorgepulse.ca/realtors/chad-harvey/",
      "initials": "CH",
      "title": "REALTOR®",
      "realtorMark": true,
      "designations": [],
      "languages": [],
      "areas": [],
      "bio": null,
      "photo": null,
      "phone": null,
      "…": "10 more keys"
    },
    "… 10 more"
  ],
  "meta": {
    "source": "PG Pulse business directory (City of Prince George business licences and published business information); agents from each brokerage’s own public team page (see each agent’s source)",
    "sourceUrl": "https://princegeorgepulse.ca/directory/",
    "updatedAt": "2026-10-12T12:40:08.304Z",
    "ageSec": 338890,
    "license": "Open Government Licence – City of Prince George; compilation CC BY 4.0; Facts as each brokerage publishes them (names, titles, business contacts); compilation CC BY 4.0. No photos are copied.",
    "attribution": "PG Pulse compilation, via PG Pulse (princegeorgepulse.ca)",
    "facets": {
      "languages": [
        "English",
        "French"
      ],
      "areas": [],
      "designations": [
        "Managing broker",
        "Personal Real Estate Corporation (PREC)"
      ]
    },
    "notUsed": [
      {
        "name": "REALTOR.ca (CREA)",
        "url": "https://www.realtor.ca/",
        "reason": "Its terms of use forbid automated collection, and it blocks automated requests."
      },
      {
        "name": "BC Financial Services Authority licensee search",
        "url": "https://www.bcfsa.ca/public-resources/real-estate/find-professional",
        "reason": "The public register blocks automated requests, so we link to it for you to check a licence yourself instead of copying it."
      },
      "… 5 more"
    ],
    "licenceLookup": {
      "name": "BC Financial Services Authority: find a real estate professional",
      "url": "https://www.bcfsa.ca/public-resources/real-estate/find-professional"
    },
    "total": 12,
    "count": 12,
    "limit": 100,
    "…": "1 more keys"
  },
  "links": {
    "self": "/api/v1/realtors",
    "next": null,
    "docs": "/developers/reference/directory/#get-realtors"
  }
}

GET /api/v1/realtors/brokerages #

Real estate brokerage offices in Prince George, with address, phone, website and how many agents we list.

Picked out of the business directory (City business licences and published business information) by name and licence description; property managers, appraisers and the real estate board are left out. agentsNote says why a brokerage has no agents listed.

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

Example request

bash
curl "https://princegeorgepulse.ca/api/v1/realtors/brokerages"

Example response (trimmed)

json
{
  "data": [
    {
      "slug": "2-percent-realty-experts",
      "name": "2 Percent Realty Experts",
      "url": "https://princegeorgepulse.ca/realtors/brokerages/2-percent-realty-experts/",
      "directoryUrl": "https://princegeorgepulse.ca/business/2-percent-realty-experts/",
      "address": "715 Victoria St, Prince George, BC, V2L 2K5",
      "area": "Downtown & Central",
      "community": "Downtown",
      "lat": 53.914684,
      "lng": -122.75197,
      "phone": "(250) 649-8147",
      "website": "http://princegeorge.2percentrealty.ca/",
      "licenceNo": "00078757",
      "…": "6 more keys"
    },
    {
      "slug": "century-21-energy-realty",
      "name": "Century 21 Energy Realty",
      "url": "https://princegeorgepulse.ca/realtors/brokerages/century-21-energy-realty/",
      "directoryUrl": "https://princegeorgepulse.ca/business/century-21-energy-realty/",
      "address": "1310-1350 5th Ave, Prince George, BC, V2L 3L4",
      "area": "Downtown & Central",
      "community": "Downtown",
      "lat": 53.91581,
      "lng": -122.747803,
      "phone": "(250) 564-2100",
      "website": "https://www.c21.ca/directory/offices/energy-realty-2",
      "licenceNo": "00079255",
      "…": "6 more keys"
    },
    "… 4 more"
  ],
  "meta": {
    "source": "PG Pulse business directory (City of Prince George business licences and published business information); agents from each brokerage’s own public team page (see each agent’s source)",
    "sourceUrl": "https://princegeorgepulse.ca/directory/",
    "updatedAt": "2026-10-12T12:40:08.304Z",
    "ageSec": 338890,
    "license": "Open Government Licence – City of Prince George; compilation CC BY 4.0; Facts as each brokerage publishes them (names, titles, business contacts); compilation CC BY 4.0. No photos are copied.",
    "attribution": "PG Pulse compilation, via PG Pulse (princegeorgepulse.ca)",
    "total": 6,
    "count": 6,
    "limit": 100,
    "offset": 0
  },
  "links": {
    "self": "/api/v1/realtors/brokerages",
    "next": null,
    "docs": "/developers/reference/directory/#get-realtors-brokerages"
  }
}

GET /api/v1/realtors/brokerages/{slug} #

One brokerage with its listed agents.

ParameterInTypeDescription
slugpathstringBrokerage slug. Required. Example: maxsave-real-estate-services-ltd.

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

Example request

bash
curl "https://princegeorgepulse.ca/api/v1/realtors/brokerages/2-percent-realty-experts"

Example response (trimmed)

json
{
  "data": {
    "slug": "2-percent-realty-experts",
    "name": "2 Percent Realty Experts",
    "url": "https://princegeorgepulse.ca/realtors/brokerages/2-percent-realty-experts/",
    "directoryUrl": "https://princegeorgepulse.ca/business/2-percent-realty-experts/",
    "address": "715 Victoria St, Prince George, BC, V2L 2K5",
    "area": "Downtown & Central",
    "community": "Downtown",
    "lat": 53.914684,
    "lng": -122.75197,
    "phone": "(250) 649-8147",
    "website": "http://princegeorge.2percentrealty.ca/",
    "licenceNo": "00078757",
    "…": "7 more keys"
  },
  "meta": {
    "source": "PG Pulse business directory (City of Prince George business licences and published business information); agents from each brokerage’s own public team page (see each agent’s source)",
    "sourceUrl": "https://princegeorgepulse.ca/directory/",
    "updatedAt": "2026-10-12T12:40:08.304Z",
    "ageSec": 338890,
    "license": "Open Government Licence – City of Prince George; compilation CC BY 4.0; Facts as each brokerage publishes them (names, titles, business contacts); compilation CC BY 4.0. No photos are copied.",
    "attribution": "PG Pulse compilation, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/realtors/brokerages/2-percent-realty-experts",
    "next": null,
    "docs": "/developers/reference/directory/#get-realtors-brokerages-slug"
  }
}

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

One real estate agent.

ParameterInTypeDescription
slugpathstringAgent slug. Required. Example: mike-hurrell.

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

Example request

bash
curl "https://princegeorgepulse.ca/api/v1/realtors/amolak-johal"

Example response (trimmed)

json
{
  "data": {
    "slug": "amolak-johal",
    "name": "Amolak Johal",
    "url": "https://princegeorgepulse.ca/realtors/amolak-johal/",
    "initials": "AJ",
    "title": "Associate, REALTOR®",
    "realtorMark": true,
    "designations": [],
    "languages": [],
    "areas": [],
    "bio": null,
    "photo": null,
    "phone": "778-384-7850",
    "…": "10 more keys"
  },
  "meta": {
    "source": "PG Pulse business directory (City of Prince George business licences and published business information); agents from each brokerage’s own public team page (see each agent’s source)",
    "sourceUrl": "https://princegeorgepulse.ca/directory/",
    "updatedAt": "2026-10-12T12:40:08.304Z",
    "ageSec": 338890,
    "license": "Open Government Licence – City of Prince George; compilation CC BY 4.0; Facts as each brokerage publishes them (names, titles, business contacts); compilation CC BY 4.0. No photos are copied.",
    "attribution": "PG Pulse compilation, via PG Pulse (princegeorgepulse.ca)"
  },
  "links": {
    "self": "/api/v1/realtors/amolak-johal",
    "next": null,
    "docs": "/developers/reference/directory/#get-realtors-slug"
  }
}

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.