Geocode USA and Canada

Create a Data Account - for Data Products Create an API Account - for XML/Json/CSV API

Notice Board

Major Update.December-31-2022:

Release Notes - Geocoder.ca V_Jan_2023

  • Gist: Geocoder.ca API is now a mature codebase, most changes are internal enhancements resulting in more data coverage, faster performance and stability.

geocoder.ca API (development version)

  • You can geocode points on interest as well as street addresses.

geocoder.ca API (production version)

Internals

  • Geocoder.ca now uses a customized implementation of the Hilbert Curve for geo indexing and locality-sensitive hashing resulting in a 50% gain in performance. The resulting hash, is called geonumber and can be used interchangingly with latitude,longitude
  • The latest version of street address data from statistics Canada road network file has been cleaned up and imported into the search index.
  • The latest versions of the civic address databases from Canadian municipalities participating in the open data publishing at open.canada.ca/en/open-data / https://www.statcan.gc.ca/en/lode/databases/oda
  • We've updated the city/neighborhood/locality lists for both USA and Canada
  • Better address spelling correction and standardization
  • Better autocomplete coverage and accuracy

New Features

  • Optionally you may request the nearest points of interest to be returned with your reverse geocoding search. More on the Places Search API
  • You may use both geonumber as well as latitude,longitude arguments for reverse geocoding.
  • The autocomplete API will also return "PO Box" matches on certain inputs.

Breaking changes

  • none

Minor changes

  • proper case formatting of city names and address names.

Known Issues

  • none

Reverse Place Search API.May-1-2021:

Optionally you may request the nearest points of interest to be returned with your reverse geocoding search. More on the Places Search API


Autocomplete Canadian Postal Addresses.May-1-2020:

We've added an autocomplete feature for partially entered Canadian postal addresses.
For eg: "1435 prince of" => "1435 PRINCE OF WALES DR, Ottawa, ON, K2C1N5". See the API for implementation details. Demo


Geocoder.ca is offering free licenses to help with the response to COVID-19.March-10-2020:

Geocoder.ca has always offered free licenses to non-for-profit users, including those working on COVID-19 research or projects. Contact us.


Edit Canadian Postal Code PolygonsJanuary-1-2020:

You may update your postal code polygon directly on geocoder.ca

For example, K2C1N5


Accurate Canadian Postal Code PolygonsNovember-25-2019:

We've re-vamped our postal code polygon calculation algorithm, resulting in a much more accurate polygonal representation of the crowdsourced Canadian Postal Code Dataset.

For example, This is a Shapefile Sample for the V3S FSA


US Address Cleanup and Standardization with Coding Accuracy Support System (CASS)May-7-2018: Although we have been offering this functionality for some time, we have only recently applied for Coding Accuracy Support System (CASS) certification with the USPS.

The geocoder.ca geocoding engine for the USA corrects and standardizes the following:

  • City and street name misspellings
  • Street suffixes such as Way, Court, Terrace, Avenue, East, West, South, North .. etc
  • ZIP code and ZIP+4
For example:

The misspelled and incomplete address:

  751 FAIR OKS AVENUE
  PASADNA CA

Is changed to:

  751 N FAIR OAKS AVE
  PASADENA CA 91103-3069

Due to customer demand, we intend to renew our CASS Certification each year from now henceforth with the USPS to meet current CASS Certification cycle requirements.


Statistics Canada Census 2016November-6-2017: We've integrated Statistics Canada Census 2016 data into our geocoding responses. You can now look up dissemination area data and more from street address lookups, postal codes and street intersections.

Staying Up to DateSeptember-21-2017: We have added a seamless process for integrating street data from new developments into geocoder.ca. (for both USA and Canada)
For example, 102 Kestrel ST, GLOUCESTER, ON is a new street. As soon as this new street was named, it was added on Geocoder.ca!
This address can not be found on either Bing Maps, Google Maps, Here and a few more. It probably won't be there for a while - depending on how frequently they update their DB.
Bottom line, if your GPS can't find it, try geocoder.ca.

