!

/avm

GET
https://api.houski.ca/avm
THIS ENDPOINT IS IN BETA. WE ARE ACTIVELY DEVELOPING IT. IT WORKS, BUT LIKELY WILL CHANGE A BIT. :)
Please note, this endpoint costs $5.00 per request as it generates a full AVM of list, sale and rent price as well as a report.

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.

Example use cases

  1. Property investors evaluating potential acquisitions
  2. Mortgage lenders assessing collateral value for loan underwriting
  3. Property management companies setting competitive rental rates
  4. Insurance companies determining replacement costs
  5. Tax assessors updating property assessments
  6. Portfolio managers tracking asset values over time

Request parameters

NameRequiredTypeDescription
api_keyYesUUID v4Your API key for authorization
property_idNo*StringThe unique identifier for the property to value. Required unless latitude/longitude are provided.
latitudeNo*FloatLatitude coordinate for hypothetical property valuation. Required with longitude if property_id not provided.
longitudeNo*FloatLongitude coordinate for hypothetical property valuation. Required with latitude if property_id not provided.
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_msNumberTime taken for the request to complete in milliseconds
cost_centsNumberCost 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_idStringThe property identifier
imageStringProperty image URL
addressStringProperty address
countryStringCountry abbreviation
provinceStringProvince/state abbreviation
latitudeNumberProperty latitude coordinate
longitudeNumberProperty 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_totalNumberTotal 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 (list price, sale price, rent) includes:

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

AvmComparableProperty object

NameTypeDescription
addressStringProperty address
imageStringProperty image URL
latitudeNumberLatitude coordinate
longitudeNumberLongitude coordinate
distance_kmNumberDistance from target property in kilometers
list_priceNumberOriginal listing price
estimate_sale_date_soldStringDate when the property was sold (YYYY-MM-DD)

Example requests and responses

Programming language

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

Get comprehensive property valuation with custom overrides
The AVM endpoint provides automated valuation model estimates for list price, sale price, and monthly rent.
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 = 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);
})();
Response
JSON
{
  "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
}
Get valuation for hypothetical property with custom characteristics
The AVM endpoint provides automated valuation model estimates using coordinates and property characteristics.
Request
Shell session
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"
TypeScript code
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);
})();
Response
Failed to parse JSON response

Response type declarations

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