Aller au contenu principal

Demographics

Stable
Anglais et françaisÉ.-U. 🇺🇸 et Canada 🇨🇦

Description

Les renseignements sur la population résidant autour d'un emplacement donné ou dans une zone définie peuvent être récupérés à l'aide du point de terminaison /v3/demographics.

Les données démographiques diffèrent selon le pays, mais au Canada comme aux États-Unis, elles sont offertes autour d'un emplacement, d'une inscription ou d'une adresse précise, ou préagrégées selon des limites précises représentant des quartiers, des villes et plus encore, offertes par le point de terminaison Geographies de Local Logic.

Sources de données

PaysSourceDernière mise à jourProchaine mise à jour estimée
CanadaRecensement de la population de 2021Avril 2023Recensement de la population de 2026 - Début 2028
É.-U.American Community Survey 5-Year Estimates, 2021Mars 2023ACS 5-Year Estimates, 2024 - Juin 2026

Disponibilité des données

TypeCanadaÉ.-U.
Revenu du ménage
Revenu individuel
Mode de déplacement
Composition du ménage
Âge de la population
Occupation du logement
Connaissance des langues
Scolarité
Type de logement
Langue maternelle
Statut d'emploi
Enfants par ménage

Indice d'abordabilité du logement

En plus des données de recensement calculées à l'intérieur de limites géographiques Local Logic précises, l'appel de l'API Demographics avec des geog_ids Local Logic situés dans une région métropolitaine définie inclura également un indice lié à l'abordabilité du logement.

Actuellement, l'API retourne un indice d'abordabilité du logement qui correspond au ratio entre le revenu médian du ménage pour la région métropolitaine et l'indice de valeur ajustée des propriétés propre à la géographie. (Étant donné que toutes les régions des États-Unis ou du Canada n'ont pas des propriétés de même taille, les valeurs médianes des propriétés sont ajustées en un indice afin que les quartiers composés uniquement de condos de 2 chambres puissent être comparés à des quartiers composés de maisons de 4 à 5 chambres.)

L'indice d'abordabilité du logement permet de comparer directement différentes régions selon le degré d'abordabilité du logement attendu pour les résidents, tout en tenant compte du revenu de la région métropolitaine et de la taille des propriétés.

GET /v3/demographics

Les données retournées décrivent un large éventail de variables démographiques, organisées par catégories. Offertes pour les quartiers (niveaux 10, 20), les villes (niveau 30), les codes postaux américains (niveau 32), les subdivisions de comté américaines (niveau 35), les comtés et équivalents de comté américains/canadiens (niveau 37), les régions (niveau 38) et les aires statistiques métropolitaines (niveau 40) aux États-Unis et au Canada.

GET /v3/demographics

Cette API utilise l'authentification par jeton JWT. Ce jeton porteur (Bearer) JWT est ce qui est utilisé pour remplir l'en-tête Authorization ci-dessous.

Les instructions pour récupérer ce jeton se trouvent dans Premiers pas.

En-têteStatutDescription
AuthorizationrequisVotre jeton porteur récupéré depuis notre API d'autorisation, ex. Bearer eyJhbGci...
AcceptrequisLe type de données demandé; cette API retournera application/json.

Paramètres de requête

La région à interroger par le point de terminaison peut être définie de deux façons : (1) en spécifiant une coordonnée lat/lng, avec des paramètres optionnels radius/radius_unit, (2) ou en fournissant un paramètre polygon.

Lorsque vous utilisez la méthode de requête par coordonnées lat/lng sans spécifier les paramètres radius/radius_unit, le point de terminaison retournera les données des résidents vivant à moins de cinq minutes de marche de la coordonnée. Lorsque vous incluez les paramètres radius/radius_unit, la zone circulaire résultante autour de la coordonnée lat/lng sera interrogée. radius_unit peut être soit meter, soit mile.

Lorsque vous utilisez la méthode de requête par polygon, les données démographiques retournées couvriront les résidents de la région définie par la zone du polygone. Les polygones sont spécifiés à l'aide du format WKT. Le seul type accepté est POLYGON, et les trous ne sont pas pris en charge. Chaque point du polygone doit être défini comme une coordonnée lng/lat.

