Location Boundaries API · Canada

The full Canadian boundary hierarchy, queryable by address.

Province. Census division. Upper-tier municipality. Lower-tier municipality. Neighbourhood. Electoral district. Postal geography. Every boundary level Canadians and governments actually use — resolved from a single address, returned as GeoJSON, ready to power any location analytics product.

GeoJSON polygons 7 boundary levels Address & coordinate lookup Authoritative sources Canadian-hosted
01
Province / Territory
Ontario
MultiPolygon
02
Census Division
Toronto Division (3520)
Polygon
03
Upper-Tier Municipality
Regional Municipality of Peel
Polygon
04
Lower-Tier Municipality
City of Mississauga
Polygon
05
Neighbourhood
Port Credit
MultiPolygon
06
Electoral District
Mississauga–Lakeshore
Polygon
07
Forward Sortation Area
L5G · Port Credit
Polygon
📍
Resolved from address
247 Lakeshore Rd E, Mississauga, ON
StatsCan & Elections Canada sources Curated neighbourhood boundaries GeoJSON MultiPolygon output Address or coordinate lookup Bounding box + centroid included Stable boundary IDs
Boundary coverage

Every level of the Canadian geographic hierarchy, in one response.

Most boundary datasets give you one level — a shapefile of municipalities, or a GeoJSON of provinces. Neighbourly gives you the full stack, cross-linked, queryable from a single address or lat/lng. Every level that matters for location analytics, from national policy down to the neighbourhood.

National → Provincial

Province & Territory

All 13 provinces and territories as authoritative GeoJSON polygons. Cross-linked to Statistics Canada provincial identifiers for consistent data joins.

PRUID · 2-letter code · EN/FR names
Provincial → Regional

Census Division & Upper-Tier Municipality

Counties, regional municipalities, districts, and unified cities — the tier between province and local municipality. Essential for regional analytics and government reporting.

CDUID · CSDUID · type code
Regional → Local

Lower-Tier Municipality & Neighbourhood

Cities and towns with precise GeoJSON boundaries, plus curated neighbourhood shapes within them. The two levels your users actually care about.

Stable city ID · neighbourhood slug
Boundary Type Coverage Example Output Source
Province / Territory All 13 Ontario, Québec, BC MultiPolygon Statistics Canada
Census Division 293 divisions Toronto Division (3520) Polygon Statistics Canada
Upper-Tier Municipality Major metro regions Region of Peel, York Region Polygon Provincial registries
Lower-Tier Municipality All cities & towns City of Ottawa, Town of Oakville Polygon Municipal + StatsCan
Neighbourhood All major urban areas Leslieville, Mount Pleasant, Rosedale MultiPolygon Neighbourly curated
Federal Electoral District 343 ridings Toronto Centre, Vancouver Granville Polygon Elections Canada
Forward Sortation Area Full Canada Post FSAs M5V, V6B, H3Z Polygon Canada Post / StatsCan
Response schema

One address. Every boundary. One response object.

Query any Canadian civic address and get back a nested geography object — every boundary level, its GeoJSON polygon, stable ID, and cross-reference identifiers. No stitching together separate API calls, no normalizing inconsistent identifiers.

  • addressNormalized civic address with Canada Post conform
  • lat / lngGeocoded coordinate pair (SRID 4326)
  • provinceBoundary + PRUID + EN/FR name
  • census_divisionBoundary + CDUID + type + name
  • upper_municipalityRegional boundary if applicable (null for single-tier cities)
  • municipalityLower-tier city boundary + stable ID + type
  • neighbourhoodCurated boundary + slug + name + character_tags
  • electoral_districtFederal riding boundary + EDUID + EN/FR name
  • fsaForward Sortation Area boundary + code
  • *.boundaryGeoJSON Polygon or MultiPolygon for every level
  • *.centroidGeoJSON Point centroid for every level
  • *.bboxBounding box [minLng, minLat, maxLng, maxLat]
GET /v1/boundaries?address=247+Lakeshore+Rd+E,+Mississauga 200 OK
{
  "address":  "247 Lakeshore Rd E, Mississauga ON L5G 1G8",
  "lat":      43.5524,
  "lng":      -79.5731,

  "province": {
    "name":   "Ontario",
    "code":   "ON",
    "pruid":  35,
    "boundary": { /* GeoJSON MultiPolygon */ }
  },

  "census_division": {
    "name":   "Peel",
    "cduid":  "3521",
    "type":   "RM",
    "boundary": { /* GeoJSON Polygon */ }
  },

  "municipality": {
    "name":   "Mississauga",
    "type":   "city",
    "id":     "muni_mississauga_on",
    "boundary": { /* GeoJSON Polygon */ }
  },

  "neighbourhood": {
    "name":   "Port Credit",
    "slug":   "port-credit-mississauga",
    "boundary": { /* GeoJSON MultiPolygon */ },
    "centroid": { /* GeoJSON Point */ }
  },

  "electoral_district": {
    "name":   "Mississauga–Lakeshore",
    "eduid":  "35066",
    "boundary": { /* GeoJSON Polygon */ }
  },

  "fsa": {
    "code":     "L5G",
    "boundary": { /* GeoJSON Polygon */ }
  }
}
API endpoints

