The Proximitii Local Lifestyle API (Application Programming Interface), allows you to connect directly to our servers to download data. It returns structured points of interest like parks, transit stops, schools, restaurants and cafes, groceries, fitness, entertainment, and more, so you can power listing pages, neighborhood pages, and search filters with fresh local context at scale.
The current Local Lifestyle API endpoint is https://api.proximitii.com/v1/local-lifestyle/. This endpoint uses the same API authentication pattern as the Proximitii demographics APIs.
Displaying this API's data on a public page? Show the Powered by Proximitii logo directly below it. See API Attribution.
Example Calls
node.js
const baseUrl = 'https://api.proximitii.com/v1/local-lifestyle/'; const keyPublic = 'YOUR PUBLIC KEY'; const keyPrivate = 'YOUR PRIVATE KEY'; const headers = new Headers({ 'Public-Key': keyPublic, 'Private-Key': keyPrivate }); const params = new URLSearchParams({ lat: '43.659251', lon: '-79.345218', dataType: 'all', radius: '6400', limit: '5', categories: 'coffee,park,elem' }); async function getLocalLifestyle() { try { const requestUrl = `${baseUrl}?${params.toString()}`; const response = await fetch(requestUrl, { method: 'GET', headers: headers }); const data = await response.json(); console.log(data); return data; } catch (error) { console.error('Error fetching data:', error); } } getLocalLifestyle();
PHP
<?PHP $url = "https://api.proximitii.com/v1/local-lifestyle/"; $key_public = 'YOUR PUBLIC KEY'; $key_private = 'YOUR PRIVATE KEY'; $headers = [ "Public-Key: {$key_public}", "Private-Key: {$key_private}" ]; $params = array( 'lat' => '43.659251', 'lon' => '-79.345218', 'dataType' => 'all', 'radius' => '6400', 'limit' => '5', 'categories' => 'coffee,park,elem' ); $ch = curl_init ($url . '?' . http_build_query($params)); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $data = curl_exec($ch); $data = json_decode ($data, true); ?>
Keys
In order to call the API successfully, you will need a public and private key. Make sure to store the keys safely and call the API on the backend so the keys are not exposed to the public.
Send keys as request headers named Public-Key and Private-Key. Query-string keys are supported for quick testing, but headers are recommended for production use.
Values
| Name | Description | Default Value | Accepted Values | Variable |
|---|---|---|---|---|
| Latitude | Sets the latitude of center | N/A | Decimal between -90 and 90 | lat |
| Longitude | Sets the longitude of center | N/A | Decimal between -180 and 180 | lon |
| Data Type | Controls the response shape. Use categories to filter to coffee, parks, schools, or other lifestyle categories. | all | all, scores, locations, main_categories, sub_categories, overall_score | dataType |
| Radius | Sets maximum search radius (meters) | 6400 | 1 - 6400 | radius |
| Limit | Sets the maximum number of results | 16 | 1 - 25 | limit |
| Categories | Selects specific categories only | N/A | comma delimited (see table below) | categories |
| Public Key | Your public key | N/A | N/A | Public-Key (Header) |
| Private Key | Your private key | N/A | N/A | Private-Key (Header) |
Categories:
| Main Categories | Variable | Text (Changes according to score) |
|---|---|---|
| Walkability | Walkability | "Highly walkable with lots of daily essentials nearby." |
| Active Living | Active Living | "Some wellness and outdoor options are within reach." |
| Education | Education | "Limited education options nearby; most require travel." |
| Transit Access | Transit Access | "Several transit options are conveniently close by." |
| Sub Categories | Variable |
|---|---|
| Child Care | childcare |
| Coffee Shops | coffee |
| Elementary Schools | elem |
| Entertainment | entertainment |
| Fitness | fitness |
| Food & Drink | food |
| Groceries | grocery |
| Health & Safety | health |
| High Schools | high |
| Parks | park |
| Shops | shop |
| Transit | transit |
Sample Output
The API returns the Local Lifestyle payload inside a top-level data object, along with a status object.
{
"data": {
"OverallScore": 94,
"Data": {
"Walkability": {
"Category": "Walkability",
"Score": 10,
"Text": "Highly walkable with lots of daily essentials nearby."
},
"Active Living": {
"Category": "Active Living",
"Score": 10,
"Text": "Great access to wellness, fitness, and outdoor spaces."
},
"Education": {
"Category": "Education",
"Score": 9,
"Text": "Excellent education options close by and easy to reach."
},
"Transit Access": {
"Category": "Transit Access",
"Score": 9,
"Text": "Excellent transit access with plenty of options nearby."
},
"coffee": {
"Category": "coffee",
"Score": 10,
"Count": 5,
"Locations": [
{
"AmenityID": "29295",
"Name": "Starbucks",
"Address": " ",
"Category": "coffee",
"Dist": 245,
"Tag": "Coffee Shop",
"District": null,
"WalkingTime": 4,
"Coord": {
"Lat": 43.6603708,
"Long": -79.3425969
}
},
{
"AmenityID": "14002",
"Name": "Purple Penguin Cafe",
"Address": "889 Queen Street East",
"Category": "coffee",
"Dist": 271,
"Tag": "Coffee Shop",
"District": null,
"WalkingTime": 4,
"Coord": {
"Lat": 43.6604252,
"Long": -79.3422613
}
},
{
"AmenityID": "26668",
"Name": "Starbucks",
"Address": " ",
"Category": "coffee",
"Dist": 289,
"Tag": "Coffee Shop",
"District": null,
"WalkingTime": 5,
"Coord": {
"Lat": 43.6607025,
"Long": -79.3422363
}
},
{
"AmenityID": "25207",
"Name": "The Dock",
"Address": "932 Queen Street East",
"Category": "coffee",
"Dist": 346,
"Tag": "Coffee Shop",
"District": null,
"WalkingTime": 6,
"Coord": {
"Lat": 43.6608715,
"Long": -79.3415515
}
},
{
"AmenityID": "4373",
"Name": "Mercury Espresso",
"Address": "915 Queen Street East",
"Category": "coffee",
"Dist": 347,
"Tag": "Coffee Shop",
"District": null,
"WalkingTime": 6,
"Coord": {
"Lat": 43.660667,
"Long": -79.3413718
}
}
]
},
"park": {
"Category": "park",
"Score": 10,
"Count": 5,
"Locations": [
{
"AmenityID": "1142535",
"Name": null,
"Address": null,
"Category": "park",
"Dist": 15,
"Tag": "Playground",
"District": null,
"WalkingTime": 1,
"Coord": {
"Lat": 43.6592602297925,
"Long": -79.3454005968036
}
},
{
"AmenityID": "1000098",
"Name": "McCleary Playground",
"Address": "80 McGee Street",
"Category": "park",
"Dist": 17,
"Tag": "Park",
"District": null,
"WalkingTime": 1,
"Coord": {
"Lat": 43.6593088127695,
"Long": -79.3454086596916
}
},
{
"AmenityID": "1009659",
"Name": "Saulter Street Parkette",
"Address": "25 Saulter Street",
"Category": "park",
"Dist": 200,
"Tag": "Park",
"District": null,
"WalkingTime": 3,
"Coord": {
"Lat": 43.6577088206208,
"Long": -79.3465032129895
}
},
{
"AmenityID": "858978",
"Name": "Jimmie Simpson Park",
"Address": "870 Queen Street East",
"Category": "park",
"Dist": 222,
"Tag": "Park",
"District": null,
"WalkingTime": 4,
"Coord": {
"Lat": 43.6612131263222,
"Long": -79.3447192120837
}
},
{
"AmenityID": "906145",
"Name": "Bruce Mackey Park",
"Address": "55 Wardell Street",
"Category": "park",
"Dist": 327,
"Tag": "Park",
"District": null,
"WalkingTime": 5,
"Coord": {
"Lat": 43.6621705282381,
"Long": -79.3457540944358
}
}
]
},
"elem": {
"Category": "elem",
"Score": 9,
"Count": 4,
"Locations": [
{
"NCESDistrictID": null,
"AmenityID": "153214-CA",
"Name": "Dundas Junior Public School",
"Address": "935 Dundas St E",
"Category": "elem",
"Dist": 416,
"Tag": "Elementary",
"District": null,
"LowGrade": "JK",
"HighGrade": "5",
"SchoolScore": "74.5",
"Site": "http:\/\/schoolweb.tdsb.on.ca\/dundas",
"City": "Toronto",
"StateAbbr": "ON",
"ZIP": "M4M 1R4",
"Phone": "416-393-9565",
"IsPre": "0",
"IsElem": "1",
"IsMid": "0",
"IsHigh": "0",
"ProfMath": "67",
"ProfLang": "82",
"WalkingTime": 7,
"Coord": {
"Lat": 43.6620635986328,
"Long": -79.3486251831055
},
"Assigned": false
},
{
"NCESDistrictID": null,
"AmenityID": "374733-CA",
"Name": "Morse Street Junior Public School",
"Address": "180 Carlaw Ave",
"Category": "elem",
"Dist": 420,
"Tag": "Elementary",
"District": null,
"LowGrade": "JK",
"HighGrade": "6",
"SchoolScore": "71.5",
"Site": "http:\/\/schoolweb.tdsb.on.ca\/morsestreet",
"City": "Toronto",
"StateAbbr": "ON",
"ZIP": "M4M 2R9",
"Phone": "416-393-9494",
"IsPre": "0",
"IsElem": "1",
"IsMid": "0",
"IsHigh": "0",
"ProfMath": "57",
"ProfLang": "86",
"WalkingTime": 7,
"Coord": {
"Lat": 43.6601181030273,
"Long": -79.3401336669922
},
"Assigned": false
},
{
"NCESDistrictID": null,
"AmenityID": "461830-CA",
"Name": "Queen Alexandra Middle School",
"Address": "181 Broadview Ave",
"Category": "elem",
"Dist": 467,
"Tag": "Elementary",
"District": null,
"LowGrade": "6",
"HighGrade": "8",
"SchoolScore": "61.5",
"Site": "http:\/\/schoolweb.tdsb.on.ca\/queenalexandra",
"City": "Toronto",
"StateAbbr": "ON",
"ZIP": "M4M 2G3",
"Phone": "416-393-9535",
"IsPre": "0",
"IsElem": "1",
"IsMid": "1",
"IsHigh": "0",
"ProfMath": "43",
"ProfLang": "80",
"WalkingTime": 7,
"Coord": {
"Lat": 43.6614952087402,
"Long": -79.3501281738281
},
"Assigned": false
},
{
"NCESDistrictID": null,
"AmenityID": "067547-CA",
"Name": "Bruce Public School",
"Address": "51 Larchmount Ave",
"Category": "elem",
"Dist": 975,
"Tag": "Elementary",
"District": null,
"LowGrade": "JK",
"HighGrade": "8",
"SchoolScore": "62.125",
"Site": "http:\/\/schoolweb.tdsb.on.ca\/bruce",
"City": "Toronto",
"StateAbbr": "ON",
"ZIP": "M4M 2Y6",
"Phone": "416-393-0670",
"IsPre": "0",
"IsElem": "1",
"IsMid": "1",
"IsHigh": "0",
"ProfMath": "49",
"ProfLang": "75.25",
"WalkingTime": 16,
"Coord": {
"Lat": 43.6610527038574,
"Long": -79.3333511352539
},
"Assigned": false
}
]
}
},
"Active": 1
},
"status": {
"code": "201",
"message": "Created"
}
}