Limites de l'API

  1. La chaîne de requête du polygone est limitée à 5000 caractères.
  2. La distance maximale nord/sud est/ouest acceptée est de 0,5 degré.
  3. Le nombre maximal de géohashes de niveau 6 nord/sud est/ouest est de 1000.
attention

WKT fonctionne sur des plans x/y. Par conséquent, les coordonnées doivent être envoyées sous la forme lng/lat plutôt que lat/lng.

ParamètreStatutDescription
latoptionnelNombre décimal entre -90 et 90 (latitude)
lngoptionnelNombre décimal entre -180 et 180 (longitude)
radiusoptionnelNombre flottant positif (rayon du cercle)
radius_unitoptionnelLe type d'unité du rayon.
Valeurs offertes : meter, mile.
Valeur par défaut : meter
polygonoptionnelListe de points 2D lng/lat qui définissent un polygone 2D, selon la représentation WKT
languageoptionnelLa langue dans laquelle les étiquettes des variables démographiques seront retournées.
Valeurs offertes : en, fr.
Valeur par défaut : en

Attributs de sortie et sous-variables

AttributVariableTypeDescription
commute_modeMode de déplacement
commute_modecmtr_cyclepercentVélo
commute_modecmtr_drivepercentVoiture
commute_modecmtr_footpercentMarche
commute_modecmtr_nonepercentAucun
commute_modecmtr_otherpercentAutre
commute_modecmtr_transtpercentTransport en commun
education_levelNiveau de scolarité le plus élevé atteint
education_leveled_bach_degpercentBaccalauréat
education_leveled_collg_dippercentDiplôme collégial
education_leveled_high_schpercentÉtudes secondaires
education_leveled_no_high_scpercentN'a pas terminé ses études secondaires
education_leveled_post_gradpercentDiplôme d'études supérieures
education_leveled_post_secpercentDiplôme d'études postsecondaires
employment_statusStatut d'emploi
employment_statusemplyd_nopercentSans emploi
employment_statusemplyd_yespercentEn emploi
household_childrenNombre d'enfants par ménage
household_childrenhome_kidspercentAvec enfants
household_childrenhome_no_kidspercentSans enfants
household_compositionComposition du ménage
household_compositionhome_1_pplpercent1 personne
household_compositionhome_2_pplpercent2 personnes
household_compositionhome_3_pplpercent3 personnes
household_compositionhome_4_pplpercent4 personnes
household_compositionhome_5_pplpercent5 personnes
household_compositionhome_6_pluspercent6 personnes ou plus
housing_typeType de logement
housing_typeapt_attachdpercentJumelé
housing_typeapt_bldg_lgpercentAppartement (grand)
housing_typeapt_bldg_smpercentAppartement (petit)
housing_typeapt_dttachdpercentMaison individuelle
housing_typeapt_plexpercentPlex
income_levelTranches de revenu du ménage
income_levelinc_00_09percent0 $ à 9 000 $
income_levelinc_10_19percent10 000 $ à 19 000 $
income_levelinc_20_34percent20 000 $ à 34 000 $
income_levelinc_35_49percent35 000 $ à 49 000 $
income_levelinc_50_74percent50 000 $ à 74 000 $
income_levelinc_75_100percent75 000 $ à 100 000 $
income_levelinc_100_149percent100 000 $ à 149 000 $
income_levelinc_150_200percent150 000 $ à 200 000 $
income_levelinc_200_pluspercent200 000 $ ou plus
income_statsStatistiques de revenu
income_statsinc_homestandaloneRevenu du ménage
income_statsinc_personstandaloneRevenu individuel
population_ageÂge de la population
population_ageage_00_040 à 4percent
population_ageage_05_09percent5 à 9
population_ageage_10_14percent10 à 14
population_ageage_15_19percent15 à 19
population_ageage_20_24percent20 à 24
population_ageage_25_29percent25 à 29
population_ageage_30_34percent30 à 34
population_ageage_35_39percent35 à 39
population_ageage_40_44percent40 à 44
population_ageage_45_49percent45 à 49
population_ageage_50_54percent50 à 54
population_ageage_55_59percent55 à 59
population_ageage_60_64percent60 à 64
population_ageage_65_69percent65 à 69
population_ageage_70_74percent70 à 74
population_ageage_75_79percent75 à 79
population_ageage_80_84percent80 à 84
population_ageage_85_pluspercent85 et plus
population_totalTotal
population_totalpopn_totalstandaloneTotal des personnes
property_tenurePropriétaires et locataires
property_tenureprop_ownerpercentPropriétaire
property_tenureprop_renterpercentLocataire

