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.
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
Supported Statistics
- avg-tax
- med-tax
- pct-aboveBelowList
- avg-priceSqft
- cnt-available
- cnt-new
- cnt-closed
- sd-daysOnMarket
- sd-listPrice
- sd-soldPrice
- med-daysOnMarket
- med-soldPrice
- med-listPrice
- avg-daysOnMarket
- sum-daysOnMarket
- min-daysOnMarket
- max-daysOnMarket
- avg-listPrice
- sum-listPrice
- min-listPrice
- max-listPrice
- avg-soldPrice
- sum-soldPrice
- min-soldPrice
- max-soldPrice
- avg-maintenanceFee
- med-maintenanceFee
- avg-maintenanceFeePerSqft
- med-maintenanceFeePerSqft
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, add grp-mth as a comma-separated value to the statistics parameter:
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 you can do so by comma-separating the values avg-daysOnMarket and avg-soldPrice in the statistics parameter:
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: 08/03/2025
Thank you!