Returns detailed information for one or many properties.
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. 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. |
| 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 exact address within the city, for a single property. Needs country_abbreviation, province_abbreviation and city as well. For partial addresses or typos use the search endpoint instead. |
| 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 "http://127.0.0.1:8080/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('http://127.0.0.1:8080/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.959999978542328,
"data": [
{
"address": "125 Riverview Court SE",
"bedroom": 3,
"den": 0,
"estimate_list_price": 668128,
"property_id": "1003b80b5086a07"
},
{
"address": "61 Rivergreen Crescent SE",
"bedroom": 4,
"den": 0,
"estimate_list_price": 679431,
"property_id": "1004738a9262a70d"
},
{
"address": "197 River Rock Place SE",
"bedroom": 3,
"den": 0,
"estimate_list_price": 656087,
"property_id": "1016148ae2680e16"
}
],
"error": "",
"pagination": {
"current_page": 1,
"has_next_page": true,
"has_previous_page": false,
"page_total": 1188
},
"price_quote": false,
"result_total": 3563,
"time_ms": 79,
"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_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;
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;
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_separate_external_entrance?: boolean | 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;
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_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;
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;
}