Exemples d'utilisation

require('node-fetch')('https://api.locallogic.co/v3/demographics?' + new URLSearchParams({
lat: 41.847206,
lng: -87.668825,
radius: 500,
radius_unit: "meter",
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)
})

Exemple de réponse

{
"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": "cmtr_transt",
"value": 0.23562293,
"label": "Transit"
},
{
"variable": "cmtr_foot",
"value": 0.011240746,
"label": "Foot"
},
{
"variable": "cmtr_cycle",
"value": 0.019079289,
"label": "Bike"
},
{
"variable": "cmtr_drive",
"value": 0.60276959,
"label": "Drive"
},
{
"variable": "cmtr_other",
"value": 0.016329394,
"label": "Other"
},
{
"variable": "cmtr_none",
"value": 0.11495802,
"label": "None"
}
]
}
},
"meta": {
"country_code": "US",
"language": "en",
"version": "2.0.0"
},
},
"meta": {
"message": "Successfully called v3/demographics API.",
"statusCode": 200,
"type": "LocalLogic.API.Success"
}
}

Dans l'exemple de données retournées ci-dessus, il y a deux catégories de données démographiques (“Income” et “Commute mode”). Ces catégories comportent les champs suivants :

label

  • Une étiquette d'affichage décrivant cette catégorie

type : peut être l'une des valeurs suivantes :

  • percent : les variables de cette catégorie sont directement liées; leurs valeurs sont des pourcentages qui, en théorie, devraient totaliser 1,0 (100 %). En pratique, les valeurs peuvent ne pas totaliser 100 % dans tous les cas en raison de l'arrondissement.
  • standalone : les variables de cette catégorie sont des valeurs distinctes

variables : Liste de plusieurs variables pour la catégorie, chacune comportant les éléments suivants :

  • variable, une clé programmatique qui demeure constante peu importe la langue
  • value, la valeur démographique réelle
  • label, une description propre à la langue pouvant être utilisée à des fins d'affichage

Dans l'exemple ci-dessus :

The average household income of the surrounding area is $88,555
The average individual income is $39,706
60.2% of people commute by car
23.5% of people commute by transit
11.4% of people commute by other modes
1.9% of people commute by bicycle
1.1% of people commute by foot

GET /v3/demographics/{geog_id}

Récupère les données démographiques agrégées au niveau des géographies ou des quartiers Local Logic, avec des intervalles de confiance déterminés par la marge d'erreur des données source. Les données retournées décrivent un large éventail de variables démographiques, organisées par catégories. Toutes les zones peuplées du Canada et des États-Unis (50 États + district de Columbia) sont couvertes, et des données existent pour les quartiers jusqu'aux régions métropolitaines (niveaux de géographie 10, 20, 30, 32, 35, 37, 38 et 40).

GET /v3/demographics/{geog_id}

Cette API utilise l'authentification par jeton JWT. Ce jeton porteur (Bearer) JWT est ce qui est utilisé pour remplir l'en-tête Authorization ci-dessous.

Les instructions pour récupérer ce jeton se trouvent dans Premiers pas.

En-têteStatutDescription
AuthorizationrequisVotre jeton porteur récupéré depuis notre API d'autorisation, ex. Bearer eyJhbGci...
AcceptrequisLe type de données demandé; cette API retournera application/json.

Paramètres de requête

ParamètreStatutDescription
languageoptionnelLa langue dans laquelle retourner les noms de quartiers.
Valeurs acceptées : en, fr
Valeur par défaut : en

