Location Scores
For use cases, coverage and pricing, see the Location Scores product overview.
Description
Our Location Scores assess the quality of transportation, amenities, character, education, nature, and wellness characteristics of locations, broken up into 18 scores on a scale of 0 to 5, which are doubled to display scores out of 10 in our SDK products.
Our Location Scores can be queried for specific locations, listing, and addresses, using latitude and longitude, or for specific
Local Logic geographies using unique geog_ids. Location Scores are available for neighborhoods (levels 10, 20), cities (level 30), zip and postal codes (level 32), US county divisions (level 35), US/Canadian counties and county equivalents (level 37), regions (level 38), and metropolitan statistical areas (level 40). The Location Scores at the level of geographies & neighborhoods represent the best estimates for the median household value for each score.
Score Types
Local Logic provides the following Location Scores, which can be accessed via the /v3/scores
endpoint documented below.
Not all Location Scores are available in all locations.
When scores are missing from the response, it means that Local Logic has insufficient information about the location to be able to provide those scores.
Transportation
| Location Score | ScoreName | Description |
|---|---|---|
| Pedestrian friendly | pedestrian_friendly | Measures how many shops and services are within walking distance, how suited they are to pedestrians, and how pleasant it is to walk to them. |
| Cycling friendly | cycling_friendly | Represents how suitable the area is for bicycle commuting or recreational cycling, considering nearby bike paths and lanes, the percentage of cycling commuters, the flatness of the terrain, and the presence of bike-sharing systems. |
| Transit friendly | transit_friendly | Represents the frequency and level of service of public transit. |
| Car friendly | car_friendly | Represents how well traffic flows, and how easy it is to park. |
Amenities
| Location Score | ScoreName | Description |
|---|---|---|
| Groceries | groceries | Distance to closest grocery store and quantity of grocery stores nearby. |
| Shopping | shopping | Quantity and diversity of shops nearby. |
| Cafés | cafes | Quantity and diversity of cafés nearby. |
| Restaurants | restaurants | Quantity and diversity of restaurants nearby. |
| Nightlife | nightlife | Quantity and diversity of bars nearby. |
Education
| Location Score | ScoreName | Description |
|---|---|---|
| High Schools | high_schools | Distance to closest high school. |
| Primary Schools | primary_schools | Distance to closest elementary school. |
| Daycares | daycares | Distance to closest daycare. |
Character
| Location Score | ScoreName | Description |
|---|---|---|
| Quiet | quiet | Level of noise nearby. |
| Historic | historic | Presence of heritage buildings and building age in the area. Note: Historic coverage is currently available in two American cities and a Canadian city. |
| Vibrant | vibrant | Level of street activity nearby. |
Nature
| Location Score | ScoreName | Description |
|---|---|---|
| Parks | parks | Quantity and area of parks nearby. |
| Greenery | greenery | Quantity of nearby green spaces and tree canopy coverage. Note: Greenery coverage is currently available in 8 American cities and two Canadian cities. |
Wellness
| Location Score | ScoreName | Description |
|---|---|---|
| Wellness | wellness | Represents the quantity of amenities within walking distance that cater to physical activity and healthy eating. |
What do the score values mean?
The tables below (grouped by score category) explain how Local Logic interprets the specific decimal score values into a text description of what the value means. These descriptions are also returned within the API endpoint but are included here for reference.
There is a column for the API value (0-5) for each score, as well as the Display value (0-10), which is how the scores are experienced in our SDKs, our reports, and when returned by the MCP server.
Transportation
Pedestrian friendly
| API (0.0–5.0) | Display (0.0–10.0) | What it means |
|---|---|---|
| 4.5–5.0 | 9.0–10.0 | Exceptional number of pleasant streets and pedestrian-oriented shops within a few minutes' walk. Meeting daily needs on foot is almost always practical |
| 4.0 – <4.5 | 8.0 – <9.0 | Large number of pleasant streets and pedestrian-oriented shops within a few minutes' walk. Meeting daily needs on foot is typically practical |
| 3.0 – <4.0 | 6.0 – <8.0 | Many pleasant streets and pedestrian-oriented shops within a short walk. Meeting daily needs on foot is often practical |
| 2.0 – <3.0 | 4.0 – <6.0 | Some pedestrian-oriented shops within walking distance. Meeting daily needs on foot is occasionally practical |
| 1.0 – <2.0 | 2.0 – <4.0 | A few pedestrian-oriented shops within walking distance. Meeting daily needs on foot is not often practical or pleasant |
| 0.0 – <1.0 | 0.0 – <2.0 | Very few or no pedestrian-oriented shops within walking distance. Meeting daily needs on foot is almost never practical or pleasant |
Cycling friendly
| API (0.0–5.0) | Display (0.0–10.0) | What it means |
|---|---|---|
| 4.5–5.0 | 9.0–10.0 | Exceptionally suitable for bicycle commuting and/or recreational cycling |
| 4.0 – <4.5 | 8.0 – <9.0 | Highly suitable for bicycle commuting and/or recreational cycling |
| 3.0 – <4.0 | 6.0 – <8.0 | Suitable for bicycle commuting and/or recreational cycling |
| 2.0 – <3.0 | 4.0 – <6.0 | Somewhat suitable for bicycle commuting and/or recreational cycling |
| 1.0 – <2.0 | 2.0 – <4.0 | Not very suitable for bicycle commuting and/or recreational cycling |
| 0.0 – <1.0 | 0.0 – <2.0 | Unsuitable for bicycle commuting and/or recreational cycling |
Transit friendly
| API (0.0–5.0) | Display (0.0–10.0) | What it means |
|---|---|---|
| 4.5–5.0 | 9.0–10.0 | Near a wide variety of subway lines and/or other frequent transit routes |
| 4.0 – <4.5 | 8.0 – <9.0 | Near at least one subway line and/or other frequent transit routes |
| 3.0 – <4.0 | 6.0 – <8.0 | Walking distance to at least one frequent transit route |
| 2.0 – <3.0 | 4.0 – <6.0 | Transit is available for most trips |
| 1.0 – <2.0 | 2.0 – <4.0 | Transit is available for some trips |
| 0.0 – <1.0 | 0.0 – <2.0 | Infrequent or no transit options nearby |
Car friendly
| API (0.0–5.0) | Display (0.0–10.0) | What it means |
|---|---|---|
| 4.5–5.0 | 9.0–10.0 | Exceptional access to freeways and/or major arteries, with almost no chance of parking problems |
| 4.0 – <4.5 | 8.0 – <9.0 | Excellent access to freeways and/or major arteries, with a very low chance of parking problems |
| 3.0 – <4.0 | 6.0 – <8.0 | Good access to freeways and/or major arteries, with a low chance of parking problems |
| 2.0 – <3.0 | 4.0 – <6.0 | Arteries nearby, but traffic congestion and parking problems are possible |
| 1.0 – <2.0 | 2.0 – <4.0 | Some arteries nearby, but traffic congestion and parking problems are likely |
| 0.0 – <1.0 | 0.0 – <2.0 | Heavy traffic congestion and/or parking problems are frequent |
Amenities
Groceries
| API (0.0–5.0) | Display (0.0–10.0) | What it means |
|---|---|---|
| 4.5–5.0 | 9.0–10.0 | Exceptional variety of groceries within a few minutes' walk |
| 4.0 – <4.5 | 8.0 – <9.0 | Wide variety of groceries within a few minutes' walk |
| 3.0 – <4.0 | 6.0 – <8.0 | Wide variety of groceries within a short drive, including some within walking distance |
| 2.0 – <3.0 | 4.0 – <6.0 | Variety of groceries within a short drive |
| 1.0 – <2.0 | 2.0 – <4.0 | Some groceries within a short drive |
| 0.0 – <1.0 | 0.0 – <2.0 | Few or no groceries within a short drive |
Restaurants
| API (0.0–5.0) | Display (0.0–10.0) | What it means |
|---|---|---|
| 4.5–5.0 | 9.0–10.0 | Exceptional variety of restaurants within a few minutes' walk |
| 4.0 – <4.5 | 8.0 – <9.0 | Wide variety of restaurants within a few minutes' walk |
| 3.0 – <4.0 | 6.0 – <8.0 | Wide variety of restaurants within a short drive, including some within walking distance |
| 2.0 – <3.0 | 4.0 – <6.0 | Variety of restaurants within a short drive |
| 1.0 – <2.0 | 2.0 – <4.0 | Some restaurants within a short drive |
| 0.0 – <1.0 | 0.0 – <2.0 | Few or no restaurants within a short drive |
Cafes
| API (0.0–5.0) | Display (0.0–10.0) | What it means |
|---|---|---|
| 4.5–5.0 | 9.0–10.0 | Exceptional variety of cafés within a few minutes' walk |
| 4.0 – <4.5 | 8.0 – <9.0 | Wide variety of cafés within a few minutes' walk |
| 3.0 – <4.0 | 6.0 – <8.0 | Wide variety of cafés within a short drive, including some within walking distance |
| 2.0 – <3.0 | 4.0 – <6.0 | Variety of cafés within a short drive |
| 1.0 – <2.0 | 2.0 – <4.0 | Some cafés within a short drive |
| 0.0 – <1.0 | 0.0 – <2.0 | Few or no cafés within a short drive |
Shopping
| API (0.0–5.0) | Display (0.0–10.0) | What it means |
|---|---|---|
| 4.5–5.0 | 9.0–10.0 | Exceptional variety of shops within a few minutes' walk |
| 4.0 – <4.5 | 8.0 – <9.0 | Wide variety of shops within a few minutes' walk |
| 3.0 – <4.0 | 6.0 – <8.0 | Wide variety of shops within a short drive, including some within walking distance |
| 2.0 – <3.0 | 4.0 – <6.0 | Variety of shops within a short drive |
| 1.0 – <2.0 | 2.0 – <4.0 | Some shops within a short drive |
| 0.0 – <1.0 | 0.0 – <2.0 | Few or no shops within a short drive |
Nightlife
| API (0.0–5.0) | Display (0.0–10.0) | What it means |
|---|---|---|
| 4.5–5.0 | 9.0–10.0 | Exceptional variety of bars within a few minutes' walk |
| 4.0 – <4.5 | 8.0 – <9.0 | Wide variety of bars within a few minutes' walk |
| 3.0 – <4.0 | 6.0 – <8.0 | Wide variety of bars within a short drive, including some within walking distance |
| 2.0 – <3.0 | 4.0 – <6.0 | Variety of bars within a short drive |
| 1.0 – <2.0 | 2.0 – <4.0 | Some bars within a short drive |
| 0.0 – <1.0 | 0.0 – <2.0 | Few or no bars within a short drive |
Education
Primary Schools
| API (0.0–5.0) | Display (0.0–10.0) | What it means |
|---|---|---|
| 4.5–5.0 | 9.0–10.0 | At least one elementary school within a 5-minute walk |
| 4.0 – <4.5 | 8.0 – <9.0 | At least one elementary school within a 10-minute walk |
| 3.0 – <4.0 | 6.0 – <8.0 | At least one elementary school within a 15-minute walk |
| 2.0 – <3.0 | 4.0 – <6.0 | At least one elementary school within a 20-minute walk |
| 1.0 – <2.0 | 2.0 – <4.0 | At least one elementary school within a 30-minute walk |
| 0.0 – <1.0 | 0.0 – <2.0 | Closest elementary school further than a 30-minute walk |
High Schools
| API (0.0–5.0) | Display (0.0–10.0) | What it means |
|---|---|---|
| 4.5–5.0 | 9.0–10.0 | At least one high school within a 5-minute walk |
| 4.0 – <4.5 | 8.0 – <9.0 | At least one high school within a 10-minute walk |
| 3.0 – <4.0 | 6.0 – <8.0 | At least one high school within a 15-minute walk |
| 2.0 – <3.0 | 4.0 – <6.0 | At least one high school within a 20-minute walk |
| 1.0 – <2.0 | 2.0 – <4.0 | At least one high school within a 30-minute walk |
| 0.0 – <1.0 | 0.0 – <2.0 | Closest high school further than a 30-minute walk |
Daycares
| API (0.0–5.0) | Display (0.0–10.0) | What it means |
|---|---|---|
| 4.5–5.0 | 9.0–10.0 | At least one daycare within a very short walk |
| 4.0 – <4.5 | 8.0 – <9.0 | At least one daycare within a short walk |
| 3.0 – <4.0 | 6.0 – <8.0 | At least one daycare within a very short drive |
| 2.0 – <3.0 | 4.0 – <6.0 | At least one daycare within a short drive |
| 1.0 – <2.0 | 2.0 – <4.0 | At least one daycare within a moderate drive |
| 0.0 – <1.0 | 0.0 – <2.0 | Closest daycare is a long drive away |
Nature
Parks
| API (0.0–5.0) | Display (0.0–10.0) | What it means |
|---|---|---|
| 4.5–5.0 | 9.0–10.0 | Exceptionally large amount of park space within a few minutes' walk |
| 4.0 – <4.5 | 8.0 – <9.0 | Very large amount of park space within a few minutes' walk |
| 3.0 – <4.0 | 6.0 – <8.0 | Large amount of park space nearby |
| 2.0 – <3.0 | 4.0 – <6.0 | Moderate amount of park space nearby |
| 1.0 – <2.0 | 2.0 – <4.0 | Limited amount of park space nearby |
| 0.0 – <1.0 | 0.0 – <2.0 | Minimal park space nearby |
Greenery
| API (0.0–5.0) | Display (0.0–10.0) | What it means |
|---|---|---|
| 4.5–5.0 | 9.0–10.0 | Exceptional number of street trees and nearby parks |
| 4.0 – <4.5 | 8.0 – <9.0 | Lots of street trees and nearby parks |
| 3.0 – <4.0 | 6.0 – <8.0 | Many trees and a large amount of nearby park space |
| 2.0 – <3.0 | 4.0 – <6.0 | Some trees on the street, with some parks nearby |
| 1.0 – <2.0 | 2.0 – <4.0 | Few street trees or parks in the area |
| 0.0 – <1.0 | 0.0 – <2.0 | Very few street trees or parks in the area |
Character
Quiet
| API (0.0–5.0) | Display (0.0–10.0) | What it means |
|---|---|---|
| 4.5–5.0 | 9.0–10.0 | Virtually no sources of noise nearby |
| 4.0 – <4.5 | 8.0 – <9.0 | Very few sources of noise nearby |
| 3.0 – <4.0 | 6.0 – <8.0 | Few sources of noise nearby |
| 2.0 – <3.0 | 4.0 – <6.0 | Some sources of noise nearby |
| 1.0 – <2.0 | 2.0 – <4.0 | Multiple sources of noise nearby |
| 0.0 – <1.0 | 0.0 – <2.0 | Many sources of noise nearby |
Vibrant
| API (0.0–5.0) | Display (0.0–10.0) | What it means |
|---|---|---|
| 4.5–5.0 | 9.0–10.0 | Exceptionally vibrant atmosphere at all hours |
| 4.0 – <4.5 | 8.0 – <9.0 | Highly vibrant atmosphere at all hours |
| 3.0 – <4.0 | 6.0 – <8.0 | Vibrant atmosphere all day and into the evening |
| 2.0 – <3.0 | 4.0 – <6.0 | Vibrant atmosphere at various times of the day |
| 1.0 – <2.0 | 2.0 – <4.0 | Calm atmosphere most of the day |
| 0.0 – <1.0 | 0.0 – <2.0 | Calm atmosphere at all hours |
Historic
| API (0.0–5.0) | Display (0.0–10.0) | What it means |
|---|---|---|
| 4.5–5.0 | 9.0–10.0 | An exceptional number of historical buildings nearby |
| 4.0 – <4.5 | 8.0 – <9.0 | Many historical buildings nearby |
| 3.0 – <4.0 | 6.0 – <8.0 | A moderate number of historical buildings nearby |
| 2.0 – <3.0 | 4.0 – <6.0 | Some historical buildings nearby |
| 1.0 – <2.0 | 2.0 – <4.0 | Few historical buildings nearby |
| 0.0 – <1.0 | 0.0 – <2.0 | No historical buildings nearby |
Wellness
Wellness
| API (0.0–5.0) | Display (0.0–10.0) | What it means |
|---|---|---|
| 4.5–5.0 | 9.0–10.0 | Exceptional variety of amenities nearby promoting health and activity |
| 4.0 – <4.5 | 8.0 – <9.0 | Wide variety of amenities nearby promoting health and activity |
| 3.0 – <4.0 | 6.0 – <8.0 | Variety of amenities nearby promoting health and activity |
| 2.0 – <3.0 | 4.0 – <6.0 | Some amenities promoting health and activity within walking distance |
| 1.0 – <2.0 | 2.0 – <4.0 | Limited amenities promoting health and activity within walking distance |
| 0.0 – <1.0 | 0.0 – <2.0 | Few or no amenities promoting health and activity nearby |
GET /v3/scores
Location Scores for a specific coordinate point location and neighbourhood, macro neighbourhood, and municipality which contains it, can be retrieved using a latitude/longitude request.
Scores for the latitude/longitude point location are returned as a score out of 5, with a precision
to the nearest .5. Scores for the neighbourhood, macro neighbourhood, and municipality geography
scores are also returned as a score out of 5, but with a precision to the nearest .1.
GET /v3/scores
Header
This API uses JWT token based authentication. This JWT Bearer token is what is used to populate the
Authorization header below.
Instructions on how to retrieve this token can be found at Getting Started.
| Header | Status | Description |
|---|---|---|
| Authorization | required | Your bearer token retrieved from our authorization API, ex. Bearer eyJhbGci... |
| Accept | required | The datatype to request, this API will return application/json. |
QueryString
The endpoint is queried by specifying a lat/lng coordinate for obtaining scores at an exact location.
| Parameter | Status | Description |
|---|---|---|
| lat | optional | A decimal number between -90 and 90, representing the latitude. |
| lng | optional | A decimal number between -180 and 180, representing the longitude. |
| geography_ids | optional* | A comma separated list of geography ids, ex. g30_dpz89rm7 or g30_dpz89rm7,g10_dpz89rm7. If this parameter is provided, the lat and lng parameters are optional. A maximum of 100 values are allowed. |
| geography_levels | optional | A list of geography levels to include, ex. 10,30. If no geography levels are provided, no geography scores will be returned. Available: Neighbourhood: 10Macro-Neighbourhood or Borough: 20Municipality: 30Zip Code: 32US County Subdivision: 35US County / Canadian County Equivalent (Census Division): 37Region: 38US Metro Area: 40 |
| include | optional | A list ScoreNames to return, ex. car_friendly,pedestrian_friendly. If no names are provided, all scores included in your agreement will be returned. |
| language | optional | String value representing the two letter ISO 639-1 language code to return the scores in, ex. fr Available: en and fr |
| location_scores_rounding | optional | The type of rounding to apply to the scores returned under data.location. Either .5 (default) to round at the nearest 0.5, or none, to disable rounding. |
Usage examples
- NodeJS
- Python
require('node-fetch')('https://api.locallogic.co/v3/scores?' + new URLSearchParams({
lat: 41.847206,
lng: -87.668825,
geography_ids: 'g30_f25dv0me',
geography_levels: '10,20,30',
include: 'transit_friendly,quiet',
language: 'en',
}), {
method: 'GET',
headers: {
Accept: 'application/json',
Authorization: 'Bearer eyJhbGciOiJ...'
}
})
.then(response => response.json())
.then(body => {
console.log(body)
})
.catch(error => {
console.log(error)
})
import requests
response = requests.get(
"https://api.locallogic.co/v3/scores",
headers={
"Accept": "application/json",
"Authorization": "Bearer eyJhbGciOiJ..."},
params={
"lat": 43.593611,
"lng": -79.536194,
"geography_ids": "g30_f25dv0me",
"geography_levels": "10,20,30",
"include": "transit_friendly,quiet",
"language": "en",
}
)
print(response.json())
Response example
{
"data": {
"type": "scores",
"location": {
"transit_friendly": {
"value": "4.5",
"text": "Near a wide variety of rapid transit and/or frequent bus lines"
},
"quiet": {
"value": "1.0",
"text": "Multiple sources of noise nearby"
}
},
"geographies": [
{
"geog_id": "g30_f25dv0me",
"name": "Westmount",
"geog_level_type": "municipality",
"scores": {
"transit_friendly": {
"value": "4.5",
"text": "Near a wide variety of rapid transit and/or frequent bus lines"
},
"quiet": {
"value": "2.7",
"text": "Some sources of noise nearby"
}
}
},
// Plus other geography score objects
]
},
"meta": {
"message": "Successfully called v3/scores API.",
"type": "LocalLogic.API.Success",
"statusCode": 200
}
}
GET /v3/scores/{geog_id}
Location Scores for a specific geography (a neighbourhood, macro neighbourhood, municipality, postal code, county, etc.) can be retrieved with this endpoint. The scores represent the Location Score of the median household inhabiting the area: half of households will have a lower score and half of housesholds will have a higher score.
Scores for the geography are returned as precise as possible and are not rounded.
GET /v3/scores/{geog_id}
Header
This API uses JWT token based authentication. This JWT Bearer token is what is used to populate the
Authorization header below.
Instructions on how to retrieve this token can be found at Getting Started.
| Header | Status | Description |
|---|---|---|
| Authorization | required | Your bearer token retrieved from our authorization API, ex. Bearer eyJhbGci... |
| Accept | required | The datatype to request, this API will return application/json. |
QueryString
| Parameter | Status | Description |
|---|---|---|
| include | optional | A list ScoreNames to return, ex. car_friendly,pedestrian_friendly. If no names are provided, all scores included in your agreement will be returned. |
| language | optional | String value representing the two letter ISO 639-1 language code to return the scores in, ex. fr Available: en and fr |
Usage examples
- NodeJS
- Python
require('node-fetch')('https://api.locallogic.co/v3/scores/g37_9zh9deu6',
{
method: 'GET',
headers: {
Accept: 'application/json',
Authorization: 'Bearer eyJhbGciOiJ...'
}
})
.then(response => response.json())
.then(body => {
console.log(body)
})
.catch(error => {
console.log(error)
})
import requests
response = requests.get(
"https://api.locallogic.co/v3/scores/g37_9zh9deu6",
headers={
"Accept": "application/json",
"Authorization": "Bearer eyJhbGciOiJ..."},
params={
"categories": 'hospitals'
}
)
print(response.json())
Response example
{
"data": {
"type": "scores",
"scores": {
"pedestrian_friendly": {
"value": "3.389361",
"text": "Many pleasant streets and pedestrian-oriented shops within a short walk. Meeting daily needs on foot is often practical"
},
"vibrant": {
"value": "2.271424",
"text": "Vibrant atmosphere at various times of the day"
},
"nightlife": {
"value": "2.51681",
"text": "Variety of bars within a short drive"
},
"high_schools": {
"value": "2.95529",
"text": "At least one high school within a 20-minute walk"
},
"daycares": {
"value": "2.955288",
"text": "At least one daycare within a short drive"
},
"cycling_friendly": {
"value": "2.525079",
"text": "Somewhat suitable for bicycle commuting and/or recreational cycling"
},
"transit_friendly": {
"value": "2.600652",
"text": "Transit is available for most trips"
},
"parks": {
"value": "3.613697",
"text": "Large amount of park space nearby"
},
"primary_schools": {
"value": "3.75381",
"text": "At least one elementary school within a 15-minute walk"
},
"car_friendly": {
"value": "4.144336",
"text": "Excellent access to freeways and/or major arteries, with a very low chance of parking problems"
},
"cafes": {
"value": "1.23387",
"text": "Some cafés within a short drive"
},
"wellness": {
"value": "2.769637",
"text": "Some amenities promoting health and activity within walking distance"
},
"restaurants": {
"value": "2.332912",
"text": "Variety of restaurants within a short drive"
},
"quiet": {
"value": "2.245218",
"text": "Some sources of noise nearby"
},
"groceries": {
"value": "2.226187",
"text": "Variety of groceries within a short drive"
},
"shopping": {
"value": "2.359544",
"text": "Variety of shops within a short drive"
}
}
},
"meta": {
"message": "Successfully called v3/scores/{geog_id} API.",
"type": "LocalLogic.API.Success",
"statusCode": 200
}
}
How this is calculated
What they measure — and what they don't. Location Scores rate the area around a specific point — how close and frequent transit is, the quantity and variety of nearby groceries, and so on. In principle, nearer and more frequent amenities count for more. They don't measure property-specific attributes (price, size, condition), and a school score reflects access to schools rather than school quality, which is a separate ratings layer.
Coverage. Address-level and geography-level across the US and Canada. A small number of scores have narrower coverage and are actively expanding.
Updated. Monthly; POI-based scores are updated as we update points of interest, in addition to periodic updates based on infrastructure data (street networks, transit lines, etc).
Frequently asked questions
What are Local Logic Location Scores?
Location Scores are 18 human-readable ratings that describe what it's like to live at a specific location — from how walkable and transit-friendly it is, to nearby groceries, cafés and schools, to how quiet, historic, or vibrant the area feels. Each is presented on a 0–10 scale and comes with a plain-language description, so scores can be shown directly to end users without further interpretation.
How are the 18 Location Scores organized?
The 18 scores are grouped into six categories:
- Transportation - pedestrian friendly, cycling friendly, transit friendly, car friendly
- Amenities - groceries, shopping, cafés, restaurants, nightlife
- Education - high schools, primary schools, daycares
- Character - quiet, historic, vibrant
- Nature - parks, greenery
- Wellness - wellness
How are Location Scores calculated?
Each score is computed at the address level from the features around that location. In principle, nearer and more frequent amenities count for more — a grocery store around the corner contributes more to the Groceries score than one across town.
Why are scores 0–5 in the API but shown out of 10?
The API returns each Location Score on a 0–5 scale. Local Logic's SDK and Neighborhood Reports double this to a 0–10 scale for display, because a 0–10 range is easier for end users to read and rank at a glance. Both represent the same underlying score — 0–5 is the raw API value, 0–10 is the presentation.
At which geography levels are scores available?
Location Scores can be retrieved for an exact latitude/longitude point or for a Local Logic geography by ID. Supported geography levels are neighborhood (10), macro-neighborhood/borough (20), municipality (30), zip or postal code (32), US county subdivision (35), US/Canadian county or equivalent (37), region (38), and US metro area (40). At the geography level, a score represents the experience of the median household in that area.
What happens when there's no score for a location?
When Local Logic has insufficient information for a location, the missing scores are simply omitted from the response, and a request for a location with no data returns a 204 No Content (recognized location, nothing to score) or 404 Not Found. A 204/404 therefore means "no data here," not an error in your request.
How do school scores work?
Local Logic's school-related Location Scores — primary schools, high schools, and daycares — are based on access and proximity: how close the nearest school of that type is. School quality ratings (letter grades) are a separate layer, available via Schools API — currently in the United States, and in Ontario and British Columbia in Canada.
Are score descriptions available in French?
A Location Score itself is a number, so it isn't language-specific. The language parameter sets the language of the plain-language description text that accompanies each score, available in English (en) and French (fr).
SDK Implementations
Scores is used by multiple SDKs:
| SDK | Description |
|---|---|
| Local Content SDK | Retrieves the scores for a given location for use in the grouped POI categories within the SDK. |
| NeighborhoodHighlights SDK | Retrieves the scores for the neighborhood in order to calculate the highlights (top scores) of the neighborhood. |
| NeighborhoodCharacteristics SDK | Retrieves all of the relevant scores available for the given neighborhood. |
Response codes
When calling Local Logic’s API, you may receive an HTTP response code indicating an error or no data. These errors are explained below.
In general, error codes starting with “4” are due to an invalid API call and can be fixed on your end, whereas error codes starting with “5” are due to server errors (that is, problems on our end). If you receive something not described here, please contact us at support@locallogic.co.
204 - No Content
This "error code" is not an error, and it happens when we don't have the requested data for a specific location. For example, if you send a lat/lng pair to fetch scores in uninhabited parts of northern Canada, we may return an empty 204 response as we recognize the location, but don't calculate scores that remotely so there is nothing to be returned.
400 - BadRequest
This error code happens when the request inputs are incorrect. Use the detail field of the response for clarification. Example:
{
"code": "LocalLogic.API.BadRequest",
"detail": "ValidationErrors: AroundEndpoint is invalid:\n\tinclude is invalid: \"bad_input\" is not an acceptable value: \"groceries\", \"restaurants\", \"nightlife\", \"cafes\", \"shopping\", \"daycares\", \"primary_schools\", \"high_schools\""
}
401 - Unauthorized
This error code happens when your API key cannot access specific resources or locations. For example, some API keys can only access certain countries / states / provinces. Feel free to contact us for more information.
{
"code": "LocalLogic.API.Unauthorized",
"detail": "Your API KEY doesn't support this region"
}
403 - Forbidden
This error code happens when you forgot to include security credentials with your request or you are requesting a parameter that you do not have access to.
{
"message": "Forbidden"
}
404 - NotFound
This error code happens when we don’t have data for the requested location. For example, if you send a lat/lng pair for a location in Antarctica, we will return this error as we don’t have data for Antarctica (yet!).
{
"code": "LocalLogic.API.NotFound",
"detail": "No Location Scores found for this location."
}
422 - Unprocessable Entity
This error code is returned when the correct parameters have been sent however, the data they contain is not valid. For example, if you send a lat/lng pair and the latitude is invalid (ie. not in the range [-90, 90]) and/or the longitude is invalid (ie. not in the range [-180, 180]). The message returned will explain the specific issue with your parameters that makes them invalid.
{
"message": "Latitude must be within [-90, 90], Longitude must be within [-180, 180], Requires at least lat/lng pair, or geography_ids. None supplied.",
"code": "LocalLogic.API.BadRequest",
"statusCode": 422
}
429 - Too Many Requests
This error code can be returned when you need to throttle your requests. Internally, we set limits that exceed all contractual limitations that could cause this error code to be returned. If you have questions or see this error, please contact us at support@locallogic.co.
500 - ServerError
This error code means that an error occurred on our end. Feel free to retry the same request to see if the problem persists. If you received a lot of these errors, please contact us at support@locallogic.co.
{
"message": "Unexpected internal server error.",
"type": "LocalLogic.API.ServerError",
"statusCode": 500
}
502 - BadGateway
This error code means that an error came from our cloud provider. Feel free to retry the same request to see if the problem persists.
{
"message": "Internal server error"
}