!

/avm

GET
https://api.houski.ca/avm
$5.00 USD per request. Each call returns list, sale, and rent estimates plus a full report. Billed to your API usage when called through the API, or as a single payment when ordered from your user dashboard.

The AVM (Automated Valuation Model) endpoint returns list price, sale price, and monthly rent estimates with confidence scores and model performance metrics.

Pass a property_id to value the property. Each valuation includes R-squared values, error distributions, and hit rates within various percentage bands.

Override property characteristics via query parameters. Returns up to 10 comparable properties within 5km for market context.

Billing

AVMs called through the API are added to your API subscription as usage and appear on your next monthly invoice alongside regular API charges. They count toward your subscription's $99 USD monthly minimum. You will not be charged separately for each call.

Prefer not to integrate? Order AVMs manually from your user dashboard as a one-time $5 charge to your credit card. No API subscription required.

Example use cases

  1. Investors evaluating acquisitions
  2. Lenders assessing collateral for underwriting
  3. Property managers setting rental rates
  4. Insurers determining replacement costs
  5. Tax assessors updating assessments
  6. Portfolio managers tracking asset values

Request parameters

NameRequiredTypeDescription
api_keyYesUUID v4Your API key for authorization
property_idYesStringThe unique identifier for the property to value.
bedroomNoIntegerNumber of bedrooms (overrides property data when provided)
denNoIntegerNumber of dens (overrides property data when provided)
bathroom_fullNoIntegerNumber of full bathrooms (overrides property data when provided)
bathroom_halfNoIntegerNumber of half bathrooms (overrides property data when provided)
construction_yearNoIntegerYear the property was built (overrides property data when provided)
interior_sq_mNoFloatInterior square meters (overrides property data when provided)
property_typeNoStringProperty type (overrides property data when provided)
maintenance_feeNoFloatMonthly maintenance fee (overrides property data when provided)
garage_type_firstNoStringGarage type (overrides property data when provided)

Response object

Type declarations are available at the bottom of this page.

NameTypeDescription
dataAvmValuationContains the complete valuation data including estimates and comparables
errorStringDetails about the error. Empty if no error
time_msIntegerTime taken for the request to complete in milliseconds
cost_centsFloatCost of the API call in cents (500 cents = $5.00)
price_quoteBooleanIndicates if this is a price quote request (no charge)

AvmValuation object

NameTypeDescription
property_warning_flagsArray<AvmWarningFlag>Array of warning flags indicating potential issues with the property or valuation
interior_sq_mFloatInterior square meters
property_typeStringProperty type (House, Condo, Townhouse, etc.)
bedroomIntegerNumber of bedrooms
denIntegerNumber of dens
bathroom_fullIntegerNumber of full bathrooms
bathroom_halfIntegerNumber of half bathrooms
construction_yearIntegerYear the property was built
property_idStringThe property identifier
imageStringProperty image URL
addressStringProperty address
cityStringCity name
countryStringCountry abbreviation
provinceStringProvince/state abbreviation
latitudeFloatProperty latitude coordinate
longitudeFloatProperty longitude coordinate
estimate_list_priceAvmSingleValuationEstimated listing price with confidence score and detailed model performance metrics
estimate_sale_priceAvmSingleValuationEstimated sale price with confidence score and detailed model performance metrics
estimate_rent_monthlyAvmSingleValuationEstimated monthly rent with confidence score and detailed model performance metrics
valuation_dateStringDate the valuation was performed (YYYY-MM-DD)
comparable_properties_totalIntegerTotal number of comparable properties in the same city and type
comparable_propertiesArray<AvmComparableProperty>Up to 10 nearby comparable properties within 5km with similar size (±20%), sorted by distance

AvmSingleValuation object

Each valuation includes:

NameTypeDescription
valueFloatThe estimated value in dollars
confidence_scoreFloatConfidence percentage (0-100) based on model accuracy
model_metricsAvmModelMetricsDetailed performance metrics including R-squared, MAPE, error percentiles, and hit rates

AvmModelMetrics object

Model performance metrics per valuation type:

