Articles on: Market Reports & Analytics

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

Was this article helpful?

Share your feedback

Cancel

Thank you!