One REST endpoint. Any messy input in — clean, normalized, hierarchy-enriched address out. Built for MLS platforms, proptech products, and brokerage CRMs that need reliable Canadian address data at scale.
# Validate & standardize a messy input GET /v1/address?q="147 lakeshore rd e, miss on" → 200 OK { "full_addr": "147 Lakeshore Road East, Mississauga, ON", "number": 147, "street": "Lakeshore", "suffix": "Road", "direction": "East", "fsa": "L5G", "ldu": "L5G 1E1", "city": "Mississauga", "province": "Ontario", "neighbourhood": "Port Credit", "lat": 43.5513, "lng": -79.5817 }
The Neighbourly address layer does three things other address APIs don't: it normalizes street components into indexed lookup tables, resolves the full 6-level geographic hierarchy, and links every address to permits, demographics, and energy data.
Submit any input — abbreviated, misspelled, or casually typed. The API returns the canonical full address with number, street name, suffix, direction, city, province, and postal code, each as a discrete field.
The /location_typeahead endpoint serves sub-100ms suggestions from Meilisearch with ~100 street-type synonym mappings — "rd", "road", "Rd." all resolve correctly.
Every address response includes its full 6-level hierarchy — Country → Province → County → Upper-Tier Municipality → Lower-Tier Municipality → Neighbourhood — with geometry, centroid, and bounding box.
Authenticate once. Query the address endpoint with any input. Follow the links to every data layer attached to that location.
Generate a scoped API key from your dashboard. Pass it as a Bearer token. Environment-scoped dev/prod keys, revocable at any time.
No pre-processing required. Send the raw input — the API normalizes abbreviations, resolves postal codes, and returns structured fields with coordinates.
Every response includes _links to permits, demographics, environmental data, and energy. Follow what you need.
Address responses are fully structured — no packed strings, no parsing required. Every component is a discrete field, each lookup normalized to a reference table.
{
"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"
}
}
Normalize agent-entered addresses before they hit your database. No more duplicate streets, inconsistent abbreviations, or broken geo-queries — every listing resolves to the same canonical address record.
Drop the typeahead endpoint into any address input field. It handles French street names, directional suffixes, Quebec municipalities, and postal code lookups — out of the box.
Once an address is validated, every Neighbourly data layer — permits, demographics, environment, energy — is one follow-up call away. Build richer property pages without building a data pipeline.
Running address data through the API standardizes it to a canonical record ID, making deduplication trivial. Merge your CRM contacts, lead lists, or property databases with reliable join keys.
/location_typeahead endpoint is backed by Meilisearch and is optimized for sub-100ms suggestion latency. It searches across addresses, neighbourhoods, and city names simultaneously, making it suitable for a single unified search input.Talk to us about API access, volume pricing, or the managed standardization service. Most teams are up and running within a day.