NameTypeDescription
Performance metrics
training_r_squaredFloatR-squared value on training data (0-1, higher is better)
testing_r_squaredFloatR-squared value on testing data (0-1, higher is better)
Error metrics
maeFloatMean Absolute Error in dollars
rmseFloatRoot Mean Square Error in dollars
mapeFloatMean Absolute Percentage Error (0-1, lower is better)
median_mapeFloatMedian Absolute Percentage Error (0-1, lower is better)
mseFloatMean Squared Error in dollars squared
Accuracy bands
within_5_pctFloatPercentage of predictions within 5% of actual value (0-1)
within_10_pctFloatPercentage of predictions within 10% of actual value (0-1)
within_15_pctFloatPercentage of predictions within 15% of actual value (0-1)
within_20_pctFloatPercentage of predictions within 20% of actual value (0-1)
Bias metrics
mean_biasFloatAverage prediction bias in dollars (positive = over-prediction)
median_biasFloatMedian prediction bias in dollars (positive = over-prediction)
over_prediction_rateFloatPercentage of predictions that are over-estimates (0-1)
under_prediction_rateFloatPercentage of predictions that are under-estimates (0-1)
Error distribution
error_10th_percentileFloat10th percentile of absolute errors in dollars
error_25th_percentileFloat25th percentile of absolute errors in dollars
error_50th_percentileFloat50th percentile (median) of absolute errors in dollars
error_75th_percentileFloat75th percentile of absolute errors in dollars
error_90th_percentileFloat90th percentile of absolute errors in dollars
error_95th_percentileFloat95th percentile of absolute errors in dollars
pct_error_10thFloat10th percentile of percentage errors (0-1)
pct_error_90thFloat90th percentile of percentage errors (0-1)
Uncertainty metrics
forecast_std_devFloatStandard deviation of prediction errors in dollars
coefficient_of_variationFloatCoefficient of variation (std dev / mean, lower is better)

AvmComparableProperty object

NameTypeDescription
addressStringProperty address
imageStringProperty image URL
latitudeFloatLatitude coordinate
longitudeFloatLongitude coordinate
distance_kmFloatDistance from target property in kilometers
list_priceIntegerOriginal listing price
estimate_sale_date_soldStringEstimated sale date in YYYY-MM-DD - Houski's model-based date for when the property likely sold. Houski does not have access to recorded sale prices or closing dates.

AvmWarningFlag object

NameTypeDescription
warningStringShort warning code or identifier
descriptionStringDetailed description of the warning or issue

Example requests and responses

Programming language

Select the programming language you want to display the code examples in.

