Complete reference for the CleverTech Canadian Municipal Data Platform. All endpoints return JSON with consistent pagination.
Cross-cutting endpoints available across all verticals.
/api/cities
List all available cities and their verticals
/api/status
API status, version, and endpoint index
/health
Health check — database connectivity per city
Each vertical has city-scoped endpoints. Replace {city} with a city slug from the reference table below.
Historical property assessment values, ownership records, and tax data for residential and commercial properties.
{city} with any enabled city: calgary, toronto, vancouver, etc. See /api/cities for the full list.
/api/{city}/property/search
Search & filter assessments with pagination
/api/{city}/property/stats
Aggregate statistics (avg value, counts by type)
/api/{city}/property/by-roll/{roll}
Single property by roll number
/api/{city}/property/by-dls?dls=
Lookup by DLS coordinates
/api/{city}/property/batch
Batch lookup up to 100 properties
/api/{city}/property/export
Export full dataset (CSV/JSON)
qFull-text search (address, neighbourhood)limitResults per page (default 20, max 100)offsetPagination offsetmin_valueMinimum assessed value filtermax_valueMaximum assessed value filterproperty_typeResidential, Commercial, etc.sortSort field: assessed_value, address, etc.Statistics Canada census data — demographics, income, housing, and education profiles mapped to municipal boundaries and DAs.
{city} with any enabled city: calgary, toronto, vancouver, etc. See /api/cities for the full list.
/api/{city}/census/by-gps?lat=&lon=
Census data by GPS coordinates
/api/{city}/census/by-dls?dls=
Census data by DLS code
/api/{city}/census/profile?da_id=
Profile by Dissemination Area ID
/api/{city}/census/stats
Aggregate census statistics
/api/{city}/census/list
List all DAs for a city
/api/{city}/census/batch
Batch census lookup
latLatitude for GPS lookuplonLongitude for GPS lookupdlsDLS coordinate string (Q-SS-TWP-R-M format)da_idDissemination Area IDlimitResults per pageoffsetPagination offsetZoning bylaws, land-use categories, district codes, and regulatory boundaries. 218K+ district records across 18 cities.
{city} with any enabled city: calgary, toronto, vancouver, etc. See /api/cities for the full list.
/api/{city}/zoning
Zone districts with pagination
/api/{city}/zoning/codes
Unique zone codes for a city
/api/{city}/zoning/categories
Major land-use categories
/api/{city}/zoning/search?q=
Full-text search across zones
/api/{city}/zoning/by-code/{code}
Districts by zone code
/api/{city}/zoning/by-gps?lat=&lon=
Zone lookup by GPS
/api/{city}/zoning/stats
Aggregate zoning statistics
/api/{city}/zoning/export
Export zone data (GeoJSON/JSON)
qFull-text search querycodeFilter by zone codecategoryFilter by major categorylimitResults per page (default 20)offsetPagination offsetBuilding permit records — construction type, valuation, floor area, and contractor data. Track development activity across cities.
{city} with any enabled city: calgary, toronto, vancouver, etc. See /api/cities for the full list.
/api/{city}/building/search
Search & filter permits
/api/{city}/building/stats
Aggregate permit statistics
/api/{city}/building/{permit_id}
Single permit detail
/api/{city}/building/batch
Batch permit lookup
/api/{city}/building/export
Export permits (CSV/JSON)
qFull-text searchstatusFilter by permit statustypePermit type filtermin_valueMinimum estimated valuemax_valueMaximum estimated valuelimitResults per pageoffsetPagination offsetCanadian federal corporation registry — search companies, directors, and filings. Advanced filtering by province, industry, and status.
/api/registry/search
Full-text corporation search
/api/registry/corporation/{id}
Corporation detail by ID
/api/registry/advanced
Advanced filtering & faceted search
/api/registry/province/{code}
Corporations by province
/api/registry/stats
Aggregate registry statistics
qCorporation name searchprovinceProvince code filter (ON, AB, BC, etc.)statusActive, Dissolved, etc.industryNAICS industry codelimitResults per pageoffsetPagination offsetDynamic Land Scoring — comparative property valuation models, global rankings, and cross-city summaries for data-driven investment decisions.
{city} with any enabled city: calgary, toronto, vancouver, etc. See /api/cities for the full list.
/api/dls/compare
Multi-property comparison up to 50 properties
/api/dls/rankings/global
Global property rankings
/api/dls/summary/{city}
City-level DLS summary
cityCity slug for summarymetricRanking metric: value, growth, yieldlimitResults per pageoffsetPagination offsetSubscribe to real-time notifications when zoning changes occur in your areas of interest. Webhook delivery with configurable filters.
/api/alerts/subscribe
Register a webhook subscription
/api/alerts/subscriptions
List active subscriptions
/api/alerts/subscription/{sub_id}
Deactivate a subscription
/api/alerts/snapshots
Point-in-time zoning snapshots
/api/alerts/stats
Alert delivery statistics
cityCity slug to monitorcategoryZone category filterwebhook_urlYour webhook endpoint URLAPI keys provide higher rate limits and access to paid tiers. Two ways to obtain a key:
OAuth 2.0 Device Authorization (RFC 8628) — the standard way for headless tools to obtain API keys. No password needed.
POST /auth/device/codeGenerate a device code. Body: {"client_name": "my-tool", "scopes": "*"}POST /auth/device/tokenPoll for API key. Body: {"device_code": "..."}. Returns ctk_... key when user authorizes.GET /auth/device/verifyBrowser confirmation page. Open the verification_uri_complete URL to authorize.POST /auth/device/code → open verification_uri_complete in browser → click Authorize → poll POST /auth/device/token until you get a ctk_... API key.Header-based (obtain key via device auth above, or from the dashboard)
AuthorizationBearer ctk_... (standard HTTP auth)X-API-Keyctk_... (alternative header)Example: Using your API key
curlcurl -H "X-API-Key: ctk_..." https://clevertech.ca/api/calgary/property/search?limit=5Pythonrequests.get(url, headers={"X-API-Key": "ctk_..."})JavaScriptfetch(url, {headers: {"X-API-Key": "ctk_..."}})All list endpoints return consistent paginated responses with metadata.
{
"query": "search term",
"count": 20,
"total": 15234,
"limit": 20,
"offset": 0,
"results": [...]
}
limitResults per page (default 20, max 100)offsetZero-based offset for paginationformatResponse format: json (default) or csvUse these slugs in your API calls (e.g., /api/calgary/property/search).
| Slug | City | Verticals | Quick Test |
|---|---|---|---|
/calgary |
Calgary, AB | Property Census Zoning Building Business_License | Try it → |
/halifax |
Halifax, NS | Property Census Zoning Building | Try it → |
/saskatoon |
Saskatoon, SK | Property Census Zoning Building | Try it → |
/toronto |
Toronto, ON | Property Census Zoning Building | Try it → |
/montreal |
Montreal, QC | Property Census Zoning Building | Try it → |
/vancouver |
Vancouver, BC | Property Census Zoning Building Business_License | Try it → |
/edmonton |
Edmonton, AB | Property Census Zoning Building Business_License | Try it → |
/ottawa |
Ottawa, ON | Property Census Zoning Building | Try it → |
/winnipeg |
Winnipeg, MB | Property Census Zoning Building Business_License | Try it → |
/quebec-city |
Quebec City, QC | Property Census Zoning Building | Try it → |
/hamilton |
Hamilton, ON | Property Census Zoning Building | Try it → |
/kitchener |
Kitchener-Waterloo, ON | Property Census Zoning Building | Try it → |
/mississauga |
Mississauga, ON | Property Census Zoning Building | Try it → |
/markham |
Markham, ON | Property Census Zoning Building | Try it → |
/vaughan |
Vaughan, ON | Property Census Zoning Building | Try it → |
/london |
London, ON | Property Census Zoning Building | Try it → |