Business Data API · Canada-wide

Corporate registry, POIs, and trade area signals — from one coordinate.

Retrieve business records keyed to any Canadian address — registry filings, NAICS sector codes, operating status, and points of interest density — to power neighbourhood amenity scores, franchise site selection, and commercial real estate analysis.

Canada-wide coverage Corporate registry NAICS sector codes POI density Trade area analysis Address-keyed
500m TRADE AREA Café Pharmacy Grocery Fitness Restaurant CORP REGISTRY ● Active · NAICS 72
Neighbourhood Business Context
500m trade area · 23 active businesses · 6 NAICS sectors
Businesses
23
Top sector
Food & Bev
Active rate
91%
Corporate registry NAICS codes POI density Trade area
Every province & territory Corporate registry filings NAICS sector classification Points of interest Operating status signals Trade area density
What the API delivers

Business data built for location products, not CRMs.

Canadian business data is scattered across provincial corporate registries, municipal licence databases, and POI aggregators — with inconsistent schemas and no common coordinate key. Neighbourly normalizes it into a single coordinate-queryable layer: registry filings with stable IDs, sector codes, operating status, and density signals — all joined to the same address and boundary graph.

🏢

Corporate registry, address-keyed

Business records sourced from provincial corporate registries and municipal licence data — normalized into a single schema with naics_code, operating_status, and address_id foreign keys. Query by coordinate to surface the businesses at or near any Canadian address.

📊

Sector density for any trade area

Aggregate business density by NAICS sector within any radius or bounding box — how many food service businesses, retail outlets, health services, or professional offices are within 500m of a given coordinate. The density endpoint returns pre-aggregated counts by sector, so your application does no runtime grouping.

📍

Points of interest, category-classified

A curated POI layer — cafés, restaurants, grocery stores, pharmacies, gyms, transit stops, green spaces — classified by Neighbourly category codes and mapped to NAICS equivalents. Every POI carries a stable ID, coordinate, and neighbourhood_id so you can filter, count, and display by neighbourhood boundary.

Data models

Three models. One coordinate system.

Business records, POIs, and trade area density aggregates are all keyed to the same address and boundary graph as every other Neighbourly layer — so a listing enrichment, a franchise site score, and a neighbourhood amenity panel all draw from the same consistent dataset.

Model Geometry type Notable fields & notes
Business Point name, naics_code, naics_sector, operating_status (active, dissolved, suspended), incorporated_at, address_id FK, licence_number where available, province
PointOfInterest Point name, category (Neighbourly category code), naics_code, address_id FK, neighbourhood_id FK, phone, website_url; stable ID for consistent map layers
TradeAreaDensity Pre-aggregated response for a coordinate + radius: total_business_count, active_count, sector_breakdown[] (naics_sector, count, pct), top_category, poi_count_by_category[]
Endpoints

Query by coordinate, radius, or bounding box.

Every business model is queryable by its stable ID, by coordinate (point-proximity or polygon containment), or by bounding box — so you can populate a listing detail page, a franchise site score, or a neighbourhood dashboard from the same API.

GET
/v1/businesses/nearby?lat={lat}&lng={lng}&radius_km={r}
Return all businesses within a given radius of a coordinate. Filterable by naics_sector and operating_status. Ordered by distance ascending. Useful for listing-page neighbourhood business context.
GET
/v1/businesses/trade-area?lat={lat}&lng={lng}&radius_km={r}
Returns a pre-aggregated TradeAreaDensity response for the given coordinate and radius — total count, active rate, sector breakdown, and POI category counts. The primary endpoint for franchise and retail site scoring.
GET
/v1/businesses/{id}
Full business profile by stable ID. Returns all registry fields, the linked address record, neighbourhood context, and a link to nearby POIs. Stable IDs persist across annual return updates.
GET
/v1/pois/nearby?lat={lat}&lng={lng}&radius_km={r}&category={cat}
Return POIs within a radius, optionally filtered by Neighbourly category (cafe, grocery, pharmacy, gym, restaurant, transit, park…). Used for amenity panels on listing and neighbourhood pages.
GET
/v1/pois?bbox={bbox}&category={cat}
Return all POIs intersecting a bounding box, optionally filtered by category. Returns a GeoJSON FeatureCollection for direct use as a map layer. Ideal for viewport-based POI map overlays.
GET
/v1/businesses?neighbourhood_id={id}&naics_sector={sector}
All businesses in a neighbourhood boundary, optionally filtered by NAICS sector. Useful for neighbourhood commercial character profiling or census-equivalent business activity reports.
Response schema

