Skip to content


Available in the US and Canada

Information about the kinds of people who live near a specific location can be retrieved using the /demographics endpoint. The endpoint takes a lat/lng coordinate pair as inputs, and returns a wide range of demographic variables, organized by categories.

The demographic data returned describes residents who live within a five-minute walk of the given address and can be retrieved using a latitude/longitude request.

All populated areas in Canada and the US (50 states + District of Columbia) are covered.

The /demographics endpoint uses v2 of the Local Logic API. v1 of this endpoint is no longer supported. Anyone still using v1 is strongly encouraged to migrate to v2 to benefit from a variety of data and format fixes. Documentation for v1 has been removed, but can be requested at

GET /demographics

GET /demographics

Data availability

Household Income
Individual income·
Commute mode
Household composition
Population age
Housing tenancy
Language knowledge·
Housing type
Family composition·
Mother tongue·

QueryString Request Parameters

latrequiredA decimal number between -90 and 90 (Latitude)
lngrequiredA decimal number between -180 and 180 (Longitude)
keyrequiredThe API Key provided for you
langoptionalThe language that demographic variable labels will be returned in.
Available: en, fr.
Default: en

NodeJS example

method: 'GET',
url: '', // note the v2
qs: {
lat: 45.5017,
lng: -73.5656,
}, function (err, response, body) {
// See response example

200 - Response example

"data": {
"type": "Demographics",
"attributes": {
"income": {
"label": "Income",
"type": "standalone",
"variables": [
"variable": "avg_household_income",
"value": 88555.1858,
"label": "Average household income"
"variable": "avg_individual_income",
"value": 39706.2035,
"label": "Average individual income"
"commute_mode": {
"label": "Commute mode",
"type": "percent",
"variables": [
"variable": "transit",
"value": 0.3483,
"label": "Public transit"
"variable": "foot",
"value": 0.271,
"label": "Foot"
"variable": "bicycle",
"value": 0.115,
"label": "Bicycle"
"variable": "drive",
"value": 0.2339,
"label": "Car"
"variable": "other",
"value": 0.0318,
"label": "Other"

In the above example of returned data, there are two categories of demographic data (“Income” and “Commute mode”). These categories have the following fields:


  • A display label to describe this category

type: which can be either of the following:

  • percent: this category’s variables are directly related; their values are percentages and theoretically should add up to 1.0 (100%). In practice, values may not add to 100% in all cases due to rounding.
  • standalone: this category’s variables are separate values

variables: A list of several variables for the category, each with the following:

  • variable, a programmatic key that will be constant regardless of language
  • value, the actual demographic value
  • label, a language-specific description which can be used for display purposes

In the above example:

The average household income of the surrounding area is $88,555
The average individual income is $39,706
34.8% of people commute by transit
27.1% of people commute by foot
11.5% of people commute by bicycle
23.4% of people commute by car
3.2% of people commute by other modes
The demographic categories and variables returned will vary between supported countries (Canada and the US, as of 2019-09), although they will be consistent within each country. Also, any of the following changes may occur within this version of the API: new categories may be added, variables may change, and variable values may be updated. However, the schema will remain constant.
Edit this page on GitHub
1 contributorjpvalery
Last edited by jpvalery on July 20, 2020