Returns detailed information for one or many properties. Each property is one home with its own address, so each flat in a building is its own row with its own property_id.
Supports standard filtering, sorting, and selection.
| Name | Required | Type | Description |
|---|---|---|---|
| api_key | Yes | UUID v4 | Your API key for authorization |
| country_abbreviation | No | String | A country abbreviation |
| province_abbreviation | No | String | A province abbreviation within the country. Needs country_abbreviation as well, or the request is refused with a 400 error. |
| city | No | String | A city within the province, in any letter case. Needs country_abbreviation and province_abbreviation as well, or the request is refused with a 400 error. To match a city name on its own, use the city_eq filter instead, which needs the exact stored spelling, such as Calgary. |
| community | No | String | A community within the city. Needs country_abbreviation, province_abbreviation and city as well, or the request is refused with a 400 error. |
| address | No | String | An address within the city, for a single property. Letter case and punctuation do not matter, but abbreviations are not rewritten, so write road types in full the way the address field does. Needs country_abbreviation, province_abbreviation and city as well. For partial addresses, abbreviations or typos use the search endpoint instead. The filtering page explains how these parameters differ from place filters such as address_eq. |
| polygon | No | Polygon filter string | Get results inside a polygon. |
| bbox_ne_lat | No | Float | Northeast latitude for a bounding box. All four bbox values are required together. |
| bbox_ne_lng | No | Float | Northeast longitude for a bounding box. All four bbox values are required together. |
| bbox_sw_lat | No | Float | Southwest latitude for a bounding box. All four bbox values are required together. |
| bbox_sw_lng | No | Float | Southwest longitude for a bounding box. All four bbox values are required together. |
| results_per_page | No | Integer | Number of results per page (default: 6, max: 1000). A response can hold at most 10,000 values, counted as rows times selected fields, so wide selects allow fewer rows. |
| select | No | String - see selecting | The fields to return - address and property_id are always selected |
| page | No | Integer | The page number to retrieve results from, starting at 1 |
| expand | No | String - see expanding | Comma-separated data sets to include with each property. Options are assessments, listings, listings_rent, and permits. Each nested row returned is billed on its own. |
| filter_expand_match | No | String - see filtering | Use any to return only properties with at least one requested expansion, or all to return only properties with every requested expansion. Omit to return properties with or without expansion data |
| price_quote | No | Boolean | Set to true to get the cost of the current page of results without being billed or receiving the data. See pricing. |
Type declarations are available at the bottom of this page.
| Name | Type | Description |
|---|---|---|
| cache_hit | Boolean | Indicates if the response was a cache hit |
| cost_cents | Float | Cost of the request in cents, for the current page of results |
| data | Array<Property> | Array of Property objects containing the requested property data |
| error | String | Details about the error. Empty if no error |
| pagination | Pagination | Contains pagination info like current page and total pages |
| price_quote | Boolean | Indicates whether the response is a price quote |
| result_total | Integer | The total number of results |
| time_ms | Integer | Time taken for the request to complete in milliseconds |
| ui_info | UiInfo | Useful metadata to create user interfaces |
Each property contains fields chosen via select. Over 400 fields are available.
See the Fields documentation for the full list.
Metadata for building UIs:
| Name | Type | Description |
|---|---|---|
| address_link | String | URL to property details page |
| city_link | String | URL to city information page |
| community_link | String | URL to community information page |
| province_abbreviation_link | String | URL to province/state information page |
| country_abbreviation_link | String | URL to country information page |
Pagination info for the results:
| Name | Type | Description |
|---|---|---|
| current_page | Integer | Current page number (1-based) |
| has_next_page | Boolean | Whether there are more results available |
| has_previous_page | Boolean | Whether there are previous results available |
| page_total | Integer | Total number of pages available |
Select the programming language you want to display the code examples in.
curl -X GET "https://api.houski.ca/properties?api_key=YOUR_API_KEY&city=calgary&community=riverbend&country_abbreviation=ca&page=1&province_abbreviation=ab&results_per_page=3&select=bedroom,den,estimate_list_price"
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('page', '1');
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);
})();
{
"cache_hit": true,
"cost_cents": 0.96,
"data": [
{
"address": "125 Riverview Court SE",
"bedroom": 3,
"den": 0,
"estimate_list_price": 684558,
"property_id": "1003b80b5086a07"
},
{
"address": "61 Rivergreen Crescent SE",
"bedroom": 4,
"den": 0,
"estimate_list_price": 698817,
"property_id": "1004738a9262a70d"
},
{
"address": "197 River Rock Place SE",
"bedroom": 3,
"den": 0,
"estimate_list_price": 661920,
"property_id": "1016148ae2680e16"
}
],
"error": "",
"pagination": {
"current_page": 1,
"has_next_page": true,
"has_previous_page": false,
"page_total": 1215
},
"price_quote": false,
"result_total": 3644,
"time_ms": 14,
"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"
}
}
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_income_percent?: number | null;
demographic_employment_insurance_benefit_percent?: number | null;
demographic_covid_19_government_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_income_per_person_median_pre_tax?: number | null;
demographic_income_per_person_median_after_tax?: number | null;
demographic_income_per_person_average_pre_tax?: number | null;
demographic_income_per_person_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;
assessment_land_value?: number | null;
assessment_improvement_value?: number | null;
parcel_number?: string | null;
council_tax_band?: string | null;
climate_temperature_high_warmest_month_c?: number | null;
climate_temperature_low_coldest_month_c?: number | null;
climate_precipitation_annual_mm?: number | null;
climate_snowfall_annual_cm?: number | null;
attic_is_functional?: boolean | null;
has_expand_listings?: boolean | null;
has_expand_listings_rent?: boolean | null;
has_expand_permits?: boolean | null;
has_expand_assessments?: 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;
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;
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?: 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?: boolean | 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;
estimate_rent_date_listed?: string | null;
estimate_rent_date_rented?: string | null;
estimate_days_on_market_until_rented?: 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_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_floor_above_ground_first?: number | null;
shared_garage_floor_below_ground_first?: number | null;
shared_garage_heating_type_first?: string | null;
shared_garage_legal_type_first?: string | null;
shared_garage_parking_space_first?: number | null;
shared_garage_tandem_first?: boolean | null;
shared_garage_type_first?: 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;
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;
property_taxes_source?: string | null;
province_abbreviation_id?: string | null;
score_total_percent?: 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;
area_comparable_list_price_per_sq_m?: number | null;
area_comparable_assessment_value_per_sq_m?: number | null;
area_comparable_property_tax_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 ListingRent {
property_id: string;
expand_listing_rent_date: string;
expand_listing_rent_event: string;
expand_estimate_rent_monthly: number;
expand_for_rent_what_is: string;
}
interface Permit {
property_id: string;
expand_permit_id: string;
expand_permit_application_date: string;
expand_permit_type: string;
expand_permit_content: string;
expand_permit_value?: number | null;
}