!

API recipes

Practical examples for using the Houski API.

Examples

Look up a property and its data provenance

Programming language

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

Look up one property and see where its data comes from
Fetch a single property by its property ID and pair each value with its source field. A source of Document means the value is backed by an official record, while Estimate means it was inferred by our models. Source fields also work as filters, as in construction_year_source_eq=Document, to keep only document-backed results.
Request
Shell session
curl -X GET "https://api.houski.ca/properties?api_key=YOUR_API_KEY&property_id_eq=10000f97f5cb7b9f&select=address,property_type,bedroom,bathroom_full,construction_year,construction_year_source,interior_sq_m,interior_sq_m_source,land_area_sq_m,land_area_sq_m_source,zoning,zoning_source,community,community_source"
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('property_id_eq', '10000f97f5cb7b9f');
    url.searchParams.set('select', 'address,property_type,bedroom,bathroom_full,construction_year,construction_year_source,interior_sq_m,interior_sq_m_source,land_area_sq_m,land_area_sq_m_source,zoning,zoning_source,community,community_source');

    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.6899999380111694,
  "data": [
    {
      "address": "31 Hawkside Park NW",
      "bathroom_full": 3,
      "bedroom": 3,
      "community": "Hawkwood",
      "community_source": "Document",
      "construction_year": 1988,
      "construction_year_source": "Document",
      "interior_sq_m": 126.34708404541016,
      "interior_sq_m_source": "Estimate",
      "land_area_sq_m": 13583.0,
      "land_area_sq_m_source": "Document",
      "property_id": "10000f97f5cb7b9f",
      "property_type": "Duplex",
      "zoning": "DC",
      "zoning_source": "Document"
    }
  ],
  "error": "",
  "pagination": {
    "current_page": 1,
    "has_next_page": false,
    "has_previous_page": false,
    "page_total": 1
  },
  "price_quote": false,
  "result_total": 1,
  "time_ms": 25,
  "ui_info": {
    "address": "31 Hawkside Park NW",
    "address_link": "ca/ab/calgary/hawkwood/31-hawkside-park-nw",
    "address_slug": "31-hawkside-park-nw",
    "city": "Calgary",
    "city_id": "6ec95b53075d062c",
    "city_link": "ca/ab/calgary",
    "city_slug": "calgary",
    "community": "Hawkwood",
    "community_id": "a24d70d6b3b3ea53",
    "community_link": "ca/ab/calgary/hawkwood",
    "community_slug": "hawkwood",
    "country": "Canada",
    "country_abbreviation": "CA",
    "country_abbreviation_id": "9ace2b6431b7f1be",
    "country_abbreviation_link": "ca",
    "country_slug": "canada",
    "property_id": "10000f97f5cb7b9f",
    "province": "Alberta",
    "province_abbreviation": "AB",
    "province_abbreviation_id": "aae1f05a0f89d2c7",
    "province_abbreviation_link": "ca/ab",
    "province_slug": "alberta"
  }
}