Real-Time Market Statistics Implementation Guide
Our Real Estate API offers a powerful feature that allows you to request real-time market statistics. This capability is invaluable for creating data visualizations, providing users with deep market insights to make more informed decisions. The feature offers a high level of granularity, enabling you to request specific scopes of market data just as you would when filtering listings.
Begin by defining the scope of the data you wish to analyze using the GET /listings endpoint. This scope is defined in the same way you would filter for listings. For example, if you want statistics for 4-bedroom homes in New York City that have sold in the past 2 years, your request URL will look like this:
https://api.repliers.io/listings?city=New York&minBeds=4&maxBeds=4&status=U&lastStatus=Sld&minSoldDate=2022-07-01
To retrieve specific statistics, use the statistics parameter. For example, if you're interested in the average sold price, add &statistics=avg-soldPrice to your request. The full request URL would be:
https://api.repliers.io/listings?city=New York&minBeds=4&maxBeds=4&status=U&lastStatus=Sld&minSoldDate=2022-07-01&statistics=avg-soldPrice
This request will return all relevant listings along with a statistics object containing the average sold price:
If you do not need the listings and only require the statistics, add &listings=false to your request. This can significantly reduce response time. For instance:
https://api.repliers.io/listings?city=New York&minBeds=4&maxBeds=4&status=U&lastStatus=Sld&minSoldDate=2022-07-01&statistics=avg-soldPrice&listings=false
avg-soldPrice - Average sold price
med-soldPrice - Median sold price
avg-daysOnMarket - Average days on market
avg-listPrice - Average list price
cnt-new - Number of new listings that entered the market
cnt-closed - Number of listings that closed
For a complete list of supported statistics, please refer to our Search & Filter API reference, specifically the statistics parameter.
You can group statistics by different time periods to analyze trends. For example, to see how the average sold price has changed month-to-month over the past 2 years, use the grp-mth grouping:
https://api.repliers.io/listings?city=New York&minBeds=4&maxBeds=4&status=U&lastStatus=Sld&minSoldDate=2022-07-01&statistics=avg-soldPrice,grp-mth&listings=false
The response will include monthly data points:
grp-day - By day
grp-mth - By month
grp-yr - By year
grp-{x}-days - Rolling statistics, where x is the number of days for each grouping
Rolling statistics provide a moving average over a specified period, smoothing out fluctuations to reveal underlying trends. For instance, to get a rolling average of the sold price over 30 days:
https://api.repliers.io/listings?city=New York&minBeds=4&maxBeds=4&status=U&lastStatus=Sld&minSoldDate=2022-07-01&statistics=avg-soldPrice,grp-30-days&listings=false
You can request multiple statistics in a single API call. For example, to retrieve both the average sold price and average days on market:
https://api.repliers.io/listings?city=New York&minBeds=4&maxBeds=4&status=U&lastStatus=Sld&minSoldDate=2022-07-01&statistics=avg-daysOnMarket,avg-soldPrice,grp-mth&listings=false
Aggregating statistics allows you to compare different segments within your data. To enable aggregation, add &aggregateStatistics=true and specify the field to aggregate by. For instance, to compare average sold prices by neighborhood:
https://api.repliers.io/listings?city=New York&minBeds=4&maxBeds=4&status=U&lastStatus=Sld&minSoldDate=2022-07-01&statistics=avg-soldPrice,grp-mth&listings=false&aggregateStatistics=true&aggregates=address.neighborhood
The response will be grouped by neighborhood:
You can aggregate statistics by various fields. For example, to compare sold prices across different property types:
https://api.repliers.io/listings?city=New York&minBeds=4&maxBeds=4&status=U&lastStatus=Sld&minSoldDate=2022-07-01&statistics=avg-soldPrice,grp-mth&listings=false&aggregateStatistics=true&aggregates=details.propertyType
The response will include data segmented by property type:
Our real-time market statistics feature empowers you to create insightful data visualizations that help users understand market trends and make informed decisions. By leveraging granular filters, diverse statistics, and powerful aggregation capabilities, you can customize data to suit specific needs. For detailed documentation and further customization options, please refer to our API Reference.
How to Request Statistics
Step 1: Provide the Scope of Data
Begin by defining the scope of the data you wish to analyze using the GET /listings endpoint. This scope is defined in the same way you would filter for listings. For example, if you want statistics for 4-bedroom homes in New York City that have sold in the past 2 years, your request URL will look like this:
https://api.repliers.io/listings?city=New York&minBeds=4&maxBeds=4&status=U&lastStatus=Sld&minSoldDate=2022-07-01
Step 2: Specify the Statistics
To retrieve specific statistics, use the statistics parameter. For example, if you're interested in the average sold price, add &statistics=avg-soldPrice to your request. The full request URL would be:
https://api.repliers.io/listings?city=New York&minBeds=4&maxBeds=4&status=U&lastStatus=Sld&minSoldDate=2022-07-01&statistics=avg-soldPrice
This request will return all relevant listings along with a statistics object containing the average sold price:
{
"statistics": {
"soldPrice": {
"avg": 823702
}
}
}
Requesting Only Statistics
If you do not need the listings and only require the statistics, add &listings=false to your request. This can significantly reduce response time. For instance:
https://api.repliers.io/listings?city=New York&minBeds=4&maxBeds=4&status=U&lastStatus=Sld&minSoldDate=2022-07-01&statistics=avg-soldPrice&listings=false
Popular Statistics
avg-soldPrice - Average sold price
med-soldPrice - Median sold price
avg-daysOnMarket - Average days on market
avg-listPrice - Average list price
cnt-new - Number of new listings that entered the market
cnt-closed - Number of listings that closed
For a complete list of supported statistics, please refer to our Search & Filter API reference, specifically the statistics parameter.
Grouping Statistics
You can group statistics by different time periods to analyze trends. For example, to see how the average sold price has changed month-to-month over the past 2 years, use the grp-mth grouping:
https://api.repliers.io/listings?city=New York&minBeds=4&maxBeds=4&status=U&lastStatus=Sld&minSoldDate=2022-07-01&statistics=avg-soldPrice,grp-mth&listings=false
The response will include monthly data points:
{
"statistics": {
"soldPrice": {
"avg": 823702,
"mth": {
"2022-07": {
"avg": 743897,
"count": 13303
},
"2022-08": {
"avg": 759084,
"count": 25539
},
"2022-09": {
"avg": 739097,
"count": 22919
},
...
}
}
}
}
Supported Groupings
grp-day - By day
grp-mth - By month
grp-yr - By year
grp-{x}-days - Rolling statistics, where x is the number of days for each grouping
Rolling Statistics
Rolling statistics provide a moving average over a specified period, smoothing out fluctuations to reveal underlying trends. For instance, to get a rolling average of the sold price over 30 days:
https://api.repliers.io/listings?city=New York&minBeds=4&maxBeds=4&status=U&lastStatus=Sld&minSoldDate=2022-07-01&statistics=avg-soldPrice,grp-30-days&listings=false
Requesting Multiple Statistics
You can request multiple statistics in a single API call. For example, to retrieve both the average sold price and average days on market:
https://api.repliers.io/listings?city=New York&minBeds=4&maxBeds=4&status=U&lastStatus=Sld&minSoldDate=2022-07-01&statistics=avg-daysOnMarket,avg-soldPrice,grp-mth&listings=false
Aggregating Statistics
Aggregating statistics allows you to compare different segments within your data. To enable aggregation, add &aggregateStatistics=true and specify the field to aggregate by. For instance, to compare average sold prices by neighborhood:
https://api.repliers.io/listings?city=New York&minBeds=4&maxBeds=4&status=U&lastStatus=Sld&minSoldDate=2022-07-01&statistics=avg-soldPrice,grp-mth&listings=false&aggregateStatistics=true&aggregates=address.neighborhood
The response will be grouped by neighborhood:
{
"statistics": {
"soldPrice": {
"avg": 986486,
"mth": {
"2022-07": {
"avg": 949437,
"count": 4600,
"aggregates": {
"address": {
"neighborhood": {
"Waterfront Communities C1": {
"count": 74,
"avg": 805367
},
"Waterfront Communities C2": {
"count": 60,
"avg": 709361
},
...
}
}
}
}
}
}
}
}
You can aggregate statistics by various fields. For example, to compare sold prices across different property types:
https://api.repliers.io/listings?city=New York&minBeds=4&maxBeds=4&status=U&lastStatus=Sld&minSoldDate=2022-07-01&statistics=avg-soldPrice,grp-mth&listings=false&aggregateStatistics=true&aggregates=details.propertyType
The response will include data segmented by property type:
{
"statistics": {
"soldPrice": {
"avg": 986486,
"mth": {
"2022-07": {
"avg": 949437,
"count": 4600,
"aggregates": {
"details": {
"propertyType": {
"Detached": {
"count": 2526,
"avg": 1090041
},
"Condo Apt": {
"count": 844,
"avg": 696919
},
...
}
}
}
}
}
}
}
}
Summary
Our real-time market statistics feature empowers you to create insightful data visualizations that help users understand market trends and make informed decisions. By leveraging granular filters, diverse statistics, and powerful aggregation capabilities, you can customize data to suit specific needs. For detailed documentation and further customization options, please refer to our API Reference.
Updated on: 15/07/2024
Thank you!