Value a property
Pass only a property_id and the model values the property using the data already on file for it. The response includes list price, sale price, and monthly rent estimates with confidence scores and model metrics.
Request
Shell session
curl -X GET "https://api.houski.ca/avm?api_key=YOUR_API_KEY&property_id=bd9c6fb24c31c772"
TypeScript code
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('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);
})();
Response
JSON
{
  "cache_hit": true,
  "cost_cents": 500.0,
  "data": {
    "address": "302 610 17 Avenue SW",
    "bathroom_full": 1,
    "bathroom_half": 1,
    "bedroom": 2,
    "city": "Calgary",
    "comparable_properties": [
      {
        "address": "402 610 17 Avenue SW",
        "distance_km": 0.0,
        "estimate_sale_date_sold": "2025-02-07",
        "image": "589c5b211ab31176_46d18d02",
        "interior_sq_m": 91.88034057617188,
        "latitude": 51.03819274902344,
        "list_price": 295000,
        "longitude": -114.07510375976562
      },
      {
        "address": "101 523 15 Avenue SW",
        "distance_km": 0.15573714673519137,
        "estimate_sale_date_sold": "2023-08-29",
        "image": "6d3f02fca68d547e_b6f2526e",
        "interior_sq_m": 91.9732437133789,
        "latitude": 51.0385856628418,
        "list_price": 288888,
        "longitude": -114.07293701171876
      },
      {
        "address": "1105 1209 6 Street SW",
        "distance_km": 0.39864420890808105,
        "estimate_sale_date_sold": "2023-08-23",
        "image": "59eb4d7ffd625770_807d4658",
        "interior_sq_m": 92.99517059326172,
        "latitude": 51.04155349731445,
        "list_price": 299900,
        "longitude": -114.07714080810548
      },
      {
        "address": "109 545 18 Avenue SW",
        "distance_km": 0.19652090966701508,
        "estimate_sale_date_sold": "2025-09-03",
        "image": "703794262c3f0a6f_ae0e2846",
        "interior_sq_m": 94.10999298095705,
        "latitude": 51.03668594360352,
        "list_price": 319900,
        "longitude": -114.0736083984375
      },
      {
        "address": "401 1209 6 Street SW",
        "distance_km": 0.39864420890808105,
        "estimate_sale_date_sold": "2024-01-18",
        "image": "add60c129cc174c8_15dc7a7e",
        "interior_sq_m": 92.90226745605467,
        "latitude": 51.04155349731445,
        "list_price": 294000,
        "longitude": -114.07714080810548
      },
      {
        "address": "500 610 17 Avenue SW",
        "distance_km": 0.0,
        "estimate_sale_date_sold": "2023-05-17",
        "image": "fb81bd27e5d3b319_860c3dd6",
        "interior_sq_m": 93.36677551269533,
        "latitude": 51.03819274902344,
        "list_price": 324900,
        "longitude": -114.07510375976562
      },
      {
        "address": "701 1209 6 Street SW",
        "distance_km": 0.39864420890808105,
        "estimate_sale_date_sold": "2024-04-04",
        "image": "27170c00d68d56c5_a08329a3",
        "interior_sq_m": 94.48160552978516,
        "latitude": 51.04155349731445,
        "list_price": 314900,
        "longitude": -114.07714080810548
      },
      {
        "address": "504 616 15 Avenue SW",
        "distance_km": 0.11205749213695526,
        "estimate_sale_date_sold": "2025-07-04",
        "image": "e731e220553c9548_88738769",
        "interior_sq_m": 87.79264068603516,
        "latitude": 51.03919219970703,
        "list_price": 289900,
        "longitude": -114.07533264160156
      },
      {
        "address": "203 330 15 Avenue SW",
        "distance_km": 0.35846400260925293,
        "estimate_sale_date_sold": "2024-05-13",
        "image": "9bfb40e46e0da97_57c6d01e",
        "interior_sq_m": 90.20809936523438,
        "latitude": 51.039058685302734,
        "list_price": 318800,
        "longitude": -114.07009887695312
      },
      {
        "address": "305 1209 6 Street SW",
        "distance_km": 0.39864420890808105,
        "estimate_sale_date_sold": "2024-08-04",
        "image": "1119eb5e5c0e6dd6_9dfcbaf5",
        "interior_sq_m": 94.2957992553711,
        "latitude": 51.04155349731445,
        "list_price": 290000,
        "longitude": -114.07714080810548
      }
    ],
    "comparable_properties_total": 26446,
    "construction_year": 1979,
    "country": "Canada",
    "den": 0,
    "estimate_list_price": {
      "confidence_score": 95.37734985351562,
      "model_metrics": {
        "coefficient_of_variation": 21.297779888460052,
        "error_10th_percentile": 3827.418701171875,
        "error_25th_percentile": 9674.828125,
        "error_50th_percentile": 23070.7421875,
        "error_75th_percentile": 47898.9296875,
        "error_90th_percentile": 92634.5625,
        "error_95th_percentile": 148044.328125,
        "forecast_std_dev": 128036.875,
        "mae": 47591.03125,
        "mape": 6.9191975593566895,
        "mean_bias": -5065.5068359375,
        "median_bias": 430.265625,
        "median_mape": 4.622647285461426,
        "mse": 16419014656.0,
        "over_prediction_rate": 50.56352952509392,
        "pct_error_10th": 0.825827956199646,
        "pct_error_90th": 14.368406295776367,
        "rmse": 128136.703125,
        "testing_r_squared": 0.95,
        "training_r_squared": 0.98,
        "under_prediction_rate": 49.43647047490608,
        "within_10_pct": 80.1416048550236,
        "within_15_pct": 90.8823812734804,
        "within_20_pct": 95.21722377420288,
        "within_5_pct": 53.00067430883345
      },
      "value": 304696.46875
    },
    "estimate_rent_monthly": {
      "confidence_score": 84.40579986572266,
      "model_metrics": {
        "coefficient_of_variation": 74.19626193400119,
        "error_10th_percentile": 11197.140625,
        "error_25th_percentile": 29858.390625,
        "error_50th_percentile": 73107.78125,
        "error_75th_percentile": 163402.125,
        "error_90th_percentile": 341056.21875,
        "error_95th_percentile": 550266.6875,
        "forecast_std_dev": 451020.15625,
        "mae": 168982.734375,
        "mape": 33.335357666015625,
        "mean_bias": -57108.90234375,
        "median_bias": -1695.578125,
        "median_mape": 15.594200134277344,
        "mse": 206676312064.0,
        "over_prediction_rate": 49.18625,
        "pct_error_10th": 2.5083909034729004,
        "pct_error_90th": 66.41152954101562,
        "rmse": 454616.65625,
        "testing_r_squared": 0.72,
        "training_r_squared": 0.82,
        "under_prediction_rate": 50.81375,
        "within_10_pct": 36.0375,
        "within_15_pct": 48.791250000000005,
        "within_20_pct": 58.3375,
        "within_5_pct": 19.635
      },
      "value": 2113.846923828125
    },
    "estimate_sale_price": {
      "confidence_score": 95.3768310546875,
      "model_metrics": {
        "coefficient_of_variation": 21.802883473823258,
        "error_10th_percentile": 3706.49365234375,
        "error_25th_percentile": 9493.46875,
        "error_50th_percentile": 22532.15625,
        "error_75th_percentile": 47268.0703125,
        "error_90th_percentile": 93783.46875,
        "error_95th_percentile": 150844.203125,
        "forecast_std_dev": 127978.265625,
        "mae": 47541.25,
        "mape": 7.054271221160889,
        "mean_bias": -4664.0380859375,
        "median_bias": 475.828125,
        "median_mape": 4.623165130615234,
        "mse": 16400123904.0,
        "over_prediction_rate": 50.63577690010597,
        "pct_error_10th": 0.8310901522636414,
        "pct_error_90th": 14.612176895141602,
        "rmse": 128062.96875,
        "testing_r_squared": 0.95,
        "training_r_squared": 0.99,
        "under_prediction_rate": 49.36422309989404,
        "within_10_pct": 79.77555148829593,
        "within_15_pct": 90.50187843175031,
        "within_20_pct": 94.70185916578365,
        "within_5_pct": 53.04402273384067
      },
      "value": 293364.59375
    },
    "image": "bd9c6fb24c31c772_7e931788",
    "interior_sq_m": 92.43848419189452,
    "latitude": 51.03819274902344,
    "longitude": -114.07510375976562,
    "price_history": [
      {
        "date": "2025-02-18",
        "estimate_list_price": 328939.625,
        "estimate_rent_monthly": 2109.8994140625,
        "estimate_sale_price": 303350.5625
      },
      {
        "date": "2025-03-20",
        "estimate_list_price": 329062.625,
        "estimate_rent_monthly": 2109.8994140625,
        "estimate_sale_price": 304171.25
      },
      {
        "date": "2025-04-19",
        "estimate_list_price": 329062.625,
        "estimate_rent_monthly": 2109.8994140625,
        "estimate_sale_price": 304964.21875
      },
      {
        "date": "2025-05-19",
        "estimate_list_price": 335027.4375,
        "estimate_rent_monthly": 2109.8994140625,
        "estimate_sale_price": 311037.21875
      },
      {
        "date": "2025-06-18",
        "estimate_list_price": 333825.6875,
        "estimate_rent_monthly": 2109.8994140625,
        "estimate_sale_price": 314355.09375
      },
      {
        "date": "2025-07-18",
        "estimate_list_price": 332129.96875,
        "estimate_rent_monthly": 2109.8994140625,
        "estimate_sale_price": 315810.03125
      },
      {
        "date": "2025-08-17",
        "estimate_list_price": 331247.09375,
        "estimate_rent_monthly": 2109.8994140625,
        "estimate_sale_price": 313273.1875
      },
      {
        "date": "2025-09-16",
        "estimate_list_price": 322242.5,
        "estimate_rent_monthly": 2109.8994140625,
        "estimate_sale_price": 307987.21875
      },
      {
        "date": "2025-10-16",
        "estimate_list_price": 310982.65625,
        "estimate_rent_monthly": 2113.846923828125,
        "estimate_sale_price": 304819.40625
      },
      {
        "date": "2025-11-15",
        "estimate_list_price": 310966.9375,
        "estimate_rent_monthly": 2113.846923828125,
        "estimate_sale_price": 309683.09375
      },
      {
        "date": "2025-12-15",
        "estimate_list_price": 310966.9375,
        "estimate_rent_monthly": 2113.846923828125,
        "estimate_sale_price": 308561.96875
      },
      {
        "date": "2026-01-14",
        "estimate_list_price": 303210.59375,
        "estimate_rent_monthly": 2113.846923828125,
        "estimate_sale_price": 304967.40625
      },
      {
        "date": "2026-02-13",
        "estimate_list_price": 302817.875,
        "estimate_rent_monthly": 2113.846923828125,
        "estimate_sale_price": 298701.09375
      },
      {
        "date": "2026-03-15",
        "estimate_list_price": 303162.3125,
        "estimate_rent_monthly": 2113.846923828125,
        "estimate_sale_price": 298037.53125
      },
      {
        "date": "2026-04-14",
        "estimate_list_price": 302872.15625,
        "estimate_rent_monthly": 2113.846923828125,
        "estimate_sale_price": 297308.53125
      },
      {
        "date": "2026-05-14",
        "estimate_list_price": 302872.15625,
        "estimate_rent_monthly": 2113.846923828125,
        "estimate_sale_price": 292016.375
      },
      {
        "date": "2026-06-13",
        "estimate_list_price": 302610.59375,
        "estimate_rent_monthly": 2113.846923828125,
        "estimate_sale_price": 292016.375
      },
      {
        "date": "2026-07-13",
        "estimate_list_price": 304696.46875,
        "estimate_rent_monthly": 2113.846923828125,
        "estimate_sale_price": 293364.59375
      },
      {
        "date": "2026-08-12",
        "estimate_list_price": 304696.46875,
        "estimate_rent_monthly": 2113.846923828125,
        "estimate_sale_price": 293364.59375
      }
    ],
    "property_id": "bd9c6fb24c31c772",
    "property_type": "Apartment",
    "property_warning_flags": [
      {
        "description": "Monthly fees run about 4% of the estimated value each year, above the typical range. High fees can weigh on resale.",
        "warning": "High monthly fees"
      },
      {
        "description": "This property appears to have been converted between residential and commercial use. Conversions can carry permit, zoning, and insurance complications worth confirming.",
        "warning": "Use conversion"
      }
    ],
    "province": "Alberta",
    "score_air_quality": 6,
    "score_bicycle": 9,
    "score_cell_coverage": 10,
    "score_curb_appeal": 4,
    "score_earthquake": 9,
    "score_education": 9,
    "score_entertainment": 10,
    "score_family": 0,
    "score_fire": 9,
    "score_flood": 9,
    "score_food_and_drink": 10,
    "score_hurricane": 10,
    "score_internet": 10,
    "score_nature": 6,
    "score_parking": 8,
    "score_quiet": 2,
    "score_retirement": 0,
    "score_safety": 6,
    "score_shopping": 9,
    "score_smell": 4,
    "score_tornado": 8,
    "score_total": 7,
    "score_total_percent": 0.6960000395774841,
    "score_traffic": 0,
    "score_transit": 9,
    "score_walkability": 10,
    "score_water_quality": 7,
    "valuation_date": "2026-08-12"
  },
  "error": "",
  "price_quote": false,
  "time_ms": 656,
  "url": "https://www.houski.ca/avm-report/bd9c6fb24c31c772_a49b86c7"
}
Value a property using your own data
Override the supported property characteristics, such as bedrooms, interior size, or year built, and the model values the property exactly as you describe it. The response includes the same list price, sale price, and monthly rent estimates with confidence scores and metrics.
Request
Shell session
curl -X GET "https://api.houski.ca/avm?api_key=YOUR_API_KEY&bedroom=4&interior_sq_m=200.5&property_id=bd9c6fb24c31c772"
TypeScript code
const houski_avm_data_with_overrides = 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_with_overrides();