Additions to the Postal Code DatasetSeptember-1-2017: We have added more detailed information to our Canada Postal Address Database - Type of Address, Unit and count. Bringing the total to 18592287 records.
"aType" is the address type. It takes one of two values: "Res" -> Residential Address, or "NonRes" -> Non Residential.
"Unit" is the unit/apartment/suite/etc number (if applicable.)
"Count" is the number of units/apartments/suites/etc in the address.

Innovation Science and Economic Development Canada (ISED) 25 km2 hexagons to postal codesJune-8-2017: We have added the Innovation Science and Economic Development Canada (ISED) 25 km2 hexagons to The Canadian Postal Codes Dataset.

For example, K2C1N5 - ON45360757 - Ottawa.

For more information see Digital Canada 150

This data is also available for download as part of the Canadian Postal Code Dataset Product linking the 2016 StatsCan Census - Boundary files to postal codes.


More Census Data for Canadian Postal CodesMay-17-2017: We've integrated the latest Census Data from Statistics Canada into our Canadian Postal Code Dataset.

For example, the Federal Electoral District version 2013 for K2C1N5.

This data is also available for download as part of the Canadian Postal Code Dataset Product.


Bash one liner for batch geocoding CSV/Text filesSeptember-3-2016: Of all the various clients interfacing with our geocoding API, the simplest one deserves some praise. Here is a bash one liner that takes as input a CSV file of locations, and outputs the file with the location information appended at the end of each line:
#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
    echo $line,`curl -X POST -d locate="$line" -d geoit="csv" https://geocoder.ca`;
done < "$1"
Save as geocode.sh then chmod a+x geocode.sh then run it as:
./geocode.sh input.csv>output.csv

Your input file might look something like:
input.csv

20 WYPER SQ , Toronto, ON M1S0B3
415 LAKEWAY, Ding Dong, TX 76549
Yonge and Dundas, Toronto
and the output

output.csv

20 WYPER SQ , Toronto, ON M1S0B3,200,1,43.790920,-79.245789
415 LAKEWAY, Ding Dong, TX 76549,200,0.8,30.976936,-97.817796
Yonge and Dundas, Toronto,200,0.9,43.655778,-79.380650
Four columns were appended to the input file. The status (200 success), the confidence score (a number between 0 and 1, with 1 being best match), the Latitude and the Longitude.

Batch Geocode / GeoJson and GeoCluster optionsAugust-15-2016: You can now export your batch geocoded files as GeoJson or view on a map as a Geo Cluster.

Click here for more information.


Crowdsourced Postal Code Data and more Census InformationJuly-15-2016: We've added Dissemination area codes and Federal electoral district data.

Click Here for more information.


Crowdsourced Postal Code Data and Census InformationJune-1-2016: We've added a new file to our crowdsourced postal code dataset, the Crowdsourced Postal Code Data and Census Information File. This links postal codes to census information. The census data we are including are: "CTUID","CTNAME","CMAUID","CMANAME","CMATYPE","CMAPUID".
Click Here for more information.

Accurate GeocodingFebruary-12-2016: Geocoder.ca has come a long way to be the most accurate geocoding service in North America (99% coverage and 94% accuracy rate in both USA and Canada.)
Those numbers can be verified independently by a) obtaining a random set of locations from Foursquare with a large number of checkins - i.e. ground truth, b) Geocoding each location and comparing the result to the Foursquare location which must be accurate with a very high probability (because it is highly unlikely that when someone checks in to a place, their device sends the wrong latitude, longitude.)
I've also compared other geocoding services using the same method, with Google Geocoder coming a close second (99% coverage, 93% accuracy)
You can download my test data here: https://github.com/eruci/openaddresses/tree/master/test (this data was generated as part of a geocoding talk I gave at Fosdem 2016: Geocoding on the cloud)
There is a ways to go to 100% coverage and 100% accuracy, still.

Fulltext Geocoding - Extracting and Geocoding Locations from free form textJanuary-27-2016: We have a released a Fulltext Geocoder, which matches and extracts one or more locations from a body of text, such as street addresses, street intersections and city names. The matches are ordered on confidence score and may be obtained in XML, CSV, JSON or Web format.
Currently it extracts North American locations (Canada, USA and Mexico), but more countries will be added soon based on the openaddresses.io free data repo.
Example: This and That and the Other street in Porters Lake Nova Scotia

