Market Statistics
Description
Effectuez une requête pour recevoir des statistiques détaillées du marché au sein d'un quartier, d'une ville, d'un code postal ou d'une région métropolitaine, dans le temps et réparties par catégorie d'actifs. Aux États-Unis, les données renvoyées couvrent un certain nombre de statistiques de marché définies dans la zone demandée, basées sur les maisons à vendre et les maisons vendues, mises à jour quotidiennement. Voici quelques questions fréquemment posées (FAQ) sur les données Market Stats de Local Logic.
Les statistiques comprennent tous les éléments suivants, calculés sur plusieurs intervalles quotidiennement au sein du quartier, de la ville, du code postal, du comté, de la région ou de la région métropolitaine demandés, etc. :
- Mesures des données d'inscription
- Nombre d'inscriptions actives
- Nombre d'inscriptions en attente
- Nombre d'inscriptions sous contrat
- Nombre de nouvelles inscriptions
- Âge médian des inscriptions actives
- Superficie médiane des propriétés des inscriptions actives, en pieds carrés
- Prix demandés des maisons
- Prix demandé minimum
- Prix demandé médian
- Prix demandé maximum
- Répartitions détaillées par centile des prix demandés
- Prix demandé médian par pied carré
- Nombre total de maisons vendues
- Prix de vente des maisons
- Prix de vente minimum
- Prix de vente maximum
- Prix de vente médian
- Répartitions détaillées par centile des prix de vente
- Prix de vente médian par pied carré
- Différence médiane en dollars entre le prix demandé et le prix de vente
- Différence médiane en pourcentage entre le prix demandé et le prix de vente
- Pourcentage de maisons vendues au-dessus et en dessous du prix demandé
- Année de construction médiane des maisons vendues
- Superficie médiane des maisons vendues, en pieds carrés
- Taux d'absorption (une mesure de l'offre et de la demande calculée en divisant le nombre de maisons vendues par le nombre total d'inscriptions)
- Volume total des ventes en dollars
- Évaluation des conditions du marché (marché favorable aux acheteurs, aux vendeurs ou neutre) avec qualificatif numérique
- Vitesse du marché
- Nombre médian de jours sur le marché
- Nombre médian de jours pour vendre
- Répartitions détaillées par centile des jours sur le marché
Structure
Ce point de terminaison renvoie des données structurées sous forme d'arborescence à branches multiples, permettant aux utilisateurs de consulter rapidement les données au niveau approprié. Les données sont d'abord organisées par catégorie d'actifs (par exemple, copropriété/maison de ville, résidence unifamiliale, résidences multifamiliales, etc.), puis fournies pour tous les intervalles demandés, tel que décrit dans les paramètres ci-dessous.
Pour chaque intervalle, les éléments suivants sont fournis :
- Une description de la période, avec la date et l'heure de début et de fin de la période
- Un dictionnaire d'activité de marché contenant les statistiques ponctuelles à la fin de l'intervalle (y compris le nombre d'inscriptions actives, la répartition des prix demandés des maisons, le nombre médian de jours sur le marché pour les inscriptions actives)
- Un dictionnaire d'activité de marché contenant les statistiques calculées sur l'ensemble de l'intervalle (y compris le nombre total de maisons vendues, le nombre de nouvelles inscriptions, l'évaluation des conditions du marché)
Tout intervalle pour lequel aucune inscription n'a été trouvée à la fin de la période, ou pour lequel aucune maison vendue n'a été signalée, ne contiendra pas de statistiques détaillées. Ces "intervalles manquants" sont mis en évidence dans la réponse de l'API, comme expliqué ci-dessous dans la sous-section Intervalles d'activité de marché.
GET /v3/market-stats/{geog_id}
Les valeurs acceptées pour geog_id sont toutes les géographies aux États-Unis correspondant à g10_*, g20_*, g30_*, g32_*, g35_*, g37_*, g38_* et g40_*. Toute autre valeur entraînera un code de statut 404 (introuvable).
Un geog_id peut être obtenu pour un quartier, une ville, un code postal, une région ou une région métropolitaine donnés, à l'aide du point de terminaison Geographies.
GET /v3/market-stats/{geog_id}
En-tête
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ête | Statut | Description |
|---|---|---|
| Authorization | requis | Votre jeton porteur récupéré depuis notre API d'autorisation, ex. Bearer eyJhbGci... |
| Accept | requis | Le type de données demandé; cette API retournera application/json. |
Chaîne de requête
| Parameter | Status | Description |
|---|---|---|
| property_types | optional | Une liste de types de propriétés à inclure, séparés par des virgules. Les valeurs acceptées sont all_residential_properties, residential_income_properties, single_family, condo_townhome, multi_family_under_5_units, multi_family_5_plus_units et vacant_land.
single_family, multi_family_under_5_units, condo_townhome et all_residential_properties seront renvoyés.⚠️ Important : les types de propriétés commercial et other_and_unclassified sont fournis pour appuyer le rapprochement du nombre total d'inscriptions actives et des comptes de transactions rapportés par le MLS. Cependant, les statistiques pour ces types de propriétés ne doivent pas être considérées comme fiables à des fins analytiques. Ces catégories contiennent des données hétérogènes — par exemple, les prix affichés peuvent représenter des montants de location mensuels plutôt que des prix de vente, et les caractéristiques des propriétés varient considérablement au sein de chaque groupe. Utilisez ces types de propriétés uniquement pour le dénombrement des stocks et les vérifications d'exhaustivité, et non pour l'analyse de marché ou les indications de prix.
|
| intervals | optional | Une liste d'intervalles à inclure, séparés par des virgules, en utilisant les codes d'intervalle expliqués ci-dessous. Par défaut : les 30 derniers jours et les 12 derniers mois civils complets. Par exemple : 30d,2024-09,2024-08,2024-07,2024-06,2024-05,2024-04,2024-03,2024-02,2024-01,2023-12,2023-11,2023-10 |
Intervalles d'activité de marché
Étant donné que les statistiques d'activité de marché peuvent être consultées selon de nombreux types d'intervalles différents, ce point de terminaison permet aux utilisateurs de préciser les intervalles qu'ils souhaitent recevoir dans leur réponse. Une combinaison d'intervalles relatifs prédéfinis est disponible, en plus de permettre aux utilisateurs de spécifier des mois et des années civils précis. Si aucun intervalle n'est fourni, le point de terminaison renverra les 30 derniers jours et les 12 mois civils "complets" les plus récents disponibles.
| Interval code | Description |
|---|---|
30d | Les 30 jours précédant la date actuelle. |
31-60d | Les 31 à 60 jours précédant la date actuelle, utile pour comparer avec les 30 jours les plus récents. |
60d | Les 60 jours précédant la date actuelle. |
90d | Les 90 jours précédant la date actuelle. |
120d | Les 120 jours précédant la date actuelle. |
12m | Les 12 mois précédant la date actuelle. |
13-24m | Les 13 à 24 mois précédant la date actuelle, utile pour comparer avec les 12 mois les plus récents. |
[yyyy]-[mm] | Tout mois précis et clos au cours des 5 dernières années, formaté sous la forme d'une année à quatre chiffres, d'un trait d'union et d'un mois à deux chiffres. Ex. : 2024-09, 2022-10, 2020-04 |
[yyyy]Q# | Tout trimestre civil précis et clos au cours des 5 dernières années, formaté sous la forme d'une année à quatre chiffres, d'un Q et du chiffre représentant le trimestre. Ex. : 2024Q1, 2022Q3, 2020Q2 |
Toute section manquante en raison d'un manque de données (zéro inscription active à la fin de l'intervalle, ou zéro vente durant l'intervalle) sera mise en évidence dans la section meta de la réponse, avec à la fois un message lisible par un humain et toutes les combinaisons de property_type et d'interval pour lesquelles des statistiques de marché sont manquantes. Voici un exemple de cette section :
"meta": {
"message": "The following intervals are missing some market activity data due to a low number of listings or sold homes: ['30d', '31-60d', '12m', '13-24m']",
"missing_intervals": {
"condo_townhome": [
"30d",
"31-60d"
],
"multi_family_under_5_units": [
"30d",
"31-60d",
"12m",
"13-24m"
]
}
}
Exemples d'utilisation
- NodeJS
- Python
require('node-fetch')('https://api.locallogic.co/v3/market-stats/g30_c28wnknk?' + new URLSearchParams({
property_types: 'condo_townhome'
}), {
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/market-stats/g30_c28wnknk",
headers={
"Accept": "application/json",
"Authorization": "Bearer eyJhbGciOiJ..."
},
params={
"property_types": "condo_townhome",
}
)
print(response.json())
Exemple de réponse
Voici un lien vers un exemple de réponse pour Boston, Massachusetts (g30_drt2zfr7), daté du jeudi 24 avril 2025.
GET /v3/market-stats/status
Ce point de terminaison fournit tous les intervalles calculés disponibles dans l'API, ainsi que la date et l'heure de la dernière mise à jour des données. Ceci est particulièrement utile pour vérifier la disponibilité d'un mois ou d'un trimestre nouvellement clos, qui peut prendre quelques heures après le début du nouveau mois ou trimestre pour devenir disponible.
GET /v3/market-stats/status
En-tête
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ête | Statut | Description |
|---|---|---|
| Authorization | requis | Votre jeton porteur récupéré depuis notre API d'autorisation, ex. Bearer eyJhbGci... |
| Accept | requis | Le type de données demandé; cette API retournera application/json. |
Exemples d'utilisation
- NodeJS
- Python
require('node-fetch')('https://api.locallogic.co/v3/market-stats/status', {
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/market-stats/status",
headers={
"Accept": "application/json",
"Authorization": "Bearer eyJhbGciOiJ..."
}
)
print(response.json())
Exemple de réponse
{
"data": {
"intervals": [
"30d",
"31-60d",
"12m",
"13-24m",
"2026-03",
"2026-02",
"2026-01",
"2026Q1",
"2025-12",
"2025-11",
"2025-10",
"2025Q4",
"2025-09",
"2025-08",
"2025-07",
"2025Q3",
"2025-06",
"2025-05",
"2025-04",
"2025Q2",
"2025-03",
"2025-02",
"2025Q1",
"2025-01",
"2024-12",
"2024-11",
"2024Q4",
"2024-10",
"2024-09",
"2024-08",
"2024Q3",
"2024-07",
"2024-06",
"2024-05",
"2024Q2",
"2024-04",
"2024-03",
"2024-02",
"2024Q1",
"2024-01",
"2023-12",
"2023-11",
"2023-10",
"2023Q4",
"2023-09",
"2023-08",
"2023-07",
"2023Q3",
"2023-06",
"2023-05",
"2023-04",
"2023Q2",
"2023-03",
"2023-02",
"2023-01",
"2023Q1",
"2022-12",
"2022-11",
"2022-10",
"2022Q4",
"2022-09",
"2022-08",
"2022Q3",
"2022-07",
"2022-06",
"2022-05",
"2022-04",
"2022Q2",
"2022-03",
"2022-02",
"2022-01",
"2022Q1",
"2021-12",
"2021-11",
"2021Q4",
"2021-10",
"2021-09",
"2021-08",
"2021-07",
"2021Q3",
"2021-06",
"2021-05",
"2021-04",
"2021Q2"
],
"last_updated_on": "2026-04-07T04:29:50.378052Z"
}
}
Codes d'erreur
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"
}