// Log the response
console.log(data);
})();
Response
JSON
{
  "cache_hit": false,
  "cost_cents": 500.0,
  "data": {
    "address": "302 610 17 Avenue SW",
    "bathroom_full": 1,
    "bathroom_half": 1,
    "bedroom": 4,
    "city": "Calgary",
    "comparable_properties": [
      {
        "address": "1702 1100 8 Avenue SW",
        "distance_km": 1.2223594188690186,
        "estimate_sale_date_sold": "2023-03-22",
        "image": "551cc5dd7c1e07a2_4f36f538",
        "interior_sq_m": 172.89111328125,
        "latitude": 51.04650115966797,
        "list_price": 375000,
        "longitude": -114.08673095703124
      },
      {
        "address": "608 1100 8 Avenue SW",
        "distance_km": 1.2223594188690186,
        "estimate_sale_date_sold": "2025-03-25",
        "image": "18805db183dbc05f_b11e7d30",
        "interior_sq_m": 172.33370971679688,
        "latitude": 51.04650115966797,
        "list_price": 374900,
        "longitude": -114.08673095703124
      },
      {
        "address": "2402 1100 8 Avenue SW",
        "distance_km": 1.2223594188690186,
        "estimate_sale_date_sold": "2024-08-26",
        "image": "f5a4edb2ee198738_613aeb73",
        "interior_sq_m": 185.1542205810547,
        "latitude": 51.04650115966797,
        "list_price": 425000,
        "longitude": -114.08673095703124
      },
      {
        "address": "1002A 500 Eau Claire Avenue SW",
        "distance_km": 1.6680749654769895,
        "estimate_sale_date_sold": "2025-05-24",
        "image": "ac5d6ff8f792e640_62987ac1",
        "interior_sq_m": 163.13638305664062,
        "latitude": 51.05313873291016,
        "list_price": 400000,
        "longitude": -114.07258605957033
      },
      {
        "address": "1440 540 14 Avenue SW",
        "distance_km": 0.22966907918453217,
        "estimate_sale_date_sold": "2026-01-07",
        "image": "a9e91311d17717f_a06d58be",
        "interior_sq_m": 195.46636962890625,
        "latitude": 51.040096282958984,
        "list_price": 450000,
        "longitude": -114.07379913330078
      },
      {
        "address": "602A 500 Eau Claire Avenue SW",
        "distance_km": 1.6680749654769895,
        "estimate_sale_date_sold": "2026-06-21",
        "image": "afbf928502e6787e_5f270bde",
        "interior_sq_m": 164.90151977539062,
        "latitude": 51.05313873291016,
        "list_price": 424900,
        "longitude": -114.07258605957033
      },
      {
        "address": "2501 1100 8 Avenue SW",
        "distance_km": 1.2223594188690186,
        "estimate_sale_date_sold": "2024-06-07",
        "image": "ef49c9b0a3706ce2_7253638f",
        "interior_sq_m": 195.93087768554688,
        "latitude": 51.04650115966797,
        "list_price": 449900,
        "longitude": -114.08673095703124
      },
      {
        "address": "202A 500 Eau Claire Avenue SW",
        "distance_km": 1.6680749654769895,
        "estimate_sale_date_sold": "2025-05-08",
        "image": "7e6846f5e4e6bf6d_371c6223",
        "interior_sq_m": 163.4150848388672,
        "latitude": 51.05313873291016,
        "list_price": 425000,
        "longitude": -114.07258605957033
      },
      {
        "address": "2201 1100 8 Avenue SW",
        "distance_km": 1.2223594188690186,
        "estimate_sale_date_sold": "2025-03-25",
        "image": "ad532b0602ae5a2a_a4ee12ae",
        "interior_sq_m": 186.4548492431641,
        "latitude": 51.04650115966797,
        "list_price": 450000,
        "longitude": -114.08673095703124
      },
      {
        "address": "420 649 Marsh Road NE",
        "distance_km": 2.399594306945801,
        "estimate_sale_date_sold": "2025-05-21",
        "image": "b11e7d45073a67e4_742ee301",
        "interior_sq_m": 166.94537353515625,
        "latitude": 51.05254364013672,
        "list_price": 429900,
        "longitude": -114.0490951538086
      }
    ],
    "comparable_properties_total": 26446,
    "construction_year": 1979,
    "country": "Canada",
    "den": 0,
    "estimate_list_price": {
      "confidence_score": 95.37734985351562,
      "model_metrics": {
        "coefficient_of_variation": 21.297779888460052,
        "error_10th_percentile": 3827.418701171875,
        "error_25th_percentile": 9674.828125,
        "error_50th_percentile": 23070.7421875,
        "error_75th_percentile": 47898.9296875,
        "error_90th_percentile": 92634.5625,
        "error_95th_percentile": 148044.328125,
        "forecast_std_dev": 128036.875,
        "mae": 47591.03125,
        "mape": 6.9191975593566895,
        "mean_bias": -5065.5068359375,
        "median_bias": 430.265625,
        "median_mape": 4.622647285461426,
        "mse": 16419014656.0,
        "over_prediction_rate": 50.56352952509392,
        "pct_error_10th": 0.825827956199646,
        "pct_error_90th": 14.368406295776367,
        "rmse": 128136.703125,
        "testing_r_squared": 0.95,
        "training_r_squared": 0.98,
        "under_prediction_rate": 49.43647047490608,
        "within_10_pct": 80.1416048550236,
        "within_15_pct": 90.8823812734804,
        "within_20_pct": 95.21722377420288,
        "within_5_pct": 53.00067430883345
      },
      "value": 319682.96875
    },
    "estimate_rent_monthly": {
      "confidence_score": 84.40579986572266,
      "model_metrics": {
        "coefficient_of_variation": 74.19626193400119,
        "error_10th_percentile": 11197.140625,
        "error_25th_percentile": 29858.390625,
        "error_50th_percentile": 73107.78125,
        "error_75th_percentile": 163402.125,
        "error_90th_percentile": 341056.21875,
        "error_95th_percentile": 550266.6875,
        "forecast_std_dev": 451020.15625,
        "mae": 168982.734375,
        "mape": 33.335357666015625,
        "mean_bias": -57108.90234375,
        "median_bias": -1695.578125,
        "median_mape": 15.594200134277344,
        "mse": 206676312064.0,
        "over_prediction_rate": 49.18625,
        "pct_error_10th": 2.5083909034729004,
        "pct_error_90th": 66.41152954101562,
        "rmse": 454616.65625,
        "testing_r_squared": 0.72,
        "training_r_squared": 0.82,
        "under_prediction_rate": 50.81375,
        "within_10_pct": 36.0375,
        "within_15_pct": 48.791250000000005,
        "within_20_pct": 58.3375,
        "within_5_pct": 19.635
      },
      "value": 2548.763916015625
    },
    "estimate_sale_price": {
      "confidence_score": 95.3768310546875,
      "model_metrics": {
        "coefficient_of_variation": 21.802883473823258,
        "error_10th_percentile": 3706.49365234375,
        "error_25th_percentile": 9493.46875,
        "error_50th_percentile": 22532.15625,
        "error_75th_percentile": 47268.0703125,
        "error_90th_percentile": 93783.46875,
        "error_95th_percentile": 150844.203125,
        "forecast_std_dev": 127978.265625,
        "mae": 47541.25,
        "mape": 7.054271221160889,
        "mean_bias": -4664.0380859375,
        "median_bias": 475.828125,
        "median_mape": 4.623165130615234,
        "mse": 16400123904.0,
        "over_prediction_rate": 50.63577690010597,
        "pct_error_10th": 0.8310901522636414,
        "pct_error_90th": 14.612176895141602,
        "rmse": 128062.96875,
        "testing_r_squared": 0.95,
        "training_r_squared": 0.99,
        "under_prediction_rate": 49.36422309989404,
        "within_10_pct": 79.77555148829593,
        "within_15_pct": 90.50187843175031,
        "within_20_pct": 94.70185916578365,
        "within_5_pct": 53.04402273384067
      },
      "value": 323240.375
    },
    "image": "bd9c6fb24c31c772_7e931788",
    "interior_sq_m": 200.5,
    "latitude": 51.03819274902344,
    "longitude": -114.07510375976562,
    "price_history": [
      {
        "date": "2025-02-19",
        "estimate_list_price": 322128.84375,
        "estimate_rent_monthly": 2548.763916015625,
        "estimate_sale_price": 280230.125
      },
      {
        "date": "2025-03-21",
        "estimate_list_price": 322249.28125,
        "estimate_rent_monthly": 2548.763916015625,
        "estimate_sale_price": 280988.28125
      },
      {
        "date": "2025-04-20",
        "estimate_list_price": 322249.28125,
        "estimate_rent_monthly": 2548.763916015625,
        "estimate_sale_price": 280988.28125
      },
      {
        "date": "2025-05-20",
        "estimate_list_price": 330380.46875,
        "estimate_rent_monthly": 2548.763916015625,
        "estimate_sale_price": 289360.0625
      },
      {
        "date": "2025-06-19",
        "estimate_list_price": 330567.34375,
        "estimate_rent_monthly": 2548.763916015625,
        "estimate_sale_price": 289360.0625
      },
      {
        "date": "2025-07-19",
        "estimate_list_price": 329408.9375,
        "estimate_rent_monthly": 2548.763916015625,
        "estimate_sale_price": 291161.84375
      },
      {
        "date": "2025-08-18",
        "estimate_list_price": 328205.125,
        "estimate_rent_monthly": 2548.763916015625,
        "estimate_sale_price": 289474.875
      },
      {
        "date": "2025-09-17",
        "estimate_list_price": 327769.40625,
        "estimate_rent_monthly": 2548.763916015625,
        "estimate_sale_price": 291683.21875
      },
      {
        "date": "2025-10-17",
        "estimate_list_price": 319315.8125,
        "estimate_rent_monthly": 2548.763916015625,
        "estimate_sale_price": 287716.71875
      },
      {
        "date": "2025-11-16",
        "estimate_list_price": 319221.125,
        "estimate_rent_monthly": 2548.763916015625,
        "estimate_sale_price": 298913.6875
      },
      {
        "date": "2025-12-16",
        "estimate_list_price": 319221.125,
        "estimate_rent_monthly": 2548.763916015625,
        "estimate_sale_price": 295986.53125
      },
      {
        "date": "2026-01-15",
        "estimate_list_price": 318932.03125,
        "estimate_rent_monthly": 2554.9892578125,
        "estimate_sale_price": 290900.65625
      },
      {
        "date": "2026-02-14",
        "estimate_list_price": 318932.03125,
        "estimate_rent_monthly": 2554.9892578125,
        "estimate_sale_price": 284923.40625
      },
      {
        "date": "2026-03-16",
        "estimate_list_price": 316447.96875,
        "estimate_rent_monthly": 2554.9892578125,
        "estimate_sale_price": 322584.4375
      },
      {
        "date": "2026-04-15",
        "estimate_list_price": 316447.96875,
        "estimate_rent_monthly": 2554.9892578125,
        "estimate_sale_price": 322584.4375
      },
      {
        "date": "2026-05-15",
        "estimate_list_price": 316447.96875,
        "estimate_rent_monthly": 2554.9892578125,
        "estimate_sale_price": 321970.03125
      },
      {
        "date": "2026-06-14",
        "estimate_list_price": 316416.0,
        "estimate_rent_monthly": 2554.9892578125,
        "estimate_sale_price": 321970.03125
      },
      {
        "date": "2026-07-14",
        "estimate_list_price": 319682.96875,
        "estimate_rent_monthly": 2548.763916015625,
        "estimate_sale_price": 323240.375
      },
      {
        "date": "2026-08-13",
        "estimate_list_price": 319682.96875,
        "estimate_rent_monthly": 2548.763916015625,
        "estimate_sale_price": 323240.375
      }
    ],
    "property_id": "bd9c6fb24c31c772",
    "property_type": "Apartment",
    "property_warning_flags": [
      {
        "description": "Monthly fees run about 4% of the estimated value each year, above the typical range. High fees can weigh on resale.",
        "warning": "High monthly fees"
      },
      {
        "description": "This property appears to have been converted between residential and commercial use. Conversions can carry permit, zoning, and insurance complications worth confirming.",
        "warning": "Use conversion"
      }
    ],
    "province": "Alberta",
    "score_air_quality": 6,
    "score_bicycle": 9,
    "score_cell_coverage": 10,
    "score_curb_appeal": 4,
    "score_earthquake": 9,
    "score_education": 9,
    "score_entertainment": 10,
    "score_family": 0,
    "score_fire": 9,
    "score_flood": 9,
    "score_food_and_drink": 10,
    "score_hurricane": 10,
    "score_internet": 10,
    "score_nature": 6,
    "score_parking": 8,
    "score_quiet": 2,
    "score_retirement": 0,
    "score_safety": 6,
    "score_shopping": 9,
    "score_smell": 4,
    "score_tornado": 8,
    "score_total": 7,
    "score_total_percent": 0.6960000395774841,
    "score_traffic": 0,
    "score_transit": 9,
    "score_walkability": 10,
    "score_water_quality": 7,
    "valuation_date": "2026-08-13"
  },
  "error": "",
  "price_quote": false,
  "time_ms": 717,
  "url": "https://www.houski.ca/avm-report/bd9c6fb24c31c772_a49b86c7"
}