Fulltext Geocoding references: https://www.dlib.org/dlib/september12/leetaru/09leetaru.html

RoofTop vs InterpolatedDecember-18-2015:
A rooftop result is when an exact match to a single address is found (this result is generally considered to be more accurate, because the location is placed at the middle of the "roof" of the property at that address, hence the name "rooftop").
An interpolated result is when the location is estimated to be between two known points (hence the name "interpolated")
For example:
  1. 2525 Olympic ST, SPRINGFIELD, OR 97477 (Rooftop)
  2. 2524 Olympic ST, SPRINGFIELD, OR 97477 (Interpolated)
(The rooftop has Confidence Score: 1, while the interpolated result has Confidence Score: 0.9) Rooftop always has Confidence Score = 1, while interpolated less then 1.

Canadian Parcel Plan/Block/Lot GeocodingNovember-30-2015: Parcel Geocoding for Canada is now available using open data from NRCAN and AltaLIS
Examples:

North American Telephone Area Codes and Time ZonesNovember-20-2015: We've incorporated North American Telephone Area Codes and Time Zones with reverse geocoding based on open data from UCLA. For example: Area Code 506. These data is now provided in the API and Data Products such as the Canadian Postal Code Datasets.

TIGER/Line Shapefiles - New 2015 ShapefilesNovember-15-2015: We have integrated the TIGER/Line Shapefiles - New 2015 Shapefiles into the US geocoding engine. (We convert the Tiger data into SQL then process it into our data structures. If you want to download a SQL version of the latest Tiger Line go to our Free Data Download Page.) We've also updated our zip code polygons. Click here for the complete zip code compass.

Geocoding MexicoNovember-06-2015: Geocoder is expanding to include Mexico. Starting with reverse geocoding for Mexico (beta), eg, https://geocoder.ca/19.4284665,-99.1685782?geoit=xml we will gradually implement all geocoding functionalities we currently offer for the USA and Canada, into Mexico, making geocoder.ca the most complete geocoding solution for North America (Canada, the United States and Mexico).

Geocode.xyzAugust-29-2015: We are expanding our coverage to Europe, starting with Geocode.xyz, a free Geocoder for Spain based on free and open data, such as Spain's cadastral data released by Portal de la Direccion General del Catastro.

Amazon Cloud GeocoderAugust-3-2015: We've partnered with Amazon Web Services to provide a cloud based geocoder.
AWS Marketplace Forward and Reverse Geocoder | API

FoodPages Neighborhood DataJuly-29-2015: We have added the crowdsourced Foodpages.ca neighborhood data(for Canada) and crowdsourced Foodpage.us neighborhood data(for USA) into our main dataset. (Available for download on foodpages.ca and dinehere.us)

Neighborhood and Postal Code PolygonsJune-19-2015: We've cleaned up our postal code polygon data and fitted them nicely inside neighborhood polygons. Both datasets are now available for download.
(Some postal code polygons are very large, the largest of them all is J0K3K0. So, you will not find every postal code polygon inside some neighborhood polygon.)

Neighborhood DataJune-15-2015: We've merged our neighborhood data with the excellent dataset from quattroshapes (https://quattroshapes.com/) to give you the widest coverage of North American neighborhoods on our reverse geocoding port.

Free Data License UpgradeJune-11-2015: We've upgraded our free data license to something less restrictive: Creative Commons Licence
This work is licensed under a Creative Commons Attribution 2.5 Canada License.

State of Geocoder.ca - More Features, Coverage & AccuracyMay-15-2015: Here is what has kept us busy recently:
  • Expanding and improving our bulk geocoding service. It can now handle uploads of large files (>1M records), and it runs faster (by running the optimal number of parallel processes). Try it.
  • Address validation has been one of our earliest features (since 2005). We now return a "standard format" of an input location string with every query by default. This standardization has been expanded to other inputs (such as street intersections).
  • More data sources backing geocoder.ca. This is the most important addition. We have imported new datasets from municipalities (Toronto, Vancouver, Region of Peel, Niagara Falls, Halifax, etc). We now have an automated process that imports new data as they are released by these sources, converts them from their various cartographic projections to lat,lon and standardizes their address location entities. More Accurate Data = More Accurate Geocoding. And more coverage. (as an added bonus many municipalities also publish their full list of municipal addresses, including the postal codes.)

