!

/properties

GET
https://api.houski.ca/properties

This endpoint returns detailed information about properties. It can be used to get information for multiple properties, or just one.

This endpoint conforms to Houski API's standard filtering, sorting, and selection functionality.

Example use cases

  1. Build a real estate website and provide your users with detailed information about properties they are interested in.
  2. Analyze property market trends, identify areas with high demand or low supply, and make informed investment decisions.
  3. Government agencies or urban planners can use this endpoint to gather data on population density, average income, and other factors that influence city planning decisions.
  4. Insurance companies can use this endpoint to gather data on property values to help determine insurance rates.
  5. Appraisal services can use this endpoint API to gather data on property values and trends to help determine the value of a property.
  6. Create customized Automated Valuation Models (AVM).

Request parameters

NameRequiredTypeDescription
api_keyYesUUID v4Your API key for authorization
country_abbreviationNoStringA country abbreviation
province_abbreviationNoStringA province abbreviation within the country
cityNoStringA city within the province
communityNoStringA community within the city
results_per_pageNoIntegerNumber of results per page
selectNoString - see selectingThe fields to return - address and property_id are always selected

Response object

Type declarations are available at the bottom of this page.

NameTypeDescription
cache_hitBooleanIndicates if the response was a cache hit
cost_centsIntegerCost of the request in cents
dataArray<Property>Array of Property objects containing the requested property data
errorStringDetails about the error. Empty if no error
paginationPaginationContains pagination info like current page and total pages
price_quoteBooleanIndicates whether the response is a price quote
result_totalIntegerThe total number of results
time_msIntegerTime taken for the request to complete in milliseconds
ui_infoUiInfoUseful metadata to create user interfaces

Property object

Each property in the data array contains fields selected via the select parameter. Properties have over 400 available fields covering all aspects of real estate data.

For detailed information about all available property fields, see the Fields documentation page.

UiInfo object

Contains useful metadata for building user interfaces:

NameTypeDescription
address_linkStringURL to property details page
city_linkStringURL to city information page
community_linkStringURL to community information page
province_abbreviation_linkStringURL to province/state information page
country_abbreviation_linkStringURL to country information page

Pagination object

Contains pagination information for the results:

NameTypeDescription
current_pageIntegerCurrent page number (1-based)
has_next_pageBooleanWhether there are more results available
has_previous_pageBooleanWhether there are previous results available
page_totalIntegerTotal number of pages available

Example requests and responses

Programming language

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

Get a list of properties
Get a list of properties in a given location.
Request
Shell session
curl -X GET "https://api.houski.ca/properties?api_key=YOUR_API_KEY&city=calgary&community=riverbend&country_abbreviation=ca&province_abbreviation=ab&results_per_page=3&select=bedroom,den,estimate_list_price"
TypeScript code
const houski_get_properties = 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('community', 'riverbend');
    url.searchParams.set('country_abbreviation', 'ca');
    url.searchParams.set('province_abbreviation', 'ab');
    url.searchParams.set('results_per_page', '3');
    url.searchParams.set('select', 'bedroom,den,estimate_list_price');

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

    return data;
}

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

// Log the response
console.log(data);
})();
Response
JSON
{
  "cache_hit": false,
  "cost_cents": 1.5,
  "data": [
    {
      "address": "125 Riverview Court SE",
      "bedroom": 3,
      "den": 1,
      "estimate_list_price": 721261,
      "property_id": "1003b80b5086a07"
    },
    {
      "address": "61 Rivergreen Crescent SE",
      "bedroom": 3,
      "den": 0,
      "estimate_list_price": 710342,
      "property_id": "1004738a9262a70d"
    },
    {
      "address": "197 River Rock Place SE",
      "bedroom": 3,
      "den": 1,
      "estimate_list_price": 683332,
      "property_id": "1016148ae2680e16"
    }
  ],
  "error": "",
  "pagination": {
    "current_page": 1,
    "has_next_page": true,
    "has_previous_page": false,
    "page_total": 1205
  },
  "price_quote": false,
  "result_total": 3614,
  "time_ms": 91,
  "ui_info": {
    "city": "Calgary",
    "city_id": "6ec95b53075d062c",
    "city_link": "ca/ab/calgary",
    "city_slug": "calgary",
    "community": "Riverbend",
    "community_id": "f5c930e9ed9a38e4",
    "community_link": "ca/ab/calgary/riverbend",
    "community_slug": "riverbend",
    "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"
  }
}

