Predict property metrics over time such as list price, sale price, and rent.
Supports single and batch requests. Batch mode predicts multiple properties at once, useful for portfolio trend analysis.
Override property characteristics via query parameters to test hypothetical scenarios - for example, predicting value changes from added bedrooms or square footage.
Note: Query parameters (bedroom, den, etc.) override existing property data.
| Name | Required | Type | Description |
|---|---|---|---|
| api_key | Yes | UUID v4 | Your API key for authorization |
| property_id | Yes | String | The target property's ID (for batch selection, separate ids by a comma) |
| start_date | No (default: today) | String | Start date for prediction in YYYY-MM-DD format |
| fields | Yes | String | Any predictable field |
| period | No (default: month) | String | The time period for the predictions - day, week, month, year |
| next | No (default: 0) | Integer | How many future periods after the start_date to predict. Maximum 1000. |
| last | No (default: 0) | Integer | How many previous periods before the start_date to predict. Maximum 1000. |
| bedroom | No | Integer | Number of bedrooms (overrides property data when provided) |
| den | No | Integer | Number of dens (overrides property data when provided) |
| bathroom_full | No | Integer | Number of full bathrooms (overrides property data when provided) |
| bathroom_half | No | Integer | Number of half bathrooms (overrides property data when provided) |
| construction_year | No | Integer | Year the property was built (overrides property data when provided) |
| interior_sq_m | No | Float | Interior square meters (overrides property data when provided) |
| property_type | No | String | Property type (overrides property data when provided) |
| maintenance_fee | No | Float | Monthly maintenance fee (overrides property data when provided) |
| garage_type_first | No | String | Garage type (overrides property data when provided) |
Type declarations are available at the bottom of this page.
| Name | Type | Description |
|---|---|---|
| cache_hit | Boolean | Indicates if the data was retrieved from the cache |
| cost_cents | Integer | Cost of the API call in cents |
| data | Array<PredictData> | Array of prediction data for each property |
| error | String | Details about the error. Empty if no error |
| price_quote | Boolean | Indicates if this is a price quote request (no charge) |
| result_total | Integer | Total number of results |
| time_ms | Integer | Time taken for the request to complete in milliseconds |
Per-property prediction data:
| Name | Type | Description |
|---|---|---|
| property_id | String | Unique identifier for the property |
| predictions | Array<Prediction> | Array of time-series predictions for the property |
Each prediction point:
| Name | Type | Description |
|---|---|---|
| date | String | Date of the prediction in YYYY-MM-DD format |
| estimate_list_price | Float | null | Estimated listing price in dollars (only present if requested in fields parameter) |
| estimate_sale_price | Float | null | Estimated sale price in dollars (only present if requested in fields parameter) |
| estimate_rent_monthly | Float | null | Estimated monthly rent in dollars (only present if requested in fields parameter) |
Predict with modified characteristics:
Select the programming language you want to display the code examples in.
curl -X GET "https://api.houski.ca/predict?api_key=YOUR_API_KEY&bedroom=4&fields=estimate_sale_price,estimate_list_price&interior_sq_m=200.5&last=3&next=3&period=week&property_id=bd9c6fb24c31c772&start_date=2023-02-01"
const houski_predict_data = async (): Promise<PredictResponse> => {
// You must copy the PredictResponse type declarations from the
// Houski API documentation to strongly type the response
const url = new URL('https://api.houski.ca/predict');
url.searchParams.set('api_key', 'YOUR_API_KEY');
url.searchParams.set('bedroom', '4');
url.searchParams.set('fields', 'estimate_sale_price,estimate_list_price');
url.searchParams.set('interior_sq_m', '200.5');
url.searchParams.set('last', '3');
url.searchParams.set('next', '3');
url.searchParams.set('period', 'week');
url.searchParams.set('property_id', 'bd9c6fb24c31c772');
url.searchParams.set('start_date', '2023-02-01');
const response = await fetch(url);
const data = await response.json();
return data;
}
(async () => {
let data: PredictResponse = await houski_predict_data();
// Log the response
console.log(data);
})();
{
"cache_hit": false,
"cost_cents": 0.14000000059604645,
"data": [
{
"predictions": [
{
"date": "2023-01-11",
"estimate_list_price": 245036.75,
"estimate_sale_price": 213578.15625
},
{
"date": "2023-01-18",
"estimate_list_price": 245036.75,
"estimate_sale_price": 213578.15625
},
{
"date": "2023-01-25",
"estimate_list_price": 245036.75,
"estimate_sale_price": 220834.140625
},
{
"date": "2023-02-01",
"estimate_list_price": 245036.75,
"estimate_sale_price": 226522.328125
},
{
"date": "2023-02-08",
"estimate_list_price": 250973.5,
"estimate_sale_price": 226522.328125
},
{
"date": "2023-02-15",
"estimate_list_price": 250973.5,
"estimate_sale_price": 226522.328125
},
{
"date": "2023-02-22",
"estimate_list_price": 250973.5,
"estimate_sale_price": 226522.328125
}
],
"property_id": "bd9c6fb24c31c772"
}
],
"error": "",
"price_quote": false,
"result_total": 1,
"time_ms": 46
}
interface PredictResponse {
cache_hit: boolean;
cost_cents: number;
data: PredictData[];
error: string;
price_quote: boolean;
result_total: number;
time_ms: number;
}
interface PredictData {
property_id: string;
predictions: Prediction[];
}
interface Prediction {
date: string;
estimate_list_price?: number | null;
estimate_sale_price?: number | null;
estimate_rent_monthly?: number | null;
}