Attributs de sortie et sous-variables

AttributVariableTypeDescription
commute_modeMode de déplacement
commute_modecommute_mode_totalcountNombre de personnes dans la population active occupée âgées de 15 ans et plus
commute_modebicyclepercentVélo
commute_modedrivepercentVoiture
commute_modefootpercentMarche
commute_modeotherpercentAutre
commute_modetransitpercentTransport en commun
commute_timeTemps de déplacement
commute_timecommute_time_totalcountNombre de personnes dans la population active occupée âgées de 15 ans et plus
commute_timecommute_time_00_to_14_minutespercent0 à 14 minutes
commute_timecommute_time_15_to_29_minutespercent15 à 29 minutes
commute_timecommute_time_30_to_44_minutespercent30 à 44 minutes
commute_timecommute_time_45_to_59_minutespercent45 à 59 minutes
commute_timecommute_time_60_plus_minutespercent60 minutes ou plus
education_levelNiveau de scolarité le plus élevé atteint
education_leveleducation_level_totalcountNombre de personnes âgées de 15 ans et plus
education_levelbachelor_degreepercentBaccalauréat
education_levelcollege_certificatepercentCertificat collégial
education_leveldoctoratepercentDoctorat
education_levelhigh_schoolpercentÉtudes secondaires
education_levelmasters_degreepercentMaîtrise
education_levelmedical_degreepercentDiplôme en médecine
education_levelno_high_schoolpercentN'a pas terminé ses études secondaires
education_leveltrade_certificatepercentCertificat de formation professionnelle
education_leveluniversity_certifcatepercentCertificat universitaire
employment_statusStatut d'emploi
employment_statusemployment_totalcountNombre de personnes dans la population active
employment_statusemployment_employedpercentEn emploi
employment_statusemployment_unemployedpercentSans emploi
household_compositionComposition du ménage
household_compositionhousehold_size_total_countcountNombre de ménages privés
household_compositionhousehold_size_1_person_percentpercent1 personne
household_compositionhousehold_size_2_people_percentpercent2 personnes
household_compositionhousehold_size_3_people_percentpercent3 personnes
household_compositionhousehold_size_4_people_percentpercent4 personnes
household_compositionhousehold_size_5_plus_people_percentpercent5 personnes ou plus
householdsTotal des ménages
householdshouseholds_totalcountNombre total de logements privés
households_childrenEnfants dans le ménage
households_childrenavg_children_per_householdstandaloneNombre moyen d'enfants dans les familles ayant des enfants
households_childrenhome_households_totalcountNombre total de familles de recensement dans les ménages privés
households_childrenhome_kidspercentAvec enfants
households_childrenhome_no_kidspercentSans enfants
housing_bedroom_countNombre de chambres à coucher par ménage
housing_bedroom_counthousing_units_totalcountNombre de logements privés occupés
housing_bedroom_counthousing_0_bedroompercentStudio
housing_bedroom_counthousing_1_bedroompercent1 chambre à coucher
housing_bedroom_counthousing_2_bedroomspercent2 chambres à coucher
housing_bedroom_counthousing_3_bedroomspercent3 chambres à coucher
housing_bedroom_counthousing_4_plus_bedroomspercent4 chambres à coucher ou plus
housing_construction_yearAnnée de construction du logement
housing_construction_yearhousing_units_totalcountNombre de logements privés occupés
housing_construction_yearhousing_construction_year_before_1961percentAvant 1961
housing_construction_yearhousing_construction_year_1961_to_1980percent1961 à 1980
housing_construction_yearhousing_construction_year_1981_to_1990percent1981 à 1990
housing_construction_yearhousing_construction_year_1991_to_2000percent1991 à 2000
housing_construction_yearhousing_construction_year_2001_to_2010percent2001 à 2010
housing_construction_yearhousing_construction_year_2011_to_2015percent2011 à 2015
housing_construction_yearhousing_construction_year_2016_to_2021percent2016 à 2021
housing_tenancyPropriétaires et locataires
housing_tenancyprop_occupied_units_totalcountNombre de logements privés occupés
housing_tenancyownerspercentPropriétaire
housing_tenancyrenterspercentLocataire
housing_typeType de logement
housing_typeunits_totalcountNombre de logements privés occupés
housing_typeapartment_1_to_4_floorspercentAppartement de 1 à 4 étages
housing_typeapartment_5_plus_floorspercentAppartement de 5 étages ou plus
housing_typeduplexpercentDuplex
housing_typemobilepercentMaison mobile
housing_typerow_housespercentMaisons en rangée
housing_typesemi_detachedpercentJumelé
housing_typesingle_detachedpercentMaison individuelle
incomeRevenu
incomemedian_household_incomemedianRevenu médian du ménage
incomemedian_individual_incomemedianRevenu médian par habitant
incomeincome_bracket_totalcountNombre de ménages privés
incomeincome_bracket_0_10percent0 $ à 9 999 $
incomeincome_bracket_10_15percent10 000 $ à 14 999 $
incomeincome_bracket_15_20percent15 000 $ à 19 999 $
incomeincome_bracket_20_25percent20 000 $ à 24 999 $
incomeincome_bracket_25_30percent25 000 $ à 29 999 $
incomeincome_bracket_30_35percent30 000 $ à 34 999 $
incomeincome_bracket_35_40percent35 000 $ à 39 999 $
incomeincome_bracket_40_45percent40 000 $ à 44 999 $
incomeincome_bracket_45_50percent45 000 $ à 49 999 $
incomeincome_bracket_50_60percent50 000 $ à 59 999 $
incomeincome_bracket_60_70percent60 000 $ à 69 999 $
incomeincome_bracket_70_80percent70 000 $ à 79 999 $
incomeincome_bracket_80_90percent80 000 $ à 89 999 $
incomeincome_bracket_90_100percent90 000 $ à 99 999 $
incomeincome_bracket_100_125percent100 000 $ à 124 999 $
incomeincome_bracket_125_150percent125 000 $ à 149 999 $
incomeincome_bracket_150_200percent150 000 $ à 199 999 $
incomeincome_bracket_200_pluspercent200 000 $ ou plus
mother_tongueLangue maternelle
mother_tonguetotal_mother_tonguecountTotal des personnes
mother_tongueafrikaanspercentAfrikaans
mother_tonguealbanianpercentAlbanais
mother_tongueamharicpercentAmharique
mother_tonguearabicpercentArabe
mother_tonguearmenianpercentArménien
mother_tongueatikamekwpercentAtikamekw
mother_tonguebengalipercentBengali
mother_tongueblackfootpercentPied-noir
mother_tonguechaldean_neo_aramaicpercentNéo-araméen chaldéen
mother_tongueczechpercentTchèque
mother_tonguedaripercentDari
mother_tonguedutchpercentNéerlandais
mother_tongueenglish_and_frenchpercentAnglais et français
mother_tongueenglish_and_non_official_languagespercentAnglais et langue(s) non officielle(s)
mother_tongueenglish_french_and_non_official_languagespercentAnglais, français et langue(s) non officielle(s)
mother_tongueenglishpercentAnglais
mother_tonguefrench_and_non_official_languagespercentFrançais et langue(s) non officielle(s)
mother_tonguefrenchpercentFrançais
mother_tonguegermanpercentAllemand
mother_tonguegreekpercentGrec
mother_tonguegujaratipercentGujarati
mother_tonguehaitian_creolepercentCréole haïtien
mother_tonguehindipercentHindi
mother_tongueililimowin_moose_creepercentIlilimowin (cri des Moose)
mother_tongueinu_ayimun_southern_east_creepercentInu ayimun (cri de l'Est, sud)
mother_tongueinuktitutpercentInuktitut
mother_tongueiranian_persianpercentPersan (Iran)
mother_tongueitalianpercentItalien
mother_tongueiyiyiw_ayimiwin_northern_east_creepercentIyiyiw ayimiwin (cri de l'Est, nord)
mother_tonguejapanesepercentJaponais
mother_tonguekoreanpercentCoréen
mother_tonguelow_german_nospercentBas-allemand, n.d.a.
mother_tonguemalayalampercentMalayalam
mother_tonguemandarinpercentMandarin
mother_tonguendebelepercentNdébélé
mother_tonguenehinawewin_swampy_creepercentNehinawewin (cri des marais)
mother_tonguenehiyawewin_plains_creepercentNehiyawewin (cri des Plaines)
mother_tongueniger_congo_languagespercentLangues nigéro-congolaises
mother_tonguenihithawiwin_woods_creepercentNihithawiwin (cri des bois)
mother_tongueoneidapercentOneida
mother_tongueoriya_nospercentOriya, n.d.a.
mother_tongueoromopercentOromo
mother_tonguepennsylvania_germanpercentAllemand de Pennsylvanie
mother_tongueplautdietschpercentPlautdietsch
mother_tonguepolishpercentPolonais
mother_tongueportuguesepercentPortugais
mother_tongueportuguesepercentPortugais
mother_tonguepunjabi_panjabipercentPendjabi
mother_tongueromanianpercentRoumain
mother_tonguerussianpercentRusse
mother_tonguesomalipercentSomali
mother_tonguespanishpercentEspagnol
mother_tongueswiss_germanpercentSuisse allemand
mother_tonguetagalog_pilipino_filipinopercentTagalog (pilipino, filipino)
mother_tonguetelugupercentTélougou
mother_tonguetlicho_dogribpercentTlicho (dogrib)
mother_tongueukrainianpercentUkrainien
mother_tongueurdupercentOurdou
mother_tonguevietnamesepercentVietnamien
mother_tongueyue_cantonesepercentYue (cantonais)
official_language_knowledgeConnaissance des langues officielles
official_language_knowledgeofficial_language_knowledge_totalcountTotal des personnes
official_language_knowledgeofficial_language_knoweldge_neitherpercentNi l'anglais ni le français
official_language_knowledgeofficial_language_knowledge_bilingualpercentAnglais et français
official_language_knowledgeofficial_language_knowledge_englishpercentAnglais seulement
official_language_knowledgeofficial_language_knowledge_frenchpercentFrançais seulement
population_ageÂge de la population
population_agepopn_age_medianmedianÂge médian de la population
population_age0_to_4percent0 à 4
population_age5_to_9percent5 à 9
population_age10_to_14percent10 à 14
population_age15_to_19percent15 à 19
population_age20_to_24percent20 à 24
population_age25_to_29percent25 à 29
population_age30_to_34percent30 à 34
population_age35_to_39percent35 à 39
population_age40_to_44percent40 à 44
population_age45_to_49percent45 à 49
population_age50_to_54percent50 à 54
population_age55_to_59percent55 à 59
population_age60_to_64percent60 à 64
population_age65_to_69percent65 à 69
population_age70_to_74percent70 à 74
population_age75_to_79percent75 à 79
population_age80_to_84percent80 à 84
population_age85_pluspercent85 et plus
population_totalTotal
population_totaltotal_individualscountTotal des personnes

Exemples d'utilisation

require('node-fetch')('https://api.locallogic.co/v3/demographics/g10_dr5rkxmw?' + new URLSearchParams({
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)
})

Exemple de réponse

{
"data": {
"type": "demographics",
"attributes": {
"commute_mode": {
"variables": [
{
"variable": "cmtr_workers_total",
"type": "count",
"value": 16792,
"label": "Number of workers 16 years and over",
"confidence_interval": {
"high_estimate": 17861,
"low_estimate": 15728,
"confidence_level": 0.9
}
},
{
"variable": "cmtr_foot",
"type": "percent",
"value": 0.105347784659,
"label": "Foot",
"confidence_interval": {
"high_estimate": 0.13018103858980467,
"low_estimate": 0.08093139590281085,
"confidence_level": 0.9
}
},
{
"variable": "cmtr_cycle",
"type": "percent",
"value": 0.020366841353,
"label": "Bike",
"confidence_interval": {
"high_estimate": 0.027751310147689376,
"low_estimate": 0.013101476893758932,
"confidence_level": 0.9
}
},
{
"variable": "cmtr_transt",
"type": "percent",
"value": 0.537339209147,
"label": "Transit",
"confidence_interval": {
"high_estimate": 0.5784897570271558,
"low_estimate": 0.4964268699380657,
"confidence_level": 0.9
}
},
{
"variable": "cmtr_drive",
"type": "percent",
"value": 9.9452120057,
"label": "Drive",
"confidence_interval": {
"high_estimate": 0.12696522153406384,
"low_estimate": 0.07479752262982372,
"confidence_level": 0.9
}
},
{
"variable": "cmtr_other",
"type": "percent",
"value": 0,
"label": "Other",
"confidence_interval": {
"high_estimate": 0.0026798475464506905,
"low_estimate": 0,
"confidence_level": 0.9
}
},
{
"variable": "cmtr_none",
"type": "percent",
"value": 0.190090519294,
"label": "None",
"confidence_interval": {
"high_estimate": 0.21712720343020486,
"low_estimate": 0.16335159599809433,
"confidence_level": 0.9
}
}
],
"label": "Commute mode"
},
"household_income": {
"variables": [
{
"variable": "inc_25_30",
"type": "percent",
"value": 0.015357867284,
"label": "$25,000 to $30,000",
"confidence_interval": {
"high_estimate": 0.022602144305998264,
"low_estimate": 0.008113590263691683,
"confidence_level": 0.9
}
},
{
"variable": "inc_200_plus",
"type": "percent",
"value": 0.0208780063749,
"label": "$200,000 or more",
"confidence_interval": {
"high_estimate": 0.23362793393219356,
"low_estimate": 0.1841495218777166,
"confidence_level": 0.9
}
},
{
"variable": "inc_households_total",
"type": "count",
"value": 13804,
"label": "Total Households",
"confidence_interval": {
"high_estimate": 14523,
"low_estimate": 13088,
"confidence_level": 0.9
}
}
],
"label": "Household income"
},
"income_stats": {
"variables": [
{
"variable": "inc_home",
"type": "median",
"value": 112647,
"label": "Median Household Income",
"confidence_interval": {
"high_estimate": 156106,
"low_estimate": 69189,
"confidence_level": 0.9
}
},
{
"variable": "inc_person",
"type": "median",
"value": 68560,
"label": "Median Per Capita Income",
"confidence_interval": {
"high_estimate": 89703,
"low_estimate": 47418,
"confidence_level": 0.9
}
}
],
"label": "Per capita income"
},
},
"housing_affordability_index": {
"value": 0.10546448708511434,
"label": "Housing Affordability Index"
},
"meta": {
"language": "en",
"country_code": "US"
}
},
"meta": {
"message": "Successfully called v3/demographics API.",
"type": "LocalLogic.API.Success",
"statusCode": 200
}
}

Dans l'exemple de données retournées ci-dessus, il y a trois catégories de données démographiques (“Commute mode”, "Household income" et "Per capita income"). Ces catégories comportent les champs suivants :

label

  • Une étiquette d'affichage décrivant cette catégorie

type : peut être l'une des valeurs suivantes :

  • percent : les variables de cette catégorie sont directement liées; leurs valeurs sont des pourcentages qui, en théorie, devraient totaliser 1,0 (100 %). En pratique, les valeurs peuvent ne pas totaliser 100 % dans tous les cas en raison de l'arrondissement.
  • count : les variables de cette catégorie sont des valeurs distinctes

variables : Liste de plusieurs variables pour la catégorie, chacune comportant les éléments suivants :

  • variable, une clé programmatique qui demeure constante peu importe la langue
  • value, la valeur démographique réelle
  • label, une description propre à la langue pouvant être utilisée à des fins d'affichage
  • confidence_interval, qui décrit une plage et le niveau de confiance (sous forme de ratio) quant à la fréquence à laquelle on estime que la valeur réelle se situera dans la plage donnée

Dans l'exemple ci-dessus :

9.9% of people commute by car
53.7% of people commute by transit
10.5% of people commute by foot
2.0% of people commute by bicycle
0.0% of people commute by other modes
The median household income is $112,647 (between $69,189 and $156,106 90% of the time)

Implémentations SDK

Les données démographiques sont utilisées par deux SDK :

SDKDescription
Local Demographics SDKRécupère les renseignements démographiques à proximité d'un emplacement fourni.
NeighborhoodDemographics SDKRécupère les renseignements démographiques à l'intérieur d'un quartier donné.

Codes de réponse

Lorsque vous appelez l'API de Local Logic, vous pouvez recevoir un code de réponse HTTP indiquant une erreur ou une absence de données. Ces erreurs sont expliquées ci-dessous.

En général, les codes d'erreur commençant par « 4 » sont dus à un appel d'API invalide et peuvent être corrigés de votre côté, alors que les codes d'erreur commençant par « 5 » sont dus à des erreurs de serveur (c'est-à-dire des problèmes de notre côté). Si vous recevez quelque chose qui n'est pas décrit ici, veuillez communiquer avec nous à support@locallogic.co.

204 - No Content

Ce « code d'erreur » n'en est pas un et se produit lorsque nous n'avons pas les données requises pour un emplacement précis. Par exemple, si vous envoyez une paire lat/lng pour obtenir des scores dans des régions inhabitées du nord du Canada, nous pouvons retourner une réponse 204 vide, car nous reconnaissons l'emplacement, mais nous ne calculons pas de scores dans des endroits aussi éloignés, donc il n'y a rien à retourner.

400 - BadRequest

Ce code d'erreur se produit lorsque les données saisies dans la requête sont incorrectes. Utilisez le champ detail de la réponse pour obtenir des précisions. Exemple :

{
"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

Ce code d'erreur se produit lorsque votre clé API ne peut pas accéder à certaines ressources ou à certains emplacements. Par exemple, certaines clés API ne peuvent accéder qu'à certains pays, états ou provinces. N'hésitez pas à communiquer avec nous pour plus d'information.

{
"code": "LocalLogic.API.Unauthorized",
"detail": "Your API KEY doesn't support this region"
}

403 - Forbidden

Ce code d'erreur se produit lorsque vous avez oublié d'inclure les identifiants de sécurité dans votre requête ou lorsque vous demandez un paramètre auquel vous n'avez pas accès.

{
"message": "Forbidden"
}

404 - NotFound

Ce code d'erreur se produit lorsque nous n'avons pas de données pour l'emplacement demandé. Par exemple, si vous envoyez une paire lat/lng pour un emplacement en Antarctique, nous retournerons cette erreur, car nous n'avons pas (encore!) de données pour l'Antarctique.

{
"code": "LocalLogic.API.NotFound",
"detail": "No Location Scores found for this location."
}

422 - Unprocessable Entity

Ce code d'erreur est retourné lorsque les bons paramètres ont été envoyés, mais que les données qu'ils contiennent ne sont pas valides. Par exemple, si vous envoyez une paire lat/lng et que la latitude est invalide (c.-à-d. hors de la plage [-90, 90]) ou que la longitude est invalide (c.-à-d. hors de la plage [-180, 180]). Le message retourné expliquera le problème précis avec vos paramètres qui les rend invalides.

{
"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

Ce code d'erreur peut être retourné lorsque vous devez limiter le débit de vos requêtes. À l'interne, nous établissons des limites qui dépassent toutes les limites contractuelles pouvant entraîner le retour de ce code d'erreur. Si vous avez des questions ou si vous voyez cette erreur, veuillez communiquer avec nous à support@locallogic.co.

500 - ServerError

Ce code d'erreur signifie qu'une erreur s'est produite de notre côté. N'hésitez pas à réessayer la même requête pour voir si le problème persiste. Si vous recevez beaucoup de ces erreurs, veuillez communiquer avec nous à support@locallogic.co.

{
"code": "LocalLogic.API.ServerError",
"detail": "No Location Scores found for this location."
}

502 - BadGateway

Ce code d'erreur signifie qu'une erreur provient de notre fournisseur infonuagique. N'hésitez pas à réessayer la même requête pour voir si le problème persiste.

{
"message": "Internal server error"
}