!

Recipes

This page contains examples of common use cases for the Houski API.

You can copy and paste the code examples into your own application.

Programming language

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

Choose a recipe


Get permits, assessments and listings inside a polygon
In this example, we are retrieving properties that have permit data inside a geographic polygon. Properties with permit, assessment, or listing data will be returned when using the filter_expand_match_any parameter.
Request
Shell session
curl -X GET "https://api.houski.ca/properties?api_key=YOUR_API_KEY&country_abbreviation=ca&expand=permits,assessments,listings&filter_expand_match=any&polygon=51.0447_-114.0719,51.0544_-114.0719,51.0544_-114.0856,51.0452_-114.0856&province_abbreviation=ab&results_per_page=3"
TypeScript code
const houski_recipe_data = async (): Promise<PropertiesResponse> => {

    // You must copy the PropertiesResponse type declarations from the 
    // Houski API documentation to strongly type the response

    const url = new URL('https://api.houski.ca/properties');
    url.searchParams.set('api_key', 'YOUR_API_KEY');
    url.searchParams.set('country_abbreviation', 'ca');
    url.searchParams.set('expand', 'permits,assessments,listings');
    url.searchParams.set('filter_expand_match', 'any');
    url.searchParams.set('polygon', '51.0447_-114.0719,51.0544_-114.0719,51.0544_-114.0856,51.0452_-114.0856');
    url.searchParams.set('province_abbreviation', 'ab');
    url.searchParams.set('results_per_page', '3');

    const response = await fetch(url);
    const data = await response.json();

    return data;
}

(async () => {
let data: PropertiesResponse = await houski_recipe_data();

// Log the response
console.log(data);
})();
Response
JSON
{
  "cache_hit": false,
  "cost_cents": 0.8500000238418579,
  "data": [
    {
      "address": "1001 730 2 Avenue SW",
      "assessments": [
        {
          "expand_assessment_value": 163500,
          "expand_assessment_year": 2025,
          "property_id": "100f44b3b8d53d1c"
        }
      ],
      "listings": [
        {
          "expand_estimate_list_price": 486000,
          "expand_listing_date": "2025-02-09",
          "expand_listing_event": "Listed",
          "property_id": "100f44b3b8d53d1c"
        },
        {
          "expand_estimate_list_price": 460000,
          "expand_listing_date": "2025-02-27",
          "expand_listing_event": "Price decrease",
          "property_id": "100f44b3b8d53d1c"
        },
        {
          "expand_estimate_list_price": 438000,
          "expand_listing_date": "2025-03-31",
          "expand_listing_event": "Price decrease",
          "property_id": "100f44b3b8d53d1c"
        },
        {
          "expand_estimate_list_price": 408000,
          "expand_listing_date": "2025-05-01",
          "expand_listing_event": "Price decrease",
          "property_id": "100f44b3b8d53d1c"
        },
        {
          "expand_estimate_list_price": 408000,
          "expand_listing_date": "2025-05-08",
          "expand_listing_event": "Unlisted",
          "property_id": "100f44b3b8d53d1c"
        }
      ],
      "property_id": "100f44b3b8d53d1c"
    },
    {
      "address": "1011 730 2 Avenue SW",
      "assessments": [
        {
          "expand_assessment_value": 329000,
          "expand_assessment_year": 2025,
          "property_id": "101128bee33095ce"
        }
      ],
      "property_id": "101128bee33095ce"
    },
    {
      "address": "1702 909 7 Avenue SW",
      "assessments": [
        {
          "expand_assessment_value": 75000,
          "expand_assessment_year": 2005,
          "property_id": "10182bd1da061c7e"
        },
        {
          "expand_assessment_value": 66000,
          "expand_assessment_year": 2006,
          "property_id": "10182bd1da061c7e"
        },
        {
          "expand_assessment_value": 104500,
          "expand_assessment_year": 2007,
          "property_id": "10182bd1da061c7e"
        },
        {
          "expand_assessment_value": 108500,
          "expand_assessment_year": 2008,
          "property_id": "10182bd1da061c7e"
        },
        {
          "expand_assessment_value": 123500,
          "expand_assessment_year": 2009,
          "property_id": "10182bd1da061c7e"
        },
        {
          "expand_assessment_value": 103000,
          "expand_assessment_year": 2010,
          "property_id": "10182bd1da061c7e"
        },
        {
          "expand_assessment_value": 105500,
          "expand_assessment_year": 2011,
          "property_id": "10182bd1da061c7e"
        },
        {
          "expand_assessment_value": 106500,
          "expand_assessment_year": 2012,
          "property_id": "10182bd1da061c7e"
        },
        {
          "expand_assessment_value": 107500,
          "expand_assessment_year": 2013,
          "property_id": "10182bd1da061c7e"
        },
        {
          "expand_assessment_value": 111000,
          "expand_assessment_year": 2014,
          "property_id": "10182bd1da061c7e"
        },
        {
          "expand_assessment_value": 117500,
          "expand_assessment_year": 2015,
          "property_id": "10182bd1da061c7e"
        },
        {
          "expand_assessment_value": 116000,
          "expand_assessment_year": 2016,
          "property_id": "10182bd1da061c7e"
        },
        {
          "expand_assessment_value": 111000,
          "expand_assessment_year": 2017,
          "property_id": "10182bd1da061c7e"
        },
        {
          "expand_assessment_value": 103500,
          "expand_assessment_year": 2018,
          "property_id": "10182bd1da061c7e"
        },
        {
          "expand_assessment_value": 99000,
          "expand_assessment_year": 2019,
          "property_id": "10182bd1da061c7e"
        },
        {
          "expand_assessment_value": 91500,
          "expand_assessment_year": 2020,
          "property_id": "10182bd1da061c7e"
        },
        {
          "expand_assessment_value": 85500,
          "expand_assessment_year": 2021,
          "property_id": "10182bd1da061c7e"
        },
        {
          "expand_assessment_value": 133000,
          "expand_assessment_year": 2025,
          "property_id": "10182bd1da061c7e"
        }
      ],
      "property_id": "10182bd1da061c7e"
    }
  ],
  "error": "",
  "pagination": {
    "current_page": 1,
    "has_next_page": true,
    "has_previous_page": false,
    "page_total": 838
  },
  "price_quote": false,
  "result_total": 2514,
  "time_ms": 1578,
  "ui_info": {
    "country": "Canada",
    "country_abbreviation": "CA",
    "country_abbreviation_id": "9ace2b6431b7f1be",
    "country_abbreviation_link": "ca",
    "country_slug": "canada",
    "province": "Alberta",
    "province_abbreviation": "AB",
    "province_abbreviation_id": "aae1f05a0f89d2c7",
    "province_abbreviation_link": "ca/ab",
    "province_slug": "alberta"
  }
}