Trade area context in one call.

The trade area density response returns a complete commercial profile for any coordinate and radius — sector breakdown, POI category counts, and active business rate — without any runtime aggregation on your side.

  • total_business_countAll businesses in the trade area
  • active_countActive-status businesses only
  • active_rate_pctPercentage of active vs total
  • sector_breakdown[]Array of NAICS sector + count + pct
  • top_sectorHighest-count NAICS sector name
  • poi_count_by_category[]POI count per Neighbourly category
  • radius_kmTrade area radius used for this query
  • centreGeoJSON Point — query coordinate
GET /v1/businesses/trade-area?lat=43.6501&lng=-79.3837&radius_km=0.5 200 OK
{
  "centre": {
    "type": "Point",
    "coordinates": [-79.3837, 43.6501]
  },
  "radius_km":          0.5,
  "total_business_count": 23,
  "active_count":        21,
  "active_rate_pct":     91.3,
  "top_sector":         "Food Services & Drinking Places",
  "sector_breakdown": [
    {
      "naics_sector": "Food Services & Drinking Places",
      "naics_code":   722,
      "count":        8,
      "pct":          34.8
    },
    {
      "naics_sector": "Health Care & Social Assistance",
      "naics_code":   621,
      "count":        5,
      "pct":          21.7
    },
    ... 4 more sectors
  ],
  "poi_count_by_category": [
    { "category": "restaurant",  "count": 7 },
    { "category": "cafe",        "count": 4 },
    { "category": "grocery",     "count": 2 },
    { "category": "pharmacy",    "count": 2 },
    { "category": "gym",         "count": 1 }
  ]
}
Who uses it

Business data that powers location decisions.

From neighbourhood amenity scores on listing pages to franchise territory analysis and commercial underwriting signals — business data is a foundational layer that makes every location-aware product smarter.

Real Estate Platforms

Neighbourhood amenity scores on every listing

Resolve a listing coordinate to its nearby POI count by category — cafés, restaurants, grocery stores, pharmacies, parks. Display a walkable amenity summary that gives buyers the "feel" of a neighbourhood without leaving the listing page. Powers the amenity dimension of Neighbourly's Livability Score.

Franchise & Retail Site Selection

Trade area density for any candidate location

Evaluate any candidate site by its trade area business density, sector composition, and active business rate. Identify co-tenancy opportunities, competitive density, and trade area vitality for any Canadian address — before signing a lease or opening a territory.

Commercial Real Estate

Commercial character for investment decisions

Query business density, sector mix, and operating status rates for any commercial neighbourhood to support cap rate analysis, repositioning assessments, and portfolio decisions. Business vitality is a proxy for foot traffic and demand that income statements don't always reflect.

Insurance Underwriting

Commercial neighbourhood risk context

Business density, sector composition, and dissolution rates within a trade area provide meaningful context for commercial property and liability underwriting. High dissolution rates or specific sector concentrations (e.g., hospitality-heavy areas) carry different risk profiles than established mixed-use commercial blocks.

Add business context to every location decision.

Talk to us about API access, trade area depth, or how business data layers into your existing Neighbourly integration.

Frequently asked questions

Common questions about this data and how to use it.

What does the Business Data API provide?

Canadian corporate registry records, points of interest, business density, and trade-area analysis.

How can I query it?

By coordinate, by ID, or by bounding box, with Canada-wide coverage.

What is trade-area analysis used for?

Site selection, market sizing, and competitive analysis — understanding the businesses and activity around a location.

What format is the data returned in?

JSON, with GeoJSON for spatial queries and boundaries.

How do I get access?

Contact us for an API key. Pricing is usage-based, with no seat licences or long-term contracts.