Response type declarations

TypeScript code
interface AvmResponse {
    url: string;
    data: AvmValuation;
    error: string;
    time_ms: number;
    cost_cents: number;
    price_quote: boolean;
    cache_hit: boolean;
}

interface AvmValuation {
    property_warning_flags: AvmWarningFlag[];
    interior_sq_m: number;
    property_type: string;
    bedroom: u16;
    den: u16;
    bathroom_full: u16;
    bathroom_half: u16;
    construction_year: u16;
    property_id: string;
    image: string;
    address?: string | null;
    city?: string | null;
    country?: string | null;
    province?: string | null;
    latitude: number;
    longitude: number;
    estimate_list_price: AvmSingleValuation;
    estimate_sale_price: AvmSingleValuation;
    estimate_rent_monthly: AvmSingleValuation;
    price_history: Prediction[];
    valuation_date: string;
    score_air_quality?: u8 | null;
    score_bicycle?: u8 | null;
    score_cell_coverage?: u8 | null;
    score_curb_appeal?: u8 | null;
    score_earthquake?: u8 | null;
    score_education?: u8 | null;
    score_entertainment?: u8 | null;
    score_family?: u8 | null;
    score_fire?: u8 | null;
    score_flood?: u8 | null;
    score_food_and_drink?: u8 | null;
    score_hurricane?: u8 | null;
    score_internet?: u8 | null;
    score_nature?: u8 | null;
    score_parking?: u8 | null;
    score_quiet?: u8 | null;
    score_retirement?: u8 | null;
    score_safety?: u8 | null;
    score_shopping?: u8 | null;
    score_smell?: u8 | null;
    score_tornado?: u8 | null;
    score_total?: u8 | null;
    score_total_percent?: number | null;
    score_traffic?: u8 | null;
    score_transit?: u8 | null;
    score_walkability?: u8 | null;
    score_water_quality?: u8 | null;
    comparable_properties_total: number;
    comparable_properties: AvmComparableProperty[];
}

interface AvmSingleValuation {
    value: number;
    confidence_score: number;
    model_metrics: AvmModelMetrics;
}

interface AvmModelMetrics {
    training_r_squared: number;
    testing_r_squared: number;
    mae: number;
    rmse: number;
    mape: number;
    median_mape: number;
    mse: number;
    within_5_pct: number;
    within_10_pct: number;
    within_15_pct: number;
    within_20_pct: number;
    mean_bias: number;
    median_bias: number;
    over_prediction_rate: number;
    under_prediction_rate: number;
    error_10th_percentile: number;
    error_25th_percentile: number;
    error_50th_percentile: number;
    error_75th_percentile: number;
    error_90th_percentile: number;
    error_95th_percentile: number;
    pct_error_10th: number;
    pct_error_90th: number;
    forecast_std_dev: number;
    coefficient_of_variation: number;
}

interface AvmComparableProperty {
    address: string;
    image: string;
    latitude: number;
    longitude: number;
    distance_km: number;
    interior_sq_m: number;
    list_price: number;
    estimate_sale_date_sold: string;
}

interface AvmWarningFlag {
    warning: string;
    description: string;
}