Parcel-level and neighbourhood-level probabilistic price forecasts. P10/P50/P90 distributions across 1–5 year horizons. One endpoint, one address, instant results.
Try the API right now with the built-in demo key. No signup required.
curl -s -H "x-api-key: hc_demo_public_readonly" \ "https://homecastr.com/api/v1/forecast?address=123+Main+St+Houston+TX"
curl -s -H "x-api-key: hc_demo_public_readonly" \ "https://homecastr.com/api/v1/forecast?address=123%20Main%20St%20Houston%20TX"
All API requests require an API key passed via the x-api-key header.
| Key Type | Rate Limit | Use Case |
|---|---|---|
| hc_demo_public_readonly | 50 req/hour | Testing & evaluation |
| hc_* | Unlimited (fair use) | Production |
/api/v1/forecastForecast home values by address. Geocodes the address, maps to an H3 neighborhood cell, and returns probabilistic forecasts with P10/P50/P90 bands.
| Name | Type | Required | Description |
|---|---|---|---|
| address | string | Yes | US street address (e.g. '123 Main St Houston TX') |
| year | integer | No | Target forecast year (default: 2030). Range: 2026–2030. |
curl -s -H "x-api-key: YOUR_API_KEY" \ "https://homecastr.com/api/v1/forecast?address=123+Main+St+Houston+TX&year=2028"
/api/v1/forecast/hexForecast by H3 cell ID. For developers who already know the H3 index of their target neighborhood.
| Name | Type | Required | Description |
|---|---|---|---|
| h3_id | string | Yes | H3 cell ID at resolution 8 (e.g. '882a100c65fffff') |
| year | integer | No | Target forecast year (default: 2026) |
curl -s -H "x-api-key: YOUR_API_KEY" \ "https://homecastr.com/api/v1/forecast/hex?h3_id=882a100c65fffff&year=2028"
/api/v1/forecast/lotForecast by tax parcel account ID. For integrations with county appraisal districts.
| Name | Type | Required | Description |
|---|---|---|---|
| acct | string | Yes | County tax account / parcel ID |
curl -s -H "x-api-key: YOUR_API_KEY" \ "https://homecastr.com/api/v1/forecast/lot?acct=1234567890123"
/api/v1/keysGenerate a new API key. Keys are free and issued instantly.
| Name | Type | Required | Description |
|---|---|---|---|
| string (body) | Yes | Your email address |
curl -s -X POST "https://homecastr.com/api/v1/keys" \
-H "Content-Type: application/json" \
-d '{"email": "you@company.com"}'const res = await fetch(
"https://homecastr.com/api/v1/forecast" +
"?address=123+Main+St+Houston+TX",
{
headers: {
"x-api-key": "YOUR_API_KEY"
}
}
);
const data = await res.json();
console.log(data.forecasts);
// { p10: 268000, p50: 345000, p90: 425000 }import requests
r = requests.get(
"https://homecastr.com/api/v1/forecast",
params={"address": "123 Main St Houston TX"},
headers={"x-api-key": "YOUR_API_KEY"},
)
data = r.json()
print(data["forecasts"])
# {'p10': 268000, 'p50': 345000, 'p90': 425000}{
"address": "string — Geocoded address",
"coordinates": { "lat": "number", "lng": "number" },
"h3_cell": "string — H3 cell ID at resolution 8",
"forecast_year": "number — Target year",
"current_value": "number | null — Current median value ($)",
"appreciation_pct": "number | null — Expected appreciation (%)",
"forecasts": {
"p10": "number — Conservative (10th percentile) value ($)",
"p50": "number — Expected (median) value ($)",
"p90": "number — Upside (90th percentile) value ($)"
},
"horizon_years": "number — Years from origin to forecast",
"reliability": "number | null — Model confidence (0–1)",
"fan_chart": {
"years": "[2026, 2027, 2028, 2029, 2030]",
"p10": "[number, ...]",
"p50": "[number, ...]",
"p90": "[number, ...]"
},
"property_count": "number | null — Properties in this cell",
"_links": {
"self": "string — This request URL",
"hex": "string — Direct hex endpoint for this cell",
"docs": "string — API docs URL"
}
}