A property estimate is the value history for one home, plus the current figure. You need a propertyId from a listing or a property call. The current value and the latest historical value are separate numbers, and they do not have to match.
👉 To access this endpoint, you must obtain an API key: https://steadyapi.com/register
Authentication
Every call uses a Bearer token from your SteadyAPI dashboard.
Documentation:
https://docs.steadyapi.com/#authenticating-requests
headers = {
'Authorization': 'Bearer YOUR_API_KEY'
}
Where this fits
Take property_id from a rental or sale listing and pass it as propertyId. Tax history for the same id is GET /v1/real-estate/property-tax-history. This response is an estimate series, not the list price on the listing.
Get a property estimate
Endpoint: GET /v1/real-estate/property-estimates
Documentation:
https://docs.steadyapi.com/#real-estate-GETapi-v1-real-estate-property-estimates
Parameters
propertyId— required (example:1874828523)historicalYearsMin— optional date, formatY-m-dhistoricalYearsMax— optional date, formatY-m-dforecastedMonthsMax— optional date, formatY-m-d
The three optional parameters are calendar dates, not a count of years or months. 2020-01-01 is valid. 5 is not. Omit them and the sample returns the default series: meta.total_historical_estimates is 182 and meta.forecast_sources is 2. Sending a tighter date range changes how much history you get. It does not change the field names.
Python
import requests
url = "https://api.steadyapi.com/v1/real-estate/property-estimates"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
response = requests.get(url, headers=headers, params={"propertyId": "1874828523"})
response.raise_for_status()
body = response.json().get("body") or {}
print(body.get("current_value"))
print(body.get("latest_historical_value"), body.get("latest_historical_date"))
history = body.get("historical_values") or []
if history:
print(history[0].get("source"))
Annotated sample
{
"current_value": 2373569,
"latest_historical_value": 2353229,
"latest_historical_date": "2026-06-17",
"historical_values": [
{
"source": { "name": "Quantarium", "type": "quantarium" },
"estimates": [
{ "value": 2353229, "date": "2026-06-17" }
]
}
]
}
Show current_value as the headline number. It is an integer dollar amount in this sample, not a formatted string. latest_historical_value is the newest point the endpoint picked across sources. The Quantarium point on 2026-06-17 is 2353229, which is below the current value. forecast_values is a separate list. Do not append it to the historical series without labeling it.
Practical use
More than one source can appear under historical_values. The sample’s first source is Quantarium. Read source.name before you chart a line, or you will mix two models on one axis.
estimates inside a source is the time series. The first point is the one used when that source has the latest date. Keep date with value.
This is not the listing price and it is not a mortgage payment. A rental card’s price.display answers a different question.
👉 Get your API key and load an estimate: https://steadyapi.com/register