Response type declarations

TypeScript code
interface PropertiesResponse {
    cache_hit: boolean;
    cost_cents: number;
    data: Property[];
    error: string;
    pagination: Pagination;
    price_quote: boolean;
    result_total: number;
    time_ms: number;
    ui_info: UiInfo;
}

interface UiInfo {
    address_link?: string | null;
    address_slug?: string | null;
    address?: string | null;
    city_id?: string | null;
    city_link?: string | null;
    city_slug?: string | null;
    city?: string | null;
    community_id?: string | null;
    community_link?: string | null;
    community_slug?: string | null;
    community?: string | null;
    country_abbreviation_id?: string | null;
    country_abbreviation?: string | null;
    country_slug?: string | null;
    country?: string | null;
    parent_address?: string | null;
    parent_property_id?: string | null;
    property_id?: string | null;
    province_abbreviation_id?: string | null;
    province_abbreviation_link?: string | null;
    country_abbreviation_link?: string | null;
    province_abbreviation?: string | null;
    province_slug?: string | null;
    province?: string | null;
}

interface Pagination {
    current_page: number;
    has_next_page: boolean;
    has_previous_page: boolean;
    page_total: number;
}

interface Property {
    estimate_city_population?: number | null;
    city_id?: string | null;
    community_id?: string | null;
    country_abbreviation_id?: string | null;
    list_price_vs_estimate?: number | null;
    assessment_vs_estimate?: number | null;
    country_abbreviation_link?: string | null;
    province_abbreviation_link?: string | null;
    city_link?: string | null;
    community_link?: string | null;
    demographic_age_average_of_the_population?: number | null;
    demographic_age_median_of_the_population?: number | null;
    demographic_municipal_population_density_sq_km?: number | null;
    demographic_employment_pre_tax_income_percent?: number | null;
    demographic_employment_insurance_benefit_percent?: number | null;
    demographic_covid_19_government_pre_tax_income_support_and_benefit_percent?: number | null;
    demographic_language_most_spoken_first?: string | null;
    demographic_language_most_spoken_second?: string | null;
    demographic_language_most_spoken_third?: string | null;
    demographic_language_most_spoken_fourth?: string | null;
    demographic_language_most_spoken_fifth?: string | null;
    demographic_language_most_spoken_first_percent?: number | null;
    demographic_language_most_spoken_second_percent?: number | null;
    demographic_language_most_spoken_third_percent?: number | null;
    demographic_language_most_spoken_fourth_percent?: number | null;
    demographic_language_most_spoken_fifth_percent?: number | null;
    demographic_municipal_population?: number | null;
    demographic_municipal_population_male_percent?: number | null;
    demographic_municipal_population_female_percent?: number | null;
    demographic_dwellings_occupied_percent?: number | null;
    demographic_income_median_pre_tax?: number | null;
    demographic_income_median_after_tax?: number | null;
    demographic_income_average_pre_tax?: number | null;
    demographic_income_average_after_tax?: number | null;
    demographic_median_covid_19_emergency_and_recovery_benefits?: number | null;
    demographic_age_0_to_4_years_percent?: number | null;
    demographic_age_5_to_9_years_percent?: number | null;
    demographic_age_10_to_14_years_percent?: number | null;
    demographic_age_15_to_19_years_percent?: number | null;
    demographic_age_20_to_24_years_percent?: number | null;
    demographic_age_25_to_29_years_percent?: number | null;
    demographic_age_30_to_34_years_percent?: number | null;
    demographic_age_35_to_39_years_percent?: number | null;
    demographic_age_40_to_44_years_percent?: number | null;
    demographic_age_45_to_49_years_percent?: number | null;
    demographic_age_50_to_54_years_percent?: number | null;
    demographic_age_55_to_59_years_percent?: number | null;
    demographic_age_60_to_64_years_percent?: number | null;
    demographic_age_65_to_69_years_percent?: number | null;
    demographic_age_70_to_74_years_percent?: number | null;
    demographic_age_75_to_79_years_percent?: number | null;
    demographic_age_80_to_84_years_percent?: number | null;
    demographic_age_85_to_89_years_percent?: number | null;
    demographic_age_90_to_94_years_percent?: number | null;
    demographic_age_95_to_99_years_percent?: number | null;
    demographic_age_100_years_and_over_percent?: number | null;
    demographic_household_size_1_person_percent?: number | null;
    demographic_household_size_2_persons_percent?: number | null;
    demographic_household_size_3_persons_percent?: number | null;
    demographic_household_size_4_persons_percent?: number | null;
    demographic_household_size_5_or_more_persons_percent?: number | null;
    demographic_household_type_family_with_children_percent?: number | null;
    demographic_household_type_family_without_children_percent?: number | null;
    demographic_household_type_single_with_children_percent?: number | null;
    demographic_household_type_single_without_children_percent?: number | null;
    demographic_marital_status_married_percent?: number | null;
    demographic_marital_status_common_law_percent?: number | null;
    demographic_marital_status_single_percent?: number | null;
    demographic_income_under_10000_percent?: number | null;
    demographic_income_10000_to_19999_percent?: number | null;
    demographic_income_20000_to_29999_percent?: number | null;
    demographic_income_30000_to_39999_percent?: number | null;
    demographic_income_40000_to_49999_percent?: number | null;
    demographic_income_50000_to_59999_percent?: number | null;
    demographic_income_60000_to_69999_percent?: number | null;
    demographic_income_70000_to_79999_percent?: number | null;
    demographic_income_80000_to_89999_percent?: number | null;
    demographic_income_90000_to_99999_percent?: number | null;
    demographic_income_100000_to_149999_percent?: number | null;
    demographic_income_150000_and_over_percent?: number | null;
    demographic_education_level_no_certificate_diploma_or_degree_percent?: number | null;
    demographic_education_level_high_school_diploma_or_equivalency_certificate_percent?: number | null;
    demographic_education_level_apprenticeship_or_trades_certificate_or_diploma_percent?: number | null;
    demographic_education_level_bachelors_degree_percent?: number | null;
    demographic_education_level_degree_in_medicine_dentistry_veterinary_medicine_or_optometry_percent?: number | null;
    demographic_education_level_masters_degree_percent?: number | null;
    demographic_education_level_earned_doctorate_percent?: number | null;
    demographic_education_degree_teaching_percent?: number | null;
    demographic_education_degree_humanities_percent?: number | null;
    demographic_education_degree_social_and_behavioral_sciences_and_law_percent?: number | null;
    demographic_education_degree_business_management_and_public_administration_percent?: number | null;
    demographic_education_degree_physical_and_life_sciences_and_technologies_percent?: number | null;
    demographic_education_degree_mathematics_computer_and_information_sciences_percent?: number | null;
    demographic_education_degree_architecture_engineering_and_related_trades_percent?: number | null;
    demographic_education_degree_agriculture_natural_resources_and_conservation_percent?: number | null;
    demographic_education_degree_health_and_related_fields_percent?: number | null;
    demographic_education_degree_personal_protective_and_transportation_services_percent?: number | null;
    demographic_employment_employed_percent?: number | null;
    demographic_employment_unemployed_percent?: number | null;
    demographic_employment_occupations_legislative_and_senior_management_occupations_percent?: number | null;
    demographic_employment_occupations_business_finance_and_administration_occupations_percent?: number | null;
    demographic_employment_occupations_natural_and_applied_sciences_and_related_occupations_percent?: number | null;
    demographic_employment_occupations_health_occupations_percent?: number | null;
    demographic_employment_occupations_in_education_law_and_social_community_and_government_services_percent?: number | null;
    demographic_employment_occupations_in_art_culture_recreation_and_sport_percent?: number | null;
    demographic_employment_occupations_sales_and_service_occupations_percent?: number | null;
    demographic_employment_occupations_trades_transport_and_equipment_operators_and_related_occupations_percent?: number | null;
    demographic_employment_occupations_natural_resources_agriculture_and_related_production_occupations_percent?: number | null;
    demographic_employment_occupations_in_manufacturing_and_utilities_percent?: number | null;
    demographic_employment_industries_agriculture_forestry_fishing_and_hunting_percent?: number | null;
    demographic_employment_industries_mining_quarrying_and_oil_and_gas_extraction_percent?: number | null;
    demographic_employment_industries_utilities_percent?: number | null;
    demographic_employment_industries_construction_percent?: number | null;
    demographic_employment_industries_manufacturing_percent?: number | null;
    demographic_employment_industries_wholesale_trade_percent?: number | null;
    demographic_employment_industries_retail_trade_percent?: number | null;
    demographic_employment_industries_transportation_and_warehousing_percent?: number | null;
    demographic_employment_industries_information_and_cultural_industries_percent?: number | null;
    demographic_employment_industries_finance_and_insurance_percent?: number | null;
    demographic_employment_industries_real_estate_and_rental_and_leasing_percent?: number | null;
    demographic_employment_industries_professional_scientific_and_technical_services_percent?: number | null;
    demographic_employment_industries_management_of_companies_and_enterprises_percent?: number | null;
    demographic_employment_industries_administrative_and_support_waste_management_and_remediation_services_percent?: number | null;
    demographic_employment_industries_educational_services_percent?: number | null;
    demographic_employment_industries_health_care_and_social_assistance_percent?: number | null;
    demographic_employment_industries_arts_entertainment_and_recreation_percent?: number | null;
    demographic_employment_industries_accommodation_and_food_services_percent?: number | null;
    demographic_employment_industries_other_services_percent?: number | null;
    demographic_employment_industries_public_administration_percent?: number | null;
    demographic_transportation_car_truck_or_van_percent?: number | null;
    demographic_transportation_public_transit_percent?: number | null;
    demographic_transportation_walk_percent?: number | null;
    demographic_transportation_bicycle_percent?: number | null;
    assessments?: Assessment[] | null;
    listings_rent?: ListingRent[] | null;
    listings?: Listing[] | null;
    permits?: Permit[] | null;
    address_link?: string | null;
    address_slug?: string | null;
    address?: string | null;
    air_cleaner_brand?: string | null;
    air_cleaner_install_year?: number | null;
    air_cleaner_type?: string | null;
    architecture_style?: string | null;
    assessment_value?: number | null;
    assessment_year?: number | null;
    attic_is_functional?: boolean | null;
    has_expand_listings?: boolean | null;
    has_expand_listings_rent?: boolean | null;
    backs_onto?: string | null;
    balcony_type_first?: string | null;
    balcony_type_second?: string | null;
    balcony_type_third?: string | null;
    basement_ceiling_height_m?: number | null;
    basement_finish?: string | null;
    basement_has_crawlspace?: boolean | null;
    basement_has_entrance?: boolean | null;
    basement_is_walkout?: boolean | null;
    basement_type?: string | null;
    basement_year_last_renovated?: number | null;
    bathroom_full?: number | null;
    bathroom_total?: number | null;
    bathroom_half?: number | null;
    bathroom_year_last_renovated?: number | null;
    bedroom_year_last_renovated?: number | null;
    bedroom?: number | null;
    bedroom_total?: number | null;
    building_name?: string | null;
    carport_parking_space?: number | null;
    cat_allowed_by_bylaw_require_approval?: boolean | null;
    cat_allowed_by_bylaw?: boolean | null;
    ceiling_height_m?: number | null;
    ceiling_is_vaulted?: boolean | null;
    ceiling_style?: string | null;
    city_slug?: string | null;
    city?: string | null;
    commercial_use?: string | null;
    community_slug?: string | null;
    community?: string | null;
    community_source?: string | null;
    construction_material?: string | null;
    construction_year?: number | null;
    converted_to_commercial_use?: boolean | null;
    converted_to_residential_use?: boolean | null;
    cooling_brand_first?: string | null;
    cooling_install_year_first?: number | null;
    cooling_type_first?: string | null;
    cooling_type_second?: string | null;
    country_abbreviation?: string | null;
    country_slug?: string | null;
    country?: string | null;
    den?: number | null;
    direction_facing?: string | null;
    dog_allowed_by_bylaw_require_approval?: boolean | null;
    dog_allowed_by_bylaw?: boolean | null;
    driveway_parking_space?: number | null;
    electricity_provider?: string | null;
    elevator?: number | null;
    estimate_list_price?: number | null;
    estimate_sale_price_per_sq_m?: number | null;
    estimate_monthly_electrical_cost?: number | null;
    estimate_monthly_heat_cost?: number | null;
    estimate_monthly_water_cost?: number | null;
    estimate_political_lean?: number | null;
    estimate_rent_monthly_room?: number | null;
    estimate_rent_monthly_suite_basement?: number | null;
    estimate_rent_monthly_suite_main?: number | null;
    estimate_rent_monthly?: number | null;
    estimate_sale_price?: number | null;
    exterior_finish?: string | null;
    exterior_year_last_renovated?: number | null;
    fence_type?: string | null;
    fire_suppression_type?: string | null;
    fireplace?: number | null;
    floor_above_ground?: number | null;
    floor_below_ground?: number | null;
    floor_material_type_first?: string | null;
    floor_material_type_second?: string | null;
    floor_plan_type?: string | null;
    for_rent_by?: string | null;
    for_rent_cat_allowed_by_owner?: boolean | null;
    for_rent_dog_allowed_by_owner?: boolean | null;
    for_rent_has_own_laundry?: boolean | null;
    for_rent_has_seperate_external_entrance?: boolean | null;
    for_rent_what_is?: string | null;
    for_rent?: boolean | null;
    for_sale_by?: string | null;
    for_sale?: boolean | null;
    estimate_sale_date_listed?: string | null;
    estimate_sale_date_sold?: string | null;
    estimate_days_on_market_until_sale?: number | null;
    foundation_type?: string | null;
    fronts_onto?: string | null;
    garage_240v_first?: boolean | null;
    garage_240v_second?: boolean | null;
    garage_floor_above_ground_first?: number | null;
    garage_floor_above_ground_second?: number | null;
    garage_floor_below_ground_first?: number | null;
    garage_floor_below_ground_second?: number | null;
    garage_heating_type_first?: string | null;
    garage_heating_type_second?: string | null;
    garage_parking_space_first?: number | null;
    garage_parking_space_second?: number | null;
    garage_tandem_first?: boolean | null;
    garage_tandem_second?: boolean | null;
    garage_type_first?: string | null;
    garage_type_second?: string | null;
    gas_provider?: string | null;
    has_assigned_storage_space?: boolean | null;
    has_backyard?: boolean | null;
    has_frontyard?: boolean | null;
    has_private_indoor_gym?: boolean | null;
    has_private_indoor_hot_tub?: boolean | null;
    has_private_indoor_sauna?: boolean | null;
    has_private_indoor_swimming_pool?: boolean | null;
    has_private_indoor_workshop?: boolean | null;
    has_private_outdoor_gym?: boolean | null;
    has_private_outdoor_hot_tub?: boolean | null;
    has_private_outdoor_sauna?: boolean | null;
    has_private_outdoor_swimming_pool?: boolean | null;
    has_rv_parking?: boolean | null;
    has_shared_indoor_gym?: boolean | null;
    has_shared_indoor_hot_tub?: boolean | null;
    has_shared_indoor_sauna?: boolean | null;
    has_shared_indoor_swimming_pool?: boolean | null;
    has_shared_indoor_workshop?: boolean | null;
    has_shared_laundry_room?: boolean | null;
    has_shared_outdoor_gym?: boolean | null;
    has_shared_outdoor_hot_tub?: boolean | null;
    has_shared_outdoor_sauna?: boolean | null;
    has_shared_outdoor_swimming_pool?: boolean | null;
    heating_brand_first?: string | null;
    heating_install_year_first?: number | null;
    heating_type_first?: string | null;
    heating_type_second?: string | null;
    humidifier_brand?: string | null;
    humidifier_install_year?: number | null;
    humidifier_type?: string | null;
    image?: string | null;
    in_cul_de_sac?: boolean | null;
    interior_sq_m?: number | null;
    interior_sq_m_source?: string | null;
    internet_provider?: string | null;
    irrigation_system_type?: string | null;
    is_commercial?: boolean | null;
    is_condemned?: boolean | null;
    is_judicial_sale?: boolean | null;
    is_residential?: boolean | null;
    kitchen_appliance_brand?: string | null;
    kitchen_appliance_finish?: string | null;
    kitchen_countertop_material?: string | null;
    kitchen_dishwasher_install_year?: number | null;
    kitchen_dishwasher_type?: string | null;
    kitchen_fridge_install_year?: number | null;
    kitchen_fridge_type?: string | null;
    kitchen_microwave_install_year?: number | null;
    kitchen_microwave_type?: string | null;
    kitchen_stove_heat_type?: string | null;
    kitchen_stove_install_year?: number | null;
    kitchen_stove_type?: string | null;
    kitchen_year_last_renovated?: number | null;
    land_depth_m?: number | null;
    land_frontage_m?: number | null;
    latitude?: number | null;
    laundry_appliance_brand?: string | null;
    laundry_appliance_finish?: string | null;
    laundry_dryer_install_year?: number | null;
    laundry_dryer_type?: string | null;
    laundry_washer_install_year?: number | null;
    laundry_washer_type?: string | null;
    list_price?: number | null;
    rent_monthly?: number | null;
    living_room_year_last_renovated?: number | null;
    loading_bays?: number | null;
    longitude?: number | null;
    maintenance_fee_include_electric?: boolean | null;
    maintenance_fee_include_heat?: boolean | null;
    maintenance_fee_include_water?: boolean | null;
    maintenance_fee?: number | null;
    need_ceiling_repair?: boolean | null;
    need_cooling_repair?: boolean | null;
    need_drywall_repair?: boolean | null;
    need_electrical_repair?: boolean | null;
    need_floor_repair?: boolean | null;
    need_foundation_repair?: boolean | null;
    need_heating_repair?: boolean | null;
    need_mold_repair?: boolean | null;
    need_paint_repair?: boolean | null;
    need_plumbing_repair?: boolean | null;
    need_roof_repair?: boolean | null;
    need_window_repair?: boolean | null;
    neighborhood_id?: string | null;
    outbuilding_type_fifth?: string | null;
    outbuilding_type_first?: string | null;
    outbuilding_type_fourth?: string | null;
    outbuilding_type_second?: string | null;
    outbuilding_type_third?: string | null;
    ownership_type?: string | null;
    parent_address?: string | null;
    parking_lot_parking_space_legal_type?: string | null;
    parking_lot_parking_space?: number | null;
    plumbing_pipe_material?: string | null;
    postal_code?: string | null;
    property_id?: string | null;
    property_type?: string | null;
    province_abbreviation?: string | null;
    province_slug?: string | null;
    province?: string | null;
    roof_is_functional?: boolean | null;
    roof_material_install_year?: number | null;
    roof_material?: string | null;
    score_air_quality?: number | null;
    score_bicycle?: number | null;
    score_cell_coverage?: number | null;
    score_curb_appeal?: number | null;
    score_earthquake?: number | null;
    score_education?: number | null;
    score_entertainment?: number | null;
    score_family?: number | null;
    score_fire?: number | null;
    score_flood?: number | null;
    score_food_and_drink?: number | null;
    score_hurricane?: number | null;
    score_internet?: number | null;
    score_nature?: number | null;
    score_parking?: number | null;
    score_quiet?: number | null;
    score_retirement?: number | null;
    score_safety?: number | null;
    score_shopping?: number | null;
    score_smell?: number | null;
    score_tornado?: number | null;
    score_total?: number | null;
    score_traffic?: number | null;
    score_transit?: number | null;
    score_walkability?: number | null;
    score_water_quality?: number | null;
    secondary_suite_has_own_laundry_first?: boolean | null;
    secondary_suite_has_own_laundry_second?: boolean | null;
    secondary_suite_has_own_laundry_third?: boolean | null;
    secondary_suite_seperate_entrance_first?: boolean | null;
    secondary_suite_seperate_entrance_second?: boolean | null;
    secondary_suite_seperate_entrance_third?: boolean | null;
    shared_bicycle_storage_type?: string | null;
    shared_garage_240v_first?: boolean | null;
    shared_garage_240v_second?: boolean | null;
    shared_garage_floor_above_ground_first?: number | null;
    shared_garage_floor_above_ground_second?: number | null;
    shared_garage_floor_below_ground_first?: number | null;
    shared_garage_floor_below_ground_second?: number | null;
    shared_garage_heating_type_first?: string | null;
    shared_garage_heating_type_second?: string | null;
    shared_garage_legal_type_first?: string | null;
    shared_garage_legal_type_second?: string | null;
    shared_garage_parking_space_first?: number | null;
    shared_garage_parking_space_second?: number | null;
    shared_garage_tandem_first?: boolean | null;
    shared_garage_tandem_second?: boolean | null;
    shared_garage_type_first?: string | null;
    shared_garage_type_second?: string | null;
    summer_garbage_pickup_day?: string | null;
    summer_garbage_pickup_schedule?: string | null;
    summer_organic_waste_pickup_day?: string | null;
    summer_organic_waste_pickup_schedule?: string | null;
    summer_recycle_pickup_day?: string | null;
    summer_recycle_pickup_schedule?: string | null;
    view_type?: string | null;
    water_heater_brand?: string | null;
    water_heater_install_year?: number | null;
    water_heater_type?: string | null;
    water_softener_brand?: string | null;
    water_softener_install_year?: number | null;
    water_softener_type?: string | null;
    water_provider?: string | null;
    winter_garbage_pickup_day?: string | null;
    winter_garbage_pickup_schedule?: string | null;
    winter_organic_waste_pickup_day?: string | null;
    winter_organic_waste_pickup_schedule?: string | null;
    winter_recycle_pickup_day?: string | null;
    winter_recycle_pickup_schedule?: string | null;
    workshop_type?: string | null;
    zoning?: string | null;
    cash_on_cash_return?: number | null;
    cap_rate?: number | null;
    return_on_investment?: number | null;
    is_farmland?: boolean | null;
    land_area_sq_m?: number | null;
    parent_property_id?: string | null;
    property_taxes?: number | null;
    property_taxes_year?: number | null;
    province_abbreviation_id?: string | null;
    score_total_percent?: number | null;
    shared_parking_lot_parking_space_legal_type?: string | null;
    shared_parking_lot_parking_space?: number | null;
    furnished?: boolean | null;
    zoning_source?: string | null;
    construction_year_source?: string | null;
    is_commercial_source?: string | null;
    is_farmland_source?: string | null;
    is_residential_source?: string | null;
    land_area_sq_m_source?: string | null;
    area_residential_list_price_per_sq_m?: number | null;
    area_residential_rent_price_per_sq_m?: number | null;
    area_commercial_list_price_per_sq_m?: number | null;
    secondary_suite_type_first?: string | null;
    secondary_suite_type_second?: string | null;
    secondary_suite_type_third?: string | null;
    postal_code_source?: string | null;
}

interface Assessment {
    property_id: string;
    expand_assessment_year: number;
    expand_assessment_value: number;
}

interface Listing {
    property_id: string;
    expand_listing_date: string;
    expand_listing_event: string;
    expand_estimate_list_price: number;
}

interface Permit {
    property_id: string;
    expand_permit_id: string;
    expand_permit_application_date: string;
    expand_permit_type: string;
    expand_permit_content: string;
}