Query by address, coordinate, or boundary ID.

Three ways to get boundaries — resolve from an address, look up from a lat/lng, or fetch any individual boundary shape by its stable ID. Every endpoint returns the same consistent GeoJSON structure.

GET
/v1/boundaries?address={address}
Resolve a civic address to the full boundary stack. Pass any Canadian address string — the API normalizes, geocodes, and returns all boundary levels with GeoJSON polygons. Best for ingestion pipelines and listing enrichment.
GET
/v1/boundaries?lat={lat}&lng={lng}
Point-in-polygon lookup from a coordinate pair. Returns the same full boundary stack. Useful for map click interactions, GPS data enrichment, and mobile applications where you have a coordinate before an address.
GET
/v1/boundary/{type}/{id}
Fetch the GeoJSON shape and metadata for any specific boundary by type and stable ID. Use it to render a specific neighbourhood, municipality, or riding boundary on a map without re-querying from an address.
GET
/v1/boundaries/municipality/{id}/children
List all neighbourhood boundaries within a municipality. Returns summary profiles with slug, name, centroid, and bounding box — useful for populating neighbourhood maps and search interfaces.
POST
/v1/boundaries/batch
Submit up to 1,000 addresses in a single request. The batch endpoint returns the full boundary stack for each address. Designed for portfolio enrichment, insurance ingestion, and AVM data pipelines.
GET
/v1/boundaries/within?bbox={bbox}&type={type}
Return all boundaries of a given type within a bounding box. Useful for map viewport queries — load only the neighbourhood or municipal boundaries visible to the user as they pan and zoom.
Location analytics use cases

Boundaries are the foundation of any location analytics product.

Every meaningful analysis of Canadian places — risk scoring, site selection, service mapping, demographic profiling, portfolio monitoring — starts with a question about geography. Neighbourly gives you the geographic containers that make that analysis possible.

Insurance & Risk

Assign any property to the right geographic risk tier — automatically.

Resolve every address in your portfolio to its census division, municipality, and neighbourhood. Use those stable boundary IDs to join against your own risk models, climate exposure tables, and regulatory pricing bands — without maintaining your own boundary dataset or running your own geocoding infrastructure.

Municipality boundaries Neighbourhood polygons FSA shapes Batch endpoint
Site Selection & Retail

Build trade areas from real boundaries — not arbitrary radius circles.

Most site selection tools draw a 5km radius and call it a trade area. Neighbourly lets you build trade areas from actual neighbourhood and municipal boundaries — the geographic containers your customers think in. Query all addresses within a boundary, aggregate demographics, and compare candidate sites on consistent geographic terms.

Neighbourhood boundaries Municipality shapes Point-in-polygon lookup Viewport query
Government & Public Sector

A consistent geographic identifier layer across every program and department.

Different departments working from different boundary datasets create data reconciliation problems that compound over time. A shared address-to-boundary API gives every program — planning, service delivery, community health, infrastructure — the same geographic identifiers to join on. One address, one province ID, one census division ID, one municipality ID.

Census division boundaries Electoral districts Municipal hierarchy Stable IDs
Real Estate & PropTech

Map-driven products that render the right boundary at the right zoom level.

Show province boundaries when zoomed out. Switch to municipality boundaries at mid-zoom. Render neighbourhood polygons at street level. The Neighbourly viewport endpoint returns only the boundaries visible in the current map bounding box — at the right boundary type for the zoom level — so your map renders fast and your users always see something meaningful.

Viewport query Neighbourhood polygons GeoJSON rendering Slug-based URLs
Who builds with this

Location boundaries power every vertical that depends on Canadian places.

Any product that asks "where is this?" or "what's around this address?" needs boundaries to make the answer meaningful. These are the teams reaching for the Neighbourly boundaries API first.

Insurance

Portfolio-level geographic risk assignment

Batch-resolve every property in a book of business to its census division and municipality for regulatory pricing band assignment.

PropTech

Neighbourhood boundary map layers

Render interactive neighbourhood polygon overlays and neighbourhood-filtered search on any listing or rental platform.

Retail & Franchise

Trade area definition & comparison

Define trade areas by real neighbourhood and municipal shapes, not radius rings. Compare candidate sites on equal geographic footing.

Government

Shared geographic identifier layer

Provide every department and program a single address-to-boundary API so datasets can be joined across silos using consistent IDs.

Start building with Canadian location boundaries today.

Talk to us about API access, your use case, and what boundary coverage your product needs. We'll walk you through the full dataset and integration path.

Frequently asked questions

Common questions about this data and how to use it.

What boundaries does the API provide?

The full Canadian boundary hierarchy: provinces, municipalities, census divisions, neighbourhoods, electoral districts, and postal geographies.

How can I query boundaries?

By address or coordinate to get the containing boundaries, or retrieve a boundary by ID.

What format are boundaries in?

GeoJSON, ready to render or use in spatial analysis.

Does it cover all of Canada?

Yes — the geographic hierarchy spans all provinces and territories.

What is it used for?

Mapping, territory definition, spatial joins, and rolling up data to consistent geographic units.