Address Lookup API · Canada

Find any Canadian address, however you start looking.

Look up an address by text, autocomplete, ID, map area or coordinates. Address results come back as clean, structured fields, with links to the permits, energy and demographic data attached to that address.

Five ways to look up Sub-100ms typeahead All provinces & territories REST · JSON Canadian hosting
GET /v1/address?q="147 maple cr toronto" 200 OK
{
  "full_addr": "147 Maple Crescent, Toronto, ON",
  "number":   147,
  "street":   "Maple",
  "suffix":   "Crescent",
  "fsa":      "M4K",
  "ldu":      "M4K 1A1",
  "neighbourhood": "Riverdale",
  "city":     "Toronto",
  "province": "Ontario",
  "lat": 43.6712, "lng": -79.3501,
  "_links": {
    "permits":      "/v1/permits?address_id=8421",
    "energy":       "/v1/energy?address_id=8421",
    "demographics": "/v1/demographics/find?fsa=M4K"
  }
}
All 10 provinces & 3 territories Quebec French street names ~100 street-type synonyms ~100ms p95 Canadian data · Canadian hosting
Five ways to look up

Start from whatever you already have.

A person typing, a saved record, a map view and a GPS reading all need different calls. They all use the same key and connect to the same address data.

Text search

GET /v1/address?q=

Send an address as typed, abbreviations and all, and get back a clean, structured record.

Autocomplete

GET /v1/location_typeahead/search

Suggest addresses, neighbourhoods and cities from a single search box as people type, with sub-100ms suggestions.

By ID

GET /v1/location_typeahead/address/{id}

Retrieve an address you have already found, using its ID, without searching again.

By map area

GET /v1/search/addresses_by_viewport

Return the address points inside the current map view, for map search and territory tools.

By coordinates

GET /v1/where_am_i

Resolve a latitude and longitude to its location, for GPS and tap-on-map flows.

What sets it apart

Built for how Canadian addresses actually work.

Neighbourly was built for Canadian geography, so messy input, French street names and Northern addressing conventions are handled without pre-processing.

Forgiving search

About 100 street-type synonym mappings mean Rd, Road and Rte resolve cleanly, so partial or abbreviated input still finds the right address.

Structured, not a string

Street number, name, suffix, direction, postal code, city and coordinates come back as separate fields, so there's nothing to parse.

One lookup, more data

Each response links to the data attached to that address. Store the address_id with your record and later calls to other layers can skip the lookup.

Response schema

Every field, clean and typed.

Each component is a separate field, ready to store, filter or join with the rest of your data.

  • full_addrCanonical full address, with casing and abbreviations normalized
  • numberStreet number as an integer
  • streetStreet name
  • suffixRoad, Street, Avenue, Crescent and so on
  • directionEast, West, North or South
  • fsa / lduForward Sortation Area and full postal code
  • neighbourhoodCurated neighbourhood name
  • city / provinceMunicipality and province
  • lat / lngGeocoded coordinates (SRID 4326)
  • _linksLinks to permits, energy and demographics
Follow a link to the next layer
# Authenticate with your API key
Authorization: Bearer nbk_prod_...

# 1. Look up the address
GET /v1/address?q="147 maple cr toronto"

# 2. Pull what you need for it
GET /v1/permits?address_id=8421
GET /v1/energy?address_id=8421
GET /v1/demographics/find?fsa=M4K
Who uses it

Any product that starts with finding a place.

From a search box on a portal to the records behind a CRM, address lookup is often the first call in the flow.

Search & Forms

A search box that understands Canada

Use one input for addresses, neighbourhoods and cities, then fill in the rest of the form from the chosen result.

Maps

Show the addresses in view

Load address points for the current map area as people pan and zoom, or resolve a tap on the map to its location.

Real Estate

Anchor listings to a clean record

Look up each listing's address when it arrives, keep the ID, and attach permits, energy and demographics to the property page.

Data Teams

Match records across systems

Run existing addresses through the API in batches so customer and property records share one consistent format and ID.

Frequently asked questions

Common questions about this data and how to use it.

What is an address lookup API?

An API that finds an address from what you already have, such as typed text, an ID or a location, and returns it as structured data your product can store and use.

How do I look up a Canadian address?

Send the address to /v1/address with your API key. No pre-processing is needed: the API normalizes abbreviations and returns structured fields with coordinates.

Can it autocomplete addresses as people type?

Yes. The typeahead endpoint is optimized for sub-100ms suggestions and searches addresses, neighbourhoods and city names together, so it suits a single search box.

Can I find the addresses inside a map area?

Yes. /v1/search/addresses_by_viewport returns the address points inside a map viewport.

What is the difference between address lookup and address validation?

Lookup is about finding an address and its data. Validation is about checking and standardizing an address you already have. Neighbourly does both from the same API, and our address validation page covers that side in more detail.

Which parts of Canada are covered?

All 10 provinces and 3 territories, including Quebec French street names and Northern Canada addressing conventions. Coverage density is higher in major metro areas.

Can I look up addresses in bulk?

Yes. The API supports batch address requests, including one-time runs on existing datasets. Contact us for volume pricing on a large initial dataset.

How do I get access?

Create an account to get an API key, or talk to sales about volume pricing. Data is hosted in Canada.

Add address lookup to your product.

Talk to us about API access, volume pricing, or how address data fits into your location stack.