Local knowledge for your AI tools
Connect Cursor, VS Code, Codex or Claude Code. Free MCP access, no key needed.
Sports: API reference
8 endpoints. Base URL https://princegeorgepulse.ca/api/v1. Conventions (envelope, paging, fields, formats, limits) are on the overview. All endpoints.
GET /api/v1/sports/teams #
Local teams with league, record, links and data freshness.
- Cache: 5 min
- Source: League and team feeds: HockeyTech (WHL, BCHL) and team schedule pages; each team, game and table names its source
- Licence: Facts (schedules, scores, standings) from each source with attribution; HockeyTech data: “Official statistics provided by” the league, powered by HockeyTech.com. See
sourceandlicenceper item
Also accepts fields (sparse fieldset) and format (json, md).
Example request
curl "https://princegeorgepulse.ca/api/v1/sports/teams"Example response (trimmed)
{
"data": [
{
"id": "cougars",
"name": "Prince George Cougars",
"short": "Cougars",
"sport": "Hockey",
"league": "WHL",
"leagueName": "Western Hockey League",
"level": "Major junior (CHL)",
"venue": "cn-centre",
"record": {
"w": 2,
"l": 3,
"otl": 1,
"t": null,
"pts": 5,
"rank": 6,
"group": "B.C. Division",
"from": "standings"
},
"recordText": "2-3-1",
"page": "https://princegeorgepulse.ca/sports/cougars/",
"links": {
"site": "https://chl.ca/whl-cougars/",
"schedule": "https://chl.ca/whl-cougars/schedule/",
"standings": "https://chl.ca/whl/standings/",
"tickets": "https://ticketsnorth.evenue.net/events/CSG"
},
"…": "6 more keys"
},
{
"id": "spruce-kings",
"name": "Prince George Spruce Kings",
"short": "Spruce Kings",
"sport": "Hockey",
"league": "BCHL",
"leagueName": "British Columbia Hockey League",
"level": "Junior A",
"venue": "kopar",
"record": {
"w": 5,
"l": 3,
"otl": 0,
"t": null,
"pts": 10,
"rank": 3,
"group": "Coastal East",
"from": "standings"
},
"recordText": "5-3-0",
"page": "https://princegeorgepulse.ca/sports/spruce-kings/",
"links": {
"site": "https://www.sprucekings.bc.ca/",
"schedule": "https://www.sprucekings.bc.ca/schedule2627",
"standings": "https://bchl.ca/stats/standings/",
"tickets": "https://www.showpass.com/pgsk20262027/"
},
"…": "6 more keys"
},
"… 4 more"
],
"meta": {
"source": "League and team feeds: HockeyTech (WHL, BCHL) and team schedule pages; each team, game and table names its source",
"sourceUrl": "https://princegeorgepulse.ca/sports/",
"updatedAt": "2026-10-16T10:30:46.661Z",
"ageSec": 1052,
"license": "Facts (schedules, scores, standings) from each source with attribution; HockeyTech data: “Official statistics provided by” the league, powered by HockeyTech.com. See `source` and `licence` per item",
"attribution": "Each item’s source, via PG Pulse (princegeorgepulse.ca)"
},
"links": {
"self": "/api/v1/sports/teams",
"next": null,
"docs": "/developers/reference/sports/#get-sports-teams"
}
}GET /api/v1/sports/teams/{id} #
One team with its next games, latest results and standings.
- Cache: 2 min
- Source: League and team feeds: HockeyTech (WHL, BCHL) and team schedule pages; each team, game and table names its source
- Licence: Facts (schedules, scores, standings) from each source with attribution; HockeyTech data: “Official statistics provided by” the league, powered by HockeyTech.com. See
sourceandlicenceper item
| Parameter | In | Type | Description |
|---|---|---|---|
id | path | string | Team id (from /sports/teams). Required. Example: cougars. |
Also accepts fields (sparse fieldset) and format (json, md).
Example request
curl "https://princegeorgepulse.ca/api/v1/sports/teams/cougars"Example response (trimmed)
{
"data": {
"id": "cougars",
"name": "Prince George Cougars",
"short": "Cougars",
"sport": "Hockey",
"league": "WHL",
"leagueName": "Western Hockey League",
"level": "Major junior (CHL)",
"venue": "cn-centre",
"record": {
"w": 2,
"l": 3,
"otl": 1,
"t": null,
"pts": 5,
"rank": 6,
"group": "B.C. Division",
"from": "standings"
},
"recordText": "2-3-1",
"page": "https://princegeorgepulse.ca/sports/cougars/",
"links": {
"site": "https://chl.ca/whl-cougars/",
"schedule": "https://chl.ca/whl-cougars/schedule/",
"standings": "https://chl.ca/whl/standings/",
"tickets": "https://ticketsnorth.evenue.net/events/CSG"
},
"…": "9 more keys"
},
"meta": {
"source": "League and team feeds: HockeyTech (WHL, BCHL) and team schedule pages; each team, game and table names its source",
"sourceUrl": "https://princegeorgepulse.ca/sports/",
"updatedAt": "2026-10-16T09:50:13.147Z",
"ageSec": 3486,
"license": "Facts (schedules, scores, standings) from each source with attribution; HockeyTech data: “Official statistics provided by” the league, powered by HockeyTech.com. See `source` and `licence` per item",
"attribution": "Each item’s source, via PG Pulse (princegeorgepulse.ca)"
},
"links": {
"self": "/api/v1/sports/teams/cougars",
"next": null,
"docs": "/developers/reference/sports/#get-sports-teams-id"
}
}GET /api/v1/sports/games #
Games: schedule, live scores and results, with filters.
Every game the local teams’ feeds list, home and away. status is scheduled, live, final, postponed or cancelled; score is from our team’s side (team, opponent) and by venue (home, away). Live scores update every few minutes while a game is on, from the league feed when it provides them. start is UTC; localDate is the game day in the city.
- Cache: 1 min (live source, cached on our server)
- Source: League and team feeds: HockeyTech (WHL, BCHL) and team schedule pages; each team, game and table names its source
- Licence: Facts (schedules, scores, standings) from each source with attribution; HockeyTech data: “Official statistics provided by” the league, powered by HockeyTech.com. See
sourceandlicenceper item - Paginated:
limit(default 50, max 500) andoffset; alsoformat=csv
| Parameter | In | Type | Description |
|---|---|---|---|
team | query | string | Team id, or several separated by commas (see /sports/teams). Example: cougars. |
from | query | string | From this local date (YYYY-MM-DD) or ISO date-time. Default: no limit. Example: 2026-10-01. |
to | query | string | Up to this local date (YYYY-MM-DD, inclusive) or ISO date-time. Example: 2026-10-31. |
status | query | string | scheduled, live, final, postponed or cancelled (comma-separated for several). Example: final. |
home | query | boolean | true = home games only, false = away only. |
order | query | string | asc (default, oldest first) or desc. One of: asc, desc. |
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
curl "https://princegeorgepulse.ca/api/v1/sports/games?team=cougars&from=2026-10-01&limit=5"Example response (trimmed)
{
"data": [
{
"id": "cougars:1023123",
"team": "cougars",
"season": "295",
"seasonType": "regular",
"start": "2026-10-03T02:00:00.000Z",
"localDate": "2026-10-02",
"timeTbd": false,
"home": true,
"opponent": "Brandon Wheat Kings",
"venue": "CN Centre",
"venueCity": "Prince George",
"status": "final",
"…": "17 more keys"
},
{
"id": "cougars:1023161",
"team": "cougars",
"season": "295",
"seasonType": "regular",
"start": "2026-10-11T20:00:00.000Z",
"localDate": "2026-10-11",
"timeTbd": false,
"home": true,
"opponent": "Swift Current Broncos",
"venue": "CN Centre",
"venueCity": "Prince George",
"status": "final",
"…": "17 more keys"
},
"… 3 more"
],
"meta": {
"source": "League and team feeds: HockeyTech (WHL, BCHL) and team schedule pages; each team, game and table names its source",
"sourceUrl": "https://princegeorgepulse.ca/sports/",
"updatedAt": "2026-10-16T10:30:46.661Z",
"ageSec": 1052,
"license": "Facts (schedules, scores, standings) from each source with attribution; HockeyTech data: “Official statistics provided by” the league, powered by HockeyTech.com. See `source` and `licence` per item",
"attribution": "Each item’s source, via PG Pulse (princegeorgepulse.ca)",
"total": 64,
"count": 5,
"limit": 5,
"offset": 0
},
"links": {
"self": "/api/v1/sports/games?team=cougars&from=2026-10-01&limit=5",
"next": "/api/v1/sports/games?team=cougars&from=2026-10-01&limit=5&offset=5",
"docs": "/developers/reference/sports/#get-sports-games"
}
}GET /api/v1/sports/standings #
Latest standings for the division or conference each team plays in.
- Cache: 10 min
- Source: League and team feeds: HockeyTech (WHL, BCHL) and team schedule pages; each team, game and table names its source
- Licence: Facts (schedules, scores, standings) from each source with attribution; HockeyTech data: “Official statistics provided by” the league, powered by HockeyTech.com. See
sourceandlicenceper item
| Parameter | In | Type | Description |
|---|---|---|---|
team | query | string | Team id (see /sports/teams). Example: spruce-kings. |
Also accepts fields (sparse fieldset) and format (json, md).
Example request
curl "https://princegeorgepulse.ca/api/v1/sports/standings"Example response (trimmed)
{
"data": [
{
"team": "cougars",
"season": "295",
"group": "B.C. Division",
"rows": [
{
"rank": 1,
"team": "Victoria Royals",
"us": false,
"gp": 7,
"w": 6,
"l": 1,
"otl": 0,
"t": 0,
"pts": 12,
"pct": 0.857,
"gf": 31,
"ga": 18,
"…": "2 more keys"
},
{
"rank": 2,
"team": "Vancouver Giants",
"us": false,
"gp": 9,
"w": 5,
"l": 2,
"otl": 2,
"t": 0,
"pts": 12,
"pct": 0.667,
"gf": 27,
"ga": 23,
"…": "2 more keys"
},
"… 4 more"
],
"source": "Western Hockey League via HockeyTech",
"sourceUrl": "https://chl.ca/whl/standings/",
"licence": "Official statistics provided by Western Hockey League. Powered by HockeyTech.com (leaguestat.com). Facts (schedule, scores, standings) shown with attribution and a link to the league",
"updatedAt": "2026-10-16T09:50:17.932Z"
},
{
"team": "spruce-kings",
"season": "72",
"group": "Coastal East",
"rows": [
{
"rank": 1,
"team": "Chilliwack Chiefs",
"us": false,
"gp": 10,
"w": 7,
"l": 3,
"otl": 0,
"t": 0,
"pts": 14,
"pct": 0.7,
"gf": 27,
"ga": 24,
"…": "2 more keys"
},
{
"rank": 2,
"team": "Coquitlam Express",
"us": false,
"gp": 9,
"w": 5,
"l": 2,
"otl": 2,
"t": 0,
"pts": 12,
"pct": 0.667,
"gf": 31,
"ga": 30,
"…": "2 more keys"
},
"… 3 more"
],
"source": "British Columbia Hockey League via HockeyTech",
"sourceUrl": "https://bchl.ca/stats/standings/",
"licence": "Official statistics provided by British Columbia Hockey League. Powered by HockeyTech.com (leaguestat.com). Facts (schedule, scores, standings) shown with attribution and a link to the league",
"updatedAt": "2026-10-16T06:50:18.658Z"
},
"… 4 more"
],
"meta": {
"source": "League and team feeds: HockeyTech (WHL, BCHL) and team schedule pages; each team, game and table names its source",
"sourceUrl": "https://princegeorgepulse.ca/sports/",
"updatedAt": "2026-10-16T10:30:46.661Z",
"ageSec": 1052,
"license": "Facts (schedules, scores, standings) from each source with attribution; HockeyTech data: “Official statistics provided by” the league, powered by HockeyTech.com. See `source` and `licence` per item",
"attribution": "Each item’s source, via PG Pulse (princegeorgepulse.ca)"
},
"links": {
"self": "/api/v1/sports/standings",
"next": null,
"docs": "/developers/reference/sports/#get-sports-standings"
}
}GET /api/v1/sports/clubs #
Minor and community sports clubs and leagues, with sport, age group and official links.
From the City’s Community Recreation Directory (sports types), refreshed weekly, plus clubs the directory lacks. sport and age (youth, adult, all) are derived from the club’s name and the City’s description and corrected by hand where wrong; age=youth also returns all-ages clubs. directory links the club’s listing in our business directory when there is one. description is the City’s own short text.
- Cache: 1 h
- Source: City of Prince George Community Recreation Directory (sports clubs), plus clubs added by PG Pulse editors; community events from clubs’ own public listings
- Licence: Public information published by the City of Prince George and the clubs: names, links, short descriptions and event facts, with attribution. See
sourceandlicenceper item - Paginated:
limit(default 100, max 500) andoffset; alsoformat=csv
| Parameter | In | Type | Description |
|---|---|---|---|
sport | query | string | Sport name or slug (see /sports/clubs/sports). Example: hockey. |
age | query | string | youth, adult or all. One of: youth, adult, all. |
q | query | string | Search name, sport and description. Example: fastball. |
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
curl "https://princegeorgepulse.ca/api/v1/sports/clubs?sport=hockey&age=youth"Example response (trimmed)
{
"data": [
{
"id": "cariboo-cougars",
"name": "Cariboo Cougars (U18 AAA hockey)",
"sport": "Hockey",
"sportSlug": "hockey",
"age": "youth",
"adaptive": false,
"types": [],
"description": "Prince George’s U18 AAA team in the BC Elite Hockey League. Schedules are on the league site (Spordle), which has no public feed.",
"url": "https://www.cariboocougars.net/",
"cityUrl": null,
"directorySlug": "cariboo-hockey-ltd",
"venue": null,
"…": "8 more keys"
},
{
"id": "pg-frost-bites-para-ice-hockey",
"name": "PG Frost Bites Para Ice Hockey",
"sport": "Hockey",
"sportSlug": "hockey",
"age": "all",
"adaptive": true,
"types": [
"Ice Sports"
],
"description": null,
"url": "https://northernadaptedsports.ca/hockey/",
"cityUrl": "https://www.princegeorge.ca/node/278",
"directorySlug": null,
"venue": null,
"…": "8 more keys"
},
"… 2 more"
],
"meta": {
"source": "City of Prince George Community Recreation Directory (sports clubs), plus clubs added by PG Pulse editors; community events from clubs’ own public listings",
"sourceUrl": "https://www.princegeorge.ca/community-culture/your-community/community-recreation-directory",
"updatedAt": "2026-10-10T18:32:02.820Z",
"ageSec": 490576,
"license": "Public information published by the City of Prince George and the clubs: names, links, short descriptions and event facts, with attribution. See `source` and `licence` per item",
"attribution": "City of Prince George and each club, via PG Pulse (princegeorgepulse.ca)",
"total": 4,
"count": 4,
"limit": 100,
"offset": 0
},
"links": {
"self": "/api/v1/sports/clubs?sport=hockey&age=youth",
"next": null,
"docs": "/developers/reference/sports/#get-sports-clubs"
}
}GET /api/v1/sports/clubs/sports #
Sports with the number of clubs for each.
- Cache: 1 h
- Source: City of Prince George Community Recreation Directory (sports clubs), plus clubs added by PG Pulse editors; community events from clubs’ own public listings
- Licence: Public information published by the City of Prince George and the clubs: names, links, short descriptions and event facts, with attribution. See
sourceandlicenceper item
Also accepts fields (sparse fieldset) and format (json, md).
Example request
curl "https://princegeorgepulse.ca/api/v1/sports/clubs/sports"Example response (trimmed)
{
"data": [
{
"sport": "Hockey",
"slug": "hockey",
"count": 9
},
{
"sport": "Equestrian",
"slug": "equestrian",
"count": 5
},
"… 31 more"
],
"meta": {
"source": "City of Prince George Community Recreation Directory (sports clubs), plus clubs added by PG Pulse editors; community events from clubs’ own public listings",
"sourceUrl": "https://www.princegeorge.ca/community-culture/your-community/community-recreation-directory",
"updatedAt": "2026-10-10T18:32:02.820Z",
"ageSec": 490576,
"license": "Public information published by the City of Prince George and the clubs: names, links, short descriptions and event facts, with attribution. See `source` and `licence` per item",
"attribution": "City of Prince George and each club, via PG Pulse (princegeorgepulse.ca)"
},
"links": {
"self": "/api/v1/sports/clubs/sports",
"next": null,
"docs": "/developers/reference/sports/#get-sports-clubs-sports"
}
}GET /api/v1/sports/clubs/{id} #
One club with its upcoming community events.
- Cache: 1 h
- Source: City of Prince George Community Recreation Directory (sports clubs), plus clubs added by PG Pulse editors; community events from clubs’ own public listings
- Licence: Public information published by the City of Prince George and the clubs: names, links, short descriptions and event facts, with attribution. See
sourceandlicenceper item
| Parameter | In | Type | Description |
|---|---|---|---|
id | path | string | Club id (from /sports/clubs). Required. |
Also accepts fields (sparse fieldset) and format (json, md).
Example request
curl "https://princegeorgepulse.ca/api/v1/sports/clubs/caledonia-adaptive-snow-sports-society"Example response (trimmed)
{
"data": {
"id": "caledonia-adaptive-snow-sports-society",
"name": "Caledonia Adaptive Snow Sports Society",
"sport": "Alpine skiing",
"sportSlug": "alpine-skiing",
"age": "all",
"adaptive": true,
"types": [
"Skiing & Snow Sports"
],
"description": "Caledonia Adaptive Snow Sports Society provides ski instruction to anyone who cannot be part of a regular ski lesson due to a cognitive or physical impairment of any type.",
"url": "https://www.facebook.com/caledoniaadaptive/",
"cityUrl": "https://www.princegeorge.ca/community-culture/your-community-events/community-recreation-directory/caledonia-adaptive-snow",
"directorySlug": null,
"venue": null,
"…": "9 more keys"
},
"meta": {
"source": "City of Prince George Community Recreation Directory (sports clubs), plus clubs added by PG Pulse editors; community events from clubs’ own public listings",
"sourceUrl": "https://www.princegeorge.ca/community-culture/your-community/community-recreation-directory",
"updatedAt": "2026-10-10T18:30:25.560Z",
"ageSec": 490673,
"license": "Public information published by the City of Prince George and the clubs: names, links, short descriptions and event facts, with attribution. See `source` and `licence` per item",
"attribution": "City of Prince George and each club, via PG Pulse (princegeorgepulse.ca)"
},
"links": {
"self": "/api/v1/sports/clubs/caledonia-adaptive-snow-sports-society",
"next": null,
"docs": "/developers/reference/sports/#get-sports-clubs-id"
}
}GET /api/v1/sports/events #
Community sports events (bonspiels, tournaments, club events) from clubs’ public listings.
Imported every 6 hours from the clubs’ own public event feeds (see source). Dates are local; start is UTC when the event has a time. Sports events in the general events calendar are at /events?category=sports.
- Cache: 15 min
- Source: City of Prince George Community Recreation Directory (sports clubs), plus clubs added by PG Pulse editors; community events from clubs’ own public listings
- Licence: Public information published by the City of Prince George and the clubs: names, links, short descriptions and event facts, with attribution. See
sourceandlicenceper item - Paginated:
limit(default 50, max 500) andoffset; alsoformat=csv
| Parameter | In | Type | Description |
|---|---|---|---|
from | query | string | From this local date (YYYY-MM-DD, default today). Example: 2026-10-01. |
to | query | string | Up to this local date (YYYY-MM-DD). |
club | query | string | Club id. |
sport | query | string | Sport name or slug. Example: curling. |
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
curl "https://princegeorgepulse.ca/api/v1/sports/events"Example response (trimmed)
{
"data": [
{
"id": "pg-curling-bonspiels:30098",
"club": "pg-golf-and-curling-club",
"clubName": "Prince George Golf & Curling Club",
"title": "2026 Ice Breaker Bonspiel Team Entry",
"sport": "Curling",
"age": "all",
"startDate": "2026-10-16",
"endDate": "2026-10-18",
"start": null,
"allDay": true,
"venue": "Prince George Golf & Curling Club",
"url": "https://prince-george.curling.io/en/events/30098-2026-ice-breaker-bonspiel-team-entry",
"…": "5 more keys"
},
{
"id": "pg-curling-bonspiels:30462",
"club": "pg-golf-and-curling-club",
"clubName": "Prince George Golf & Curling Club",
"title": "Pioneer 50+ Curling Bonspiel",
"sport": "Curling",
"age": "adult",
"startDate": "2026-11-06",
"endDate": "2026-11-08",
"start": null,
"allDay": true,
"venue": "Prince George Golf & Curling Club",
"url": "https://prince-george.curling.io/en/events/30462-pioneer-50-curling-bonspiel",
"…": "5 more keys"
}
],
"meta": {
"source": "City of Prince George Community Recreation Directory (sports clubs), plus clubs added by PG Pulse editors; community events from clubs’ own public listings",
"sourceUrl": "https://www.princegeorge.ca/community-culture/your-community/community-recreation-directory",
"updatedAt": "2026-10-16T10:30:46.661Z",
"ageSec": 1052,
"license": "Public information published by the City of Prince George and the clubs: names, links, short descriptions and event facts, with attribution. See `source` and `licence` per item",
"attribution": "City of Prince George and each club, via PG Pulse (princegeorgepulse.ca)",
"total": 2,
"count": 2,
"limit": 50,
"offset": 0
},
"links": {
"self": "/api/v1/sports/events",
"next": null,
"docs": "/developers/reference/sports/#get-sports-events"
}
}