!

Expanding

Many properties have extra data sets beyond the regular fields, such as an expansion set with assessment history.

Use the expand query parameter. For assessment data: ?expand=assessments

Specify multiple expansions with commas. For assessments and permits: ?expand=assessments,permits

The available expansions are assessments, listings, listings_rent, and permits. See each set's fields on the fields & expansions page.

Not all properties have every expansion set. Missing expansions return an empty array.

To return only properties that have an expansion set, filter on the matching boolean field: has_expand_listings, has_expand_listings_rent, has_expand_permits, or has_expand_assessments. For example, ?has_expand_permits_eq=true returns only properties with permit records. These are fast indexed filters on the property record itself, so they are much cheaper and faster than expanding a data set just to drop properties with empty arrays. See the filtering page for details.

Pricing varies per expansion and is the per-set cost multiplied by rows returned.

Programming language

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

Expanding a property's assessment data
property_id and address are expanded by default by the properties endpoint.
Request
Shell session
curl -X GET "https://api.houski.ca/properties?api_key=YOUR_API_KEY&city=calgary&country_abbreviation=ca&expand=assessments&province_abbreviation=ab"
TypeScript code
const houski_properties_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('city', 'calgary');
    url.searchParams.set('country_abbreviation', 'ca');
    url.searchParams.set('expand', 'assessments');
    url.searchParams.set('province_abbreviation', 'ab');

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

    return data;
}

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

// Log the response
console.log(data);
})();
Response
JSON
{
  "cache_hit": false,
  "cost_cents": 0.19999998807907104,
  "data": [
    {
      "address": "31 Hawkside Park NW",
      "assessments": [
        {
          "expand_assessment_value": 648500,
          "expand_assessment_year": 2026,
          "property_id": "10000f97f5cb7b9f"
        },
        {
          "expand_assessment_value": 476000,
          "expand_assessment_year": 2014,
          "property_id": "10000f97f5cb7b9f"
        }
      ],
      "property_id": "10000f97f5cb7b9f"
    },
    {
      "address": "6 1744 7 Street SW",
      "property_id": "10004f7afe0c1946"
    },
    {
      "address": "384 Copperpond Landng SE",
      "property_id": "10007f9761f49940"
    },
    {
      "address": "239 Dalhurst Way NW",
      "assessments": [
        {
          "expand_assessment_value": 1110000,
          "expand_assessment_year": 2026,
          "property_id": "100086f6bc064d3f"
        },
        {
          "expand_assessment_value": 710500,
          "expand_assessment_year": 2014,
          "property_id": "100086f6bc064d3f"
        }
      ],
      "property_id": "100086f6bc064d3f"
    },
    {
      "address": "52 Cedargrove Way SW",
      "assessments": [
        {
          "expand_assessment_value": 662000,
          "expand_assessment_year": 2026,
          "property_id": "1000c277cd905d3b"
        },
        {
          "expand_assessment_value": 516500,
          "expand_assessment_year": 2014,
          "property_id": "1000c277cd905d3b"
        }
      ],
      "property_id": "1000c277cd905d3b"
    },
    {
      "address": "28 Sundown Gr SE",
      "assessments": [
        {
          "expand_assessment_value": 692500,
          "expand_assessment_year": 2026,
          "property_id": "1001109ab2aebbc0"
        },
        {
          "expand_assessment_value": 431000,
          "expand_assessment_year": 2014,
          "property_id": "1001109ab2aebbc0"
        }
      ],
      "property_id": "1001109ab2aebbc0"
    }
  ],
  "error": "",
  "pagination": {
    "current_page": 1,
    "has_next_page": true,
    "has_previous_page": false,
    "page_total": 113490
  },
  "price_quote": false,
  "result_total": 680936,
  "time_ms": 3232,
  "ui_info": {
    "city": "Calgary",
    "city_id": "6ec95b53075d062c",
    "city_link": "ca/ab/calgary",
    "city_slug": "calgary",
    "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"
  }
}