curl "https://api.northaxiumdata.ca/api/v1/licences?municipality=calgary&status=active&licence_type=contractor&limit=25" \
-H "X-API-Key: <your-api-key>"
import requests
response = requests.get(
"https://api.northaxiumdata.ca/api/v1/licences",
headers={"X-API-Key": "<your-api-key>"},
params={
"municipality": "calgary",
"status": "active",
"licence_type": "contractor",
"limit": 25,
},
)
print(response.json())
{
"data": [
{
"record_id": "calgary:40659",
"municipality": "calgary",
"province": "AB",
"licence_number_raw": "40659",
"source_reference": "40659",
"business_name": "Example Contracting Ltd.",
"trade_name": null,
"licence_type_raw": "CONTRACTOR",
"licence_type": "contractor",
"business_description": "General contractor",
"status": "active",
"address": "123 4 Avenue SW, Calgary, AB",
"neighbourhood": "Downtown Commercial Core",
"issue_date": "2025-01-15",
"expiry_date": "2026-01-14",
"lat": 51.0491,
"lng": -114.0713,
"last_updated": "2026-07-13T06:20:00",
"distance_km": null
}
],
"meta": {
"total": 1,
"limit": 25,
"offset": 0,
"municipality": "calgary",
"sort_by": "expiry_date",
"sort_order": "desc",
"proximity": null
}
}
{
"error": {
"code": "BAD_REQUEST",
"message": "status must be one of: active, expired, cancelled, other."
}
}
{
"error": {
"code": "UNAUTHORIZED",
"message": "Missing API key. Pass your key in the X-API-Key header."
}
}
Business Licences
Business Licences
Active and historical business licence records across Canadian municipalities.
GET
/
api
/
v1
/
licences
curl "https://api.northaxiumdata.ca/api/v1/licences?municipality=calgary&status=active&licence_type=contractor&limit=25" \
-H "X-API-Key: <your-api-key>"
import requests
response = requests.get(
"https://api.northaxiumdata.ca/api/v1/licences",
headers={"X-API-Key": "<your-api-key>"},
params={
"municipality": "calgary",
"status": "active",
"licence_type": "contractor",
"limit": 25,
},
)
print(response.json())
{
"data": [
{
"record_id": "calgary:40659",
"municipality": "calgary",
"province": "AB",
"licence_number_raw": "40659",
"source_reference": "40659",
"business_name": "Example Contracting Ltd.",
"trade_name": null,
"licence_type_raw": "CONTRACTOR",
"licence_type": "contractor",
"business_description": "General contractor",
"status": "active",
"address": "123 4 Avenue SW, Calgary, AB",
"neighbourhood": "Downtown Commercial Core",
"issue_date": "2025-01-15",
"expiry_date": "2026-01-14",
"lat": 51.0491,
"lng": -114.0713,
"last_updated": "2026-07-13T06:20:00",
"distance_km": null
}
],
"meta": {
"total": 1,
"limit": 25,
"offset": 0,
"municipality": "calgary",
"sort_by": "expiry_date",
"sort_order": "desc",
"proximity": null
}
}
{
"error": {
"code": "BAD_REQUEST",
"message": "status must be one of: active, expired, cancelled, other."
}
}
{
"error": {
"code": "UNAUTHORIZED",
"message": "Missing API key. Pass your key in the X-API-Key header."
}
}
Business licence records cover active and historical licences issued by municipal governments. Use them to identify businesses by category and location, track licence status, and monitor new or expiring licences.
The dataset contains more than 302,000 records from Calgary, Edmonton, Vancouver, Victoria, Burnaby, and Kelowna. It refreshes automatically from official municipal sources.
The detail endpoint also returns
The
List business licences
GET /api/v1/licences
Query parameters
integer
default:"100"
Maximum records to return. The upper bound is
500.integer
default:"0"
Number of records to skip for pagination.
string
One or more comma-separated city slugs:
burnaby, calgary, edmonton, kelowna, vancouver, or victoria.string
Partial match across the business name, trade name, address, licence type, and other searchable licence text.
string
Partial match on the normalized or source licence type.
category is accepted as an alias.string
Partial match on the municipality’s original licence-type text.
string
One of
active, expired, cancelled, or other.string
Partial match on the registered business name.
business is accepted as an alias.string
Partial match on the business trade name.
string
Partial match on neighbourhood, ward, or district text where the municipality publishes it.
string
Inclusive ISO 8601 licence-issue-date start.
issued_after is accepted as an alias.string
Inclusive ISO 8601 licence-issue-date end.
issued_before is accepted as an alias.string
Inclusive ISO 8601 licence-expiry-date start.
string
Inclusive ISO 8601 licence-expiry-date end.
number
Latitude for proximity search. Provide with
lng and radius_km.number
Longitude for proximity search. Provide with
lat and radius_km.number
Search radius in kilometres, from
0.1 to 100.string
default:"expiry_date"
One of
issue_date, issued, expiry_date, expires, updated, last_updated, or distance. distance requires a complete proximity query.string
default:"desc"
Either
asc or desc.curl "https://api.northaxiumdata.ca/api/v1/licences?municipality=calgary&status=active&licence_type=contractor&limit=25" \
-H "X-API-Key: <your-api-key>"
import requests
response = requests.get(
"https://api.northaxiumdata.ca/api/v1/licences",
headers={"X-API-Key": "<your-api-key>"},
params={
"municipality": "calgary",
"status": "active",
"licence_type": "contractor",
"limit": 25,
},
)
print(response.json())
{
"data": [
{
"record_id": "calgary:40659",
"municipality": "calgary",
"province": "AB",
"licence_number_raw": "40659",
"source_reference": "40659",
"business_name": "Example Contracting Ltd.",
"trade_name": null,
"licence_type_raw": "CONTRACTOR",
"licence_type": "contractor",
"business_description": "General contractor",
"status": "active",
"address": "123 4 Avenue SW, Calgary, AB",
"neighbourhood": "Downtown Commercial Core",
"issue_date": "2025-01-15",
"expiry_date": "2026-01-14",
"lat": 51.0491,
"lng": -114.0713,
"last_updated": "2026-07-13T06:20:00",
"distance_km": null
}
],
"meta": {
"total": 1,
"limit": 25,
"offset": 0,
"municipality": "calgary",
"sort_by": "expiry_date",
"sort_order": "desc",
"proximity": null
}
}
{
"error": {
"code": "BAD_REQUEST",
"message": "status must be one of: active, expired, cancelled, other."
}
}
{
"error": {
"code": "UNAUTHORIZED",
"message": "Missing API key. Pass your key in the X-API-Key header."
}
}
Response fields
| Field | Type | Description |
|---|---|---|
record_id | string | Stable NorthAxium record identifier |
municipality | string | City slug |
province | string | Province abbreviation |
licence_number_raw | string | Licence number published by the municipality |
source_reference | string | Source-system record identifier where published |
business_name / trade_name | string | Registered and trade business names where published |
licence_type_raw | string | Source licence-type text |
licence_type | string | Normalized licence type |
business_description | string | Business activity description where published |
status | string | Normalized licence status |
address | string | Business address where published |
neighbourhood | string | Neighbourhood, ward, or district where published |
issue_date / expiry_date | date | Licence issue and expiry dates where published |
lat / lng | number | Business location coordinates where published |
last_updated | timestamp | NorthAxium record update timestamp |
distance_km | number | Distance from the search coordinate for proximity queries |
Detail and statistics
Retrieve one record byrecord_id:
GET /api/v1/licences/{record_id}
status_raw and source_url when they are published by the municipality.
Get grouped record counts:
GET /api/v1/licences/stats?group_by=municipality
group_by parameter accepts municipality, province, status, licence_type, neighbourhood, issue_year, or expiry_year. The list filters also apply to statistics.
For city-by-city availability, see Municipal Intelligence Coverage.