!

A property data API for Canada

Every dataset we can find - assessments, permits, listings, demographics, climate risk - mapped to an address.

19M+ properties. 200+ fields. One API.

Try it now

Find houses in high-income, well-educated, walkable Calgary neighbourhoods

This query stacks census income, education levels, and walkability scores onto every property, alongside our price estimate. Hundreds more fields available per property.

Request
Shell session
curl -X GET "https://api.houski.ca/properties?api_key=YOUR_API_KEY&city=calgary&country_abbreviation=ca&demographic_education_level_bachelors_degree_percent_gte=0.30&demographic_income_median_pre_tax_gte=100000&page=1&property_type_eq=House&province_abbreviation=ab&results_per_page=3&score_walkability_gte=6&select=address,latitude,longitude,bedroom_total,estimate_list_price,demographic_income_median_pre_tax,demographic_education_level_bachelors_degree_percent,score_walkability"
TypeScript code
const houski_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('demographic_education_level_bachelors_degree_percent_gte', '0.30');
    url.searchParams.set('demographic_income_median_pre_tax_gte', '100000');
    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('score_walkability_gte', '6');
    url.searchParams.set('select', 'address,latitude,longitude,bedroom_total,estimate_list_price,demographic_income_median_pre_tax,demographic_education_level_bachelors_degree_percent,score_walkability');

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

    return data;
}

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

// Log the response
console.log(data);
})();
Response
JSON
{
  "cache_hit": true,
  "cost_cents": 1.619999885559082,
  "data": [
    {
      "address": "103 Pumpmeadow Place SW",
      "bedroom_total": 4,
      "demographic_education_level_bachelors_degree_percent": 0.364705890417099,
      "demographic_income_median_pre_tax": 101120,
      "estimate_list_price": 1845269,
      "latitude": 50.970218658447266,
      "longitude": -114.09805297851562,
      "property_id": "101b24f83c50a76f",
      "score_walkability": 8
    },
    {
      "address": "1712 47 Avenue SW",
      "bedroom_total": 4,
      "demographic_education_level_bachelors_degree_percent": 0.5126582384109497,
      "demographic_income_median_pre_tax": 108800,
      "estimate_list_price": 1060565,
      "latitude": 51.01178741455078,
      "longitude": -114.10133361816406,
      "property_id": "101ed0b92f7eba88",
      "score_walkability": 7
    },
    {
      "address": "3420 7 Street SW",
      "bedroom_total": 2,
      "demographic_education_level_bachelors_degree_percent": 0.48275861144065857,
      "demographic_income_median_pre_tax": 135680,
      "estimate_list_price": 1641498,
      "latitude": 51.02422332763672,
      "longitude": -114.08089447021484,
      "property_id": "10278392d4e8cc49",
      "score_walkability": 9
    }
  ],
  "error": "",
  "pagination": {
    "current_page": 1,
    "has_next_page": true,
    "has_previous_page": false,
    "page_total": 1022
  },
  "price_quote": false,
  "result_total": 3066,
  "time_ms": 75,
  "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"
  }
}

Check the data quality

Search any Canadian address. The data you see is what the API returns. The same data can be used to power property listings, heat maps, area averages, and permit searches.

What you can build

  • Score insurance risk across a portfolio with flood and wildfire exposure, materials, year built, roof type, and lot attributes for every address in the book
  • Power lending and underwriting with assessment values, listing history, mill rates, and model-based valuations for any Canadian address
  • Refresh portfolio valuations monthly across a mortgage book, real-estate fund, or insurance book without spinning up an internal valuation team
  • Enrich an address book or customer database with 200+ standardised property fields - assessments, permits, listing history, risk scores, demographics, climate risk - for every Canadian address you already have
  • Optimise direct-mail and customer-database segmentation for home-services, insurance, energy, and renovation campaigns by filtering on permits, mill rates, or assessment deltas
  • Bulk export millions of rows to Snowflake, BigQuery, Databricks, Power BI, or a Python notebook for machine-learning training and one-off research datasets
  • Build a Canadian property research agent on the Houski Model Context Protocol (MCP) server for Claude, Cursor, or your own large-language-model pipeline
  • Detect change via permit history for due diligence, renovation tracking, insurance re-underwriting triggers, and construction analytics
  • Map property concentrations and risk heatmaps for site selection, infrastructure planning, campaign targeting, and council briefings
  • Brief municipal planners and policy teams with one uniform schema across every Canadian region, ready for housing-affordability, climate-adaptation, and zoning analysis

The most accurate property valuation model in Canada

Our AVMs predict list, sale, and rent values for any Canadian address. Machine learning trained at city, provincial, and national levels, with automatic hierarchical fallback so every address gets the best prediction available.

Accuracy stats published for every model: Median MAPE, R-squared, and how often the estimate is within 10% of actual. See exactly how it performs in your market before committing.

Why Houski

  • Standardised nation wide: Every Canadian province, every municipality, one schema. Field names, units, property type vocabulary, address formats, all normalised to a single definition you can query without translation tables.
  • Clean data: Hundreds of public, government, and crowdsourced data sources, each in its own format. We deduplicate them, reconcile their conflicting field definitions, and map every record onto a single property entity. Years of data engineering so analyst teams stop hand-stitching exports.
  • Independent: No ties to the real estate industry or government. We pull public, government, and crowdsourced data sources, so no real estate license is required to access the API.
  • Always updating: Daily updates and AI-powered gap filling for sparse fields
  • Developer-first: A modern easy API with consistent filtering, sorting, and selection across every endpoint, plus an MCP server and full documentation
  • Usage-based pricing: Pay for what you use, $99 USD monthly minimum. See pricing

Ready to build?

Get an API key in minutes, or talk to us about enterprise volumes and custom datasets.