API recipes

Requests you can copy and run. Each one returns live data from the API.

Examples

Find properties by assessment value range

Programming language

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

Get properties assessed between a range of values
Pull Calgary houses with an assessment between $500,000 and $600,000. filter_expand_match=all returns only properties with assessment data, selecting city, province, community and floor area, 3 per page.
Request
Shell session
curl -X GET "https://api.houski.ca/properties?api_key=YOUR_API_KEY&city=calgary&country_abbreviation=ca&expand=assessments&expand_assessment_value_gte=500000&expand_assessment_value_lte=600000&filter_expand_match=all&page=1&property_type_eq=House&province_abbreviation=ab&results_per_page=3&select=city,province,community,interior_sq_m"
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('city', 'calgary');
    url.searchParams.set('country_abbreviation', 'ca');
    url.searchParams.set('expand', 'assessments');
    url.searchParams.set('expand_assessment_value_gte', '500000');
    url.searchParams.set('expand_assessment_value_lte', '600000');
    url.searchParams.set('filter_expand_match', 'all');
    url.searchParams.set('page', '1');
    url.searchParams.set('property_type_eq', 'House');
    url.searchParams.set('province_abbreviation', 'ab');
    url.searchParams.set('results_per_page', '3');
    url.searchParams.set('select', 'city,province,community,interior_sq_m');

    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": true,
  "cost_cents": 0.75,
  "data": [
    {
      "address": "370 Rowley Way NW",
      "assessments": [
        {
          "expand_assessment_value": 523500,
          "expand_assessment_year": 2023,
          "property_id": "132a75dd38341a25"
        }
      ],
      "city": "Calgary",
      "community": "Haskayne",
      "interior_sq_m": 285.02414,
      "property_id": "132a75dd38341a25",
      "province": "Alberta"
    },
    {
      "address": "70 Rowmont Garden NW",
      "assessments": [
        {
          "expand_assessment_value": 558000,
          "expand_assessment_year": 2025,
          "property_id": "182a8d4ba841fbdf"
        }
      ],
      "city": "Calgary",
      "community": "Haskayne",
      "interior_sq_m": 169.45374,
      "property_id": "182a8d4ba841fbdf",
      "province": "Alberta"
    },
    {
      "address": "27 Royston Park NW",
      "assessments": [
        {
          "expand_assessment_value": 530500,
          "expand_assessment_year": 2025,
          "property_id": "1937026e92db962a"
        }
      ],
      "city": "Calgary",
      "community": "Haskayne",
      "interior_sq_m": 170.28986,
      "property_id": "1937026e92db962a",
      "province": "Alberta"
    }
  ],
  "error": "",
  "pagination": {
    "current_page": 1,
    "has_next_page": true,
    "has_previous_page": false,
    "page_total": 76491
  },
  "price_quote": false,
  "result_total": 229471,
  "time_ms": 9073,
  "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"
  }
}