!

/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_centsNumberCost of the request in cents
dataArray of objectsContains the data for the properties
errorStringDetails about the error. Empty if no error
paginationObjectContains pagination info like current page and total pages
price_quoteBooleanIndicates whether the response is a price quote
result_totalNumberThe total number of results
time_msNumberTime taken for the request to complete in milliseconds
ui_infoObjectUseful metadata to create user interfaces

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": 5,
      "den": 1,
      "estimate_list_price": 730232,
      "property_id": "1003b80b5086a07"
    },
    {
      "address": "61 Rivergreen Crescent SE",
      "bedroom": 3,
      "den": 0,
      "estimate_list_price": 670102,
      "property_id": "1004738a9262a70d"
    },
    {
      "address": "197 River Rock Place SE",
      "bedroom": 3,
      "den": 1,
      "estimate_list_price": 643291,
      "property_id": "1016148ae2680e16"
    }
  ],
  "error": "",
  "pagination": {
    "current_page": 1,
    "has_next_page": true,
    "has_previous_page": false,
    "page_total": 1205
  },
  "price_quote": false,
  "result_total": 3615,
  "time_ms": 162,
  "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 {
    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?: 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;
    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;
    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;
    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_price?: 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;
    rent_includes_electricity?: boolean | null;
    rent_includes_furniture?: boolean | null;
    rent_includes_heat?: boolean | null;
    rent_includes_internet?: boolean | null;
    rent_includes_water?: boolean | 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;
    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;
}