The AVM (Automated Valuation Model) endpoint provides comprehensive property valuations including list price, sale price, and monthly rent estimates with confidence scores and detailed model performance metrics.
The endpoint supports both existing property valuations (using property_id) and hypothetical property valuations (using latitude/longitude coordinates). Each valuation includes detailed model metrics such as R-squared values, error distributions, and hit rates within various percentage bands.
Property characteristics can be overridden using query parameters, and the endpoint returns up to 10 comparable properties within 5km to provide market context.
Name | Required | Type | Description |
---|---|---|---|
api_key | Yes | UUID v4 | Your API key for authorization |
property_id | No* | String | The unique identifier for the property to value. Required unless latitude/longitude are provided. |
latitude | No* | Float | Latitude coordinate for hypothetical property valuation. Required with longitude if property_id not provided. |
longitude | No* | Float | Longitude coordinate for hypothetical property valuation. Required with latitude if property_id not provided. |
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 |
---|---|---|
data | AvmValuation | Contains the complete valuation data including estimates and comparables |
error | String | Details about the error. Empty if no error |
time_ms | Number | Time taken for the request to complete in milliseconds |
cost_cents | Number | Cost of the API call in cents (500 cents = $5.00) |
price_quote | Boolean | Indicates if this is a price quote request (no charge) |
Name | Type | Description |
---|---|---|
property_id | String | The property identifier |
image | String | Property image URL |
address | String | Property address |
country | String | Country abbreviation |
province | String | Province/state abbreviation |
latitude | Number | Property latitude coordinate |
longitude | Number | Property longitude coordinate |
estimate_list_price | AvmSingleValuation | Estimated listing price with confidence score and detailed model performance metrics |
estimate_sale_price | AvmSingleValuation | Estimated sale price with confidence score and detailed model performance metrics |
estimate_rent_monthly | AvmSingleValuation | Estimated monthly rent with confidence score and detailed model performance metrics |
valuation_date | String | Date the valuation was performed (YYYY-MM-DD) |
comparable_properties_total | Number | Total number of comparable properties in the same city and type |
comparable_properties | Array<AvmComparableProperty> | Up to 10 nearby comparable properties within 5km with similar size (±20%), sorted by distance |
Each valuation (list price, sale price, rent) includes:
Name | Type | Description |
---|---|---|
value | Number | The estimated value in dollars |
confidence_score | Number | Confidence percentage (0-100) based on model accuracy |
model_metrics | AvmModelMetrics | Detailed performance metrics including R-squared, MAPE, error percentiles, and hit rates |
Name | Type | Description |
---|---|---|
address | String | Property address |
image | String | Property image URL |
latitude | Number | Latitude coordinate |
longitude | Number | Longitude coordinate |
distance_km | Number | Distance from target property in kilometers |
list_price | Number | Original listing price |
estimate_sale_date_sold | String | Date when the property was sold (YYYY-MM-DD) |
Select the programming language you want to display the code examples in.
curl -X GET "https://api.houski.ca/avm?api_key=YOUR_API_KEY&bedroom=4&interior_sq_m=200.5&property_id=bd9c6fb24c31c772"
const houski_avm_data = async (): Promise<AvmResponse> => { // You must copy the AvmResponse type declarations from the // Houski API documentation to strongly type the response const url = new URL('https://api.houski.ca/avm'); url.searchParams.set('api_key', 'YOUR_API_KEY'); url.searchParams.set('bedroom', '4'); url.searchParams.set('interior_sq_m', '200.5'); url.searchParams.set('property_id', 'bd9c6fb24c31c772'); const response = await fetch(url); const data = await response.json(); return data; } (async () => { let data: AvmResponse = await houski_avm_data(); // Log the response console.log(data); })();
{ "cost_cents": 500.0, "data": { "address": "302 610 17 Avenue SW", "comparable_properties": [ { "address": "3 1818 5 Street SW", "distance_km": 0.0022075860761106014, "estimate_sale_date_sold": "2025-06-28", "image": "9a5bf78700666d65_8d067b", "latitude": 51.03638458251953, "list_price": 889900, "longitude": -114.07383728027344 }, { "address": "1440 540 14 Avenue SW", "distance_km": 0.0023120243567973375, "estimate_sale_date_sold": "2025-05-08", "image": "a9e91311d17717f_1be0de", "latitude": 51.040096282958984, "list_price": 575000, "longitude": -114.07379150390624 }, { "address": "810 519 17 Avenue SW", "distance_km": 0.002524871379137039, "estimate_sale_date_sold": "2025-05-24", "image": "2e4c8d9357d3d157_ca5446", "latitude": 51.03757858276367, "list_price": 829900, "longitude": -114.0726547241211 }, { "address": "528 19 Avenue SW", "distance_km": 0.002722157398238778, "estimate_sale_date_sold": "2024-11-19", "image": "22c5ea144169f173_24412e", "latitude": 51.03630447387695, "list_price": 1499900, "longitude": -114.0731430053711 }, { "address": "1 544 20 Avenue SW", "distance_km": 0.0030987083446234465, "estimate_sale_date_sold": "2023-05-28", "image": "54f26725cb0275_2c17fd", "latitude": 51.03533172607422, "list_price": 1375000, "longitude": -114.07391357421876 }, { "address": "1925 5A Street SW", "distance_km": 0.003126667346805334, "estimate_sale_date_sold": "2024-04-27", "image": "9b2951199452907f_5d07cd", "latitude": 51.03518295288086, "list_price": 849900, "longitude": -114.0759506225586 }, { "address": "1933 5 Street SW", "distance_km": 0.0032260275911539793, "estimate_sale_date_sold": "2025-02-17", "image": "84be7cb90546f4db_5d5927", "latitude": 51.03500747680664, "list_price": 1900000, "longitude": -114.07459259033205 }, { "address": "617 Royal Avenue SW", "distance_km": 0.0036198804154992104, "estimate_sale_date_sold": "2024-05-13", "image": "81470e300ffa1260_7530f8", "latitude": 51.034576416015625, "list_price": 1695000, "longitude": -114.07526397705078 }, { "address": "619 Royal Avenue SW", "distance_km": 0.003626747988164425, "estimate_sale_date_sold": "2024-04-21", "image": "eb40794563052aad_4dc781", "latitude": 51.034576416015625, "list_price": 1695000, "longitude": -114.07537841796876 }, { "address": "1713 College Lane SW", "distance_km": 0.003634387627243996, "estimate_sale_date_sold": "2024-01-21", "image": "4e1aa5b3fb3b9d19_9aa7a0", "latitude": 51.03719329833984, "list_price": 898000, "longitude": -114.07859802246094 } ], "comparable_properties_total": 658955, "country": "CA", "estimate_list_price": { "confidence_score": 95.35480499267578, "model_metrics": { "coefficient_of_variation": 17.013380695546818, "depth": 11, "error_10th_percentile": 3575.50634765625, "error_25th_percentile": 9871.46875, "error_50th_percentile": 22525.625, "error_75th_percentile": 46911.5625, "error_90th_percentile": 92559.7265625, "error_95th_percentile": 144745.46875, "forecast_std_dev": 99787.890625, "mae": 44517.35546875, "mape": 6.9018683433532715, "mean_bias": -3828.853271484375, "median_bias": 276.46875, "median_mape": 4.645195007324219, "min_leaf": 4, "min_split": 3, "mse": 9972301824.0, "n_testing_samples": 14105, "n_training_samples": 56416, "over_prediction_rate": 50.40765685926976, "pct_error_10th": 0.7834541201591492, "pct_error_90th": 14.290191650390623, "rmse": 99861.4140625, "testing_r_squared": 0.95, "training_date": "2025-07-03 06:06:47 UTC", "training_r_squared": 0.99, "trees": 100, "under_prediction_rate": 49.59234314073024, "within_10_pct": 80.60262318326834, "within_15_pct": 90.98192130450194, "within_20_pct": 95.17901453385323, "within_5_pct": 52.98121233605104 }, "value": 1121567.5 }, "estimate_rent_monthly": { "confidence_score": 92.6391143798828, "model_metrics": { "coefficient_of_variation": 14.468881603918938, "depth": 6, "error_10th_percentile": 39.67831039428711, "error_25th_percentile": 93.34075927734376, "error_50th_percentile": 196.1358642578125, "error_75th_percentile": 364.1508483886719, "error_90th_percentile": 588.93359375, "error_95th_percentile": 869.7101440429688, "forecast_std_dev": 383.79937744140625, "mae": 274.91351318359375, "mape": 10.89890956878662, "mean_bias": 7.627957344055176, "median_bias": 4.36962890625, "median_mape": 7.360888004302979, "min_leaf": 61, "min_split": 3, "mse": 147360.0625, "n_testing_samples": 388, "n_training_samples": 1549, "over_prediction_rate": 50.51546391752577, "pct_error_10th": 1.498584270477295, "pct_error_90th": 25.071269989013672, "rmse": 383.87506103515625, "testing_r_squared": 0.61, "training_date": "2025-07-02 11:43:26 UTC", "training_r_squared": 0.69, "trees": 61, "under_prediction_rate": 49.48453608247423, "within_10_pct": 59.5360824742268, "within_15_pct": 78.09278350515464, "within_20_pct": 84.5360824742268, "within_5_pct": 33.50515463917525 }, "value": 3368.1630859375 }, "estimate_sale_price": { "confidence_score": 95.36517333984376, "model_metrics": { "coefficient_of_variation": 16.99742255092369, "depth": 10, "error_10th_percentile": 3688.725341796875, "error_25th_percentile": 9737.8125, "error_50th_percentile": 21759.375, "error_75th_percentile": 45430.875, "error_90th_percentile": 92112.4609375, "error_95th_percentile": 144206.015625, "forecast_std_dev": 97265.1796875, "mae": 43566.65234375, "mape": 6.9358367919921875, "mean_bias": -3844.403076171875, "median_bias": 354.96875, "median_mape": 4.634822845458984, "min_leaf": 1, "min_split": 4, "mse": 9475287040.0, "n_testing_samples": 14105, "n_training_samples": 56420, "over_prediction_rate": 50.47146401985112, "pct_error_10th": 0.820715606212616, "pct_error_90th": 14.39738941192627, "rmse": 97341.0859375, "testing_r_squared": 0.95, "training_date": "2025-07-03 10:31:45 UTC", "training_r_squared": 0.99, "trees": 91, "under_prediction_rate": 49.52853598014889, "within_10_pct": 79.90783410138249, "within_15_pct": 90.79049982275788, "within_20_pct": 95.28535980148884, "within_5_pct": 53.05210918114144 }, "value": 631400.5625 }, "image": "bd9c6fb24c31c772_f7b6eb", "latitude": 51.03819274902344, "longitude": -114.07510375976562, "property_id": "bd9c6fb24c31c772", "province": "AB", "valuation_date": "2025-07-05" }, "error": "", "price_quote": false, "time_ms": 149 }
curl -X GET "https://api.houski.ca/avm?api_key=YOUR_API_KEY&bathroom_full=2&bedroom=3&construction_year=2015&interior_sq_m=150&latitude=43.6532&longitude=-79.3832&property_type=House"
const houski_avm_hypothetical_data = async (): Promise<AvmResponse> => { // You must copy the AvmResponse type declarations from the // Houski API documentation to strongly type the response const url = new URL('https://api.houski.ca/avm'); url.searchParams.set('api_key', 'YOUR_API_KEY'); url.searchParams.set('bathroom_full', '2'); url.searchParams.set('bedroom', '3'); url.searchParams.set('construction_year', '2015'); url.searchParams.set('interior_sq_m', '150'); url.searchParams.set('latitude', '43.6532'); url.searchParams.set('longitude', '-79.3832'); url.searchParams.set('property_type', 'House'); const response = await fetch(url); const data = await response.json(); return data; } (async () => { let data: AvmResponse = await houski_avm_hypothetical_data(); // Log the response console.log(data); })();
interface AvmResponse { url: string; data: AvmValuation; error: string; time_ms: number; cost_cents: number; price_quote: boolean; }