Fun with Maps - Visualizing DataFeb-1-2015: The Geocoder.ca batch geocoding port converts your spreadsheet data into a map that can be shared publicly (or privately if you password-protect the map). Use this tool to upload your files and visualize on a map anything that we can geocode.

Here are some datasets we have visualized using Batch Geocoding.
  1. A map visualizing the location of most frequent Geocoder.ca users (based on ip address) Click to view IP Addresses in North America
  2. A map visualizing free street parking. Click to view Free Street Parking in Toronto (Calculated using the city of Toronto street parking public data and geocoder's street address database).
You may experiment with these maps by using our online mapping tool to set map styles and export maps in pdf or png formats.
(Wait a few seconds for the maps to render. There are over 50,000 points in each sample)

New Fuzzy MatchJan-26-2015: Try our new fuzzy match algorithm: 151 front st w, twrwntw, on or Intersection of Blue Ridge Parkway and Virginia Route 612, VA

PN, PP, NP, NN Codes for allJan-23-2015: Let's solve the problem of zip/postal/etc codes around the world. Let's invent a simple, intuitive schema that works everywhere - a zip code based on the latitude/longitude pairs of a place. For example, my zip code is P45x3691N75x7007 which translates neatly into 45.3691,-75.7007, the latitude longitude pair of my location. (also 4 digits after the decimal point are enough)
The letter 'P' means 'Positive' latitude and 'N' Negative longitude. So, for someone in the southern hemisphere 'P' becomes 'N', and so on. What could be so hard? It does have a few more symbols than the US Zip+9 code (7), however if we discount the repeating letters ('P','N' and 'x' representing the decimal point) the difference is only 3! Not bad! Considering nobody can possibly claim copyright over this scheme. Or can they?

PS. Anticipating widespread acceptance, geocoder is currently supporting this new scheme: Check out my Geo-Code P45x3691N75x7007 (suggestions, improvements, enhancements of this scheme are welcome. Everything in this site is licensed under the Creative Commons (CC) License.)

Geocoding Confidence ScoreMay-17-2014: The Geocoding Confidence Score is a number representing our accuracy estimate on a geocoding request. This number ranges from 1 to 0. A higher score indicates a closer match (A score of 1 meaning best match accuracy.) A result with confidence score less than 0.5 is never returned to the user (it will most likely result in a suggestion being returned), except for ip address geocoding where rough approximations are allowed as in most cases we are looking at city level accuracy.
This number is now returned with every type of geocoding request. In the XML and Jsonp ports the new parameter is called confidence.

Some Numbers on accuracy April-7-2014: A recent random selection study of our ip address geocoding (which works only for ip addresses in North America), revealed that the estimation is about 80% accurate at city level, 50% accurate at street address level. All the data used for ip address geocoding have been crowdsourced from the origin of accesses on our XML and Jsonp ports. If you have further questions or want to test this new service, let us know at [email protected]

SSL March-31-2014: Now available at https://geocoder.ca SSL Certificate

Rooftop Geocoding Dec-05-2013: Rooftop geocoding is an often requested feature. We are rolling out a new version of the software for major Canadian and US cities, which defaults to rooftop geocoding wherever possible. For example: 1658 SILVERTREE, Ottawa, ON. The differences will often be subtle, with the rooftop option being the most accurate result compared to interpolation. A new parameter in the XML, Jsonp and CSV interfaces will mark the distinction in the result. Read the API documentation for more information.

Further Explanation - interpolation is the process of estimating where on the street a particular address location is. There are several upsides of the rooftop method, most importantly: The point will be properly placed on the middle of the roof of the given address as opposed to being placed in the middle of the road (which is often the case with interpolation.) Another big advantage is better coverage. If a location belongs to a recently built house for instance, most current geocoders or gps devices will not find it, but the municipality has that data up to date because, well, everybody must pay the property tax. Here is an example address that I was not able to find on other services 7636 GREEN VISTA GT , Niagara Falls, ON

The data for rooftop geocoding is provided by various open sources:

It is mostly pretty good data, but, in Canada it is missing postal codes (with a few notable exceptions such as District of North Vancouver / https://geoweb.dnv.org/data/. ). If the response of a rooftop geocoding request includes a postal code, in most cases it has been estimated by our algorithm and it may not always be accurate. (this is an ongoing issue with all the geocoders I know of, google has even resorted to giving just the first three digits of the postal code on an address query, as their failure rate was reportedly over 50%)
The situation with the US data is slightly better, but still... Here is a recent blog post about that.

One last thing, you can also geocode locations directly on a map. Enjoy!


USA Address Geocoding Match Rates Nov-27-2013: Geocoding of USA locations remains our most used API with about 65% of all requests, in spite of the larger number of alternatives for accurate and high coverage US geocoding. Recently we ran a test to measure our coverage against a dataset of over 50 million USA addresses. Overall, about 94% of all addresses were geocoded with a level 1 confidence score, which is pretty good compared to the coverage of other major vendors.

Batch Geocoding Sept-30-2013: We've added a new batch geocoding tool. You must have an Account and Log In to use this tool.

How it works: You upload a text only csv file -> We geocode and standardize the location information on each line -> You log in to download the processed file. Batch geocoding is available for both USA locations, addresses and zip codes and for Canadian locations, addresses and postal codes.


Strict Mode Sept-15-2013: A common problem with geocoding is ambiguity. The geocoding engine often makes probabilistic choices when it receives ambigous input, for example: Vancouver. However, when you don't want the geocoding engine to guess you may use the strict mode. Here is an example that gives the two possibilities that may be returned : https://geocoder.ca/?locate=vancouver&geoit=xml&standard=1&topmatches=1&strictmode=1


101

Ambiguity in input. Several possible cities match your query.


vancouver, WA
vancouver, BC

Use the strict mode whenever possible. Or include the province or state name or abbreviation to remove the ambiguity. https://geocoder.ca/vancouver,wa?mapi=1
I pointed out this example because it concerns two cities of similar size that are in close geographical proximity. An even better example of ambiguity is Springfield.

Geocoding IP addresses Sept-7-2013: Geocoding of IP addresses is an oft requested feature. We now have collected sufficient data to generate our own ip geolocation database. As a result we are releasing a limited version of ip location services for Canada and the USA. (Sorry to those looking for more coverage, We have no data for countries outside of North America)

While this is still an experimental feature, initial tests seem promissing. Give it a try. We are looking forward to your feedback. (Just enter an ip address in the location parameter. The API remains the same as in the reverse geocoding API) Web Example | XML Example | Jsonp Example

Major Upgrade Aug-1-2013: A new version of the software has been released fixing many bugs, mostly in reverse geocoding. The new version also implements the "agent-based paradigm(1)" of geocoding for better match rates in locations described by street addresses or street intersections. We have also integrated the latest version of Statistics Canada Road Network Files. (released on 2013-07-22)

Crowdsourced Canadian Postal Code Polygon File May-5-2013: We have released our crowdsourced postal code polygon file under the terms of the Open Database License (ODbL)

Neighborhood Boundaries and Polygons Mar-15-2013: This is one of our most requested new features.
For now it will only work for the Toronto, Montreal and Vancouver greater metropolitan areas.
(for example: https://geocoder.ca/?moreinfo=1&latt=43.645119&longt=79.383839&reverse=Reverse+GeoCode+it%21 once there click on boundary to see the neighborhood polygon boundary.)
This feature is also available on the premium XML interface for the time being.

Zip & Postal Code Polygons Jan-3-2013: We have made our zip and postal code polygons available. Lookup a zip code (USA) or postal code (Canada) and click on the code to view the polygon.

New Look Dec-30-2012: Geocoder.ca public web page has a new look!

more Coverage / New Datasets Nov-18-2012: New datasets from Statistics Canada have been merged with the existing database.

more JSONp May-04-2012: JSONp has been extended to support zip+4 codes in USA and also improved on existing functionality.

JSON October-08-2010: JSON has been added as an optional output option.

New functionalities August-24-2008: You can now perform batch lookups (standalone server only), retrieve all streets that cross a particular street, and much more... See our documentation section.

Quality enhancements January-09-2008: New datasets integrated into our software

Turn-key standalone geocoder for Canada and the USA June-06-2007: We have released a new standalone geocoding solution, emulating all the functionality of geocoder.ca in a closed network environment as a Turn-key solution.

Various Enhancements April-29-2007: Many improvements & additions
  • We have improved the coverage and quality of our geocoding engine by recognizing non-standard city names (for eg: NYC)
  • The reverse geocoding engine also returns the road or highway having the smallest vertical distance from the input point in addition to the nearest street civic address. (for eg: This Point)
  • We are also adding more reverse geocoding info such as returning the closest two streets on either side of a given location. This feature is still in beta.
In addition to new functionality we are re-designing parts of the algorithm to improve performance. Stay tuned.

More info for Reverse Geocoding USA March-21-2007: The reverse geocoder for the USA has been extended to return the county and metro area information.

Additions to Reverse Geocoding for Canada and USA Dec-14-2006: The reverse geocoder has been extended to return the nearest major street intersection to a given point, in addition to the nearest intersection for both the US and Canada.

Reverse Geocoding and Forward Geocoding for USA Sept-24-2006: We have added reverse geocoding functionality for the United States, expanding our coverage to most of North America (except Mexico). Similarly Forward geocoding for the US works as advertised on the API pages.

Multiple suggestions for the xml port Sept-07-2006: Now you can enter a partial address and obtain a predefined number of suggestions. See the API page for details.

Suggestion System Addition for mis-spelled street names June-22-2006: The suggestion system now works for street intersection queries also. In case one or two mistyped street names are entered and the system can not find a fairly close match, then a suggestion may be returned with the correct spelling of both streets. See the API page for details.

More Backup and redundancy June-19-2006: A new redundant backup server has been installed. Now the geocoder service is backed up at two geographically distinct locations. The address of the backup server is backup-geocoder.ca

Reverse Geocoding Addition June-16-2006: The reverse geocoder can now return the nearest street corner for a latitude longitude pair. If you are using the xml interface you must send the corner=1 parameter to obtain nearby street intersection information. See the API documentation for more informations.

More Intersections March-25-2006: You can now locate the intersection of Highways with other Highways or streets.

Standard Address Formating Feb-25-2006: We now return the standard address formating with a successful request. If you use the xml api to obtain geocodes, use the parameter standard=1 to obtain a properly formated address too. See the API page for details.

Alternate Spelling of road names and city names Feb-01-2006: Use our suggestion system. If we can not find a mis-spelled location we will provide a sugestion with the correct spelling.

NEW! - Backup and Redundancy of the real-time xml port Jan-21-2006: We have added a backup service at an independent location from our main isp (backup-geocoder.ca) . What that means is that in the unlikely event of the main server (geocoder.ca) being offline, you can redirect your queries to the redundant backup service: backup-geocoder.ca

Note: The backup location will _only_ process queries in the event of the main service being off-line. Otherwise it will simply re-direct your query to geocoder.ca. This is only intended to give more "peace of mind" for those who wish to integrate their applications in real-time with our geocoding port, and are worried of the eventuality of a service outage. In case you want to use this backup service you need to code a few extra lines of code into your application to call the backup service in case your application receives a networking error from the main service. _DO NOT_ use the backup service in case the main service can not locate a particular address. Both the main service and the backup service are identical in that respect! Contact us if you need further explanation.


Cross Street Geocoding! Oct-01-2005: Now you can also geocode street intersections.

NEW! Sept-11-2005: Due to popular demand we have added reverse geocoding.


1. ^ Hutchinson, Matthew J (2010). Developing an Agent-Based Framework for Intelligent Geocoding (Ph.D. thesis). Curtin University.