/geocoding

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

This endpoint performs 'reverse geocoding', which translates a geographic point (latitude and longitude) into relevant nearby property information.

For 'forward geocoding' - converting street addresses into geographic coordinates - please refer to the /search endpoint. Additionally, the /properties endpoint allows you to find properties via custom bounding boxes and polygons.

This endpoint conforms to Houski API's standard filtering, sorting, and selection functionality. Please note by default this endpoint sorts by nearest distance first.

To see all the fields that can be selected, filtered or sorted by, see the fields page.

To find data on all available location values, such as country_abbreviation, province_abbreviation, city and community, you can use the /locations endpoint.

Example use cases

You can find examples for common use cases on our recipes page.
  1. Develop location-based services or apps that provide users with property information around their current geographical position.
  2. Enable real estate platforms to show property listings near a user's preferred location or landmark without requiring an exact address.
  3. Equip emergency services with the ability to rapidly access detailed property information within specific geographic zones, enhancing preparedness and response strategies for natural disasters, accidents, or other emergencies.
  4. Support environmental groups in tracking land use changes and adherence to zoning laws by correlating properties with geographical features, aiding in conservation and sustainable development efforts.
  5. Assist municipal governments in identifying properties within targeted zones for the development of public services, community projects, and infrastructure improvements, fostering community engagement and growth.

Request parameters

NameRequiredTypeDescription
api_keyYesUUID v4Authorization API key
latitudeYesNumberThe latitude of the point to search for properties
longitudeYesNumberThe longitude of the point to search for properties
radiusNoNumberThe radius in kilometers to search for properties
shapeNoStringCan either be 'circle' (default) or 'square'.
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_infoObjectData to create user interfaces

Example requests and responses

Programming language

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

Get properties around a point

Get properties around a point.

Request
Shell session
curl -X GET "https://api.houski.ca/geocoding?api_key=YOUR_API_KEY&latitude=51.0447&longitude=-114.0719&radius=2&select=latitude,longitude,bedroom,den,bathroom_full,bathroom_half&shape=circle"
TypeScript code
const houski_geocoding = async (): Promise<GeocodingResponse> => {

    // You must copy the GeocodingResponse type declarations from the 
    // Houski API documentation to strongly type the response

    const url = new URL('https://api.houski.ca/geocoding');
    url.searchParams.set('api_key', 'YOUR_API_KEY');
    url.searchParams.set('latitude', '51.0447');
    url.searchParams.set('longitude', '-114.0719');
    url.searchParams.set('radius', '2');
    url.searchParams.set('select', 'latitude,longitude,bedroom,den,bathroom_full,bathroom_half');
    url.searchParams.set('shape', 'circle');

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

    return data;
}

(async () => {
let data: GeocodingResponse = await houski_geocoding();

// Log the response
console.log(data);
})();
Response
JSON
{
  "cache_hit": false,
  "cost_cents": 4.800000190734863,
  "data": [
    {
      "address": "366 94 Avenue SE",
      "bathroom_full": 1,
      "bathroom_half": 0,
      "bedroom": 2,
      "den": 0,
      "latitude": 51.044734954833984,
      "longitude": -114.07188415527344,
      "property_id": "a5a3a5b87c6b5fe7"
    },
    {
      "address": "513 9 Avenue SW",
      "bathroom_full": 2,
      "bathroom_half": 0,
      "bedroom": 3,
      "den": 0,
      "latitude": 51.0445442199707,
      "longitude": -114.07219696044922,
      "property_id": "e9baf46145362e25"
    },
    {
      "address": "520 9 Avenue SW",
      "bathroom_full": 2,
      "bathroom_half": 0,
      "bedroom": 3,
      "den": 0,
      "latitude": 51.04524612426758,
      "longitude": -114.07220458984376,
      "property_id": "8808ff7c79ba3508"
    },
    {
      "address": "525 8 Avenue SW",
      "bathroom_full": 2,
      "bathroom_half": 0,
      "bedroom": 3,
      "den": 0,
      "latitude": 51.04531478881836,
      "longitude": -114.0724105834961,
      "property_id": "301a806c3b139f6"
    },
    {
      "address": "505 8 Avenue SW",
      "bathroom_full": 2,
      "bathroom_half": 0,
      "bedroom": 3,
      "den": 0,
      "latitude": 51.04551315307617,
      "longitude": -114.07183837890624,
      "property_id": "3848dc60cd88ee55"
    },
    {
      "address": "524 10 Avenue SW",
      "bathroom_full": 2,
      "bathroom_half": 0,
      "bedroom": 3,
      "den": 0,
      "latitude": 51.043907165527344,
      "longitude": -114.07218933105467,
      "property_id": "cc8a04767d8753ff"
    }
  ],
  "error": "",
  "pagination": {
    "current_page": 1,
    "has_next_page": true,
    "has_previous_page": false,
    "page_total": 4817
  },
  "price_quote": false,
  "result_total": 28898,
  "time_ms": 75
}

Response type declarations

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

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

interface Property {
    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_education_degree_other_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_source?: string | null;
    address?: string | null;
    air_cleaner_brand_source?: string | null;
    air_cleaner_brand?: string | null;
    air_cleaner_install_year_source?: string | null;
    air_cleaner_install_year?: number | null;
    air_cleaner_type_source?: string | null;
    air_cleaner_type?: string | null;
    architecture_style_source?: string | null;
    architecture_style?: string | null;
    assessment_value_source?: string | null;
    assessment_value?: number | null;
    assessment_year_source?: string | null;
    assessment_year?: number | null;
    attic_is_functional_source?: string | null;
    attic_is_functional?: boolean | null;
    backs_onto_source?: string | null;
    backs_onto?: string | null;
    balcony_type_first_source?: string | null;
    balcony_type_first?: string | null;
    balcony_type_second_source?: string | null;
    balcony_type_second?: string | null;
    balcony_type_third_source?: string | null;
    balcony_type_third?: string | null;
    basement_ceiling_height_m_source?: string | null;
    basement_ceiling_height_m?: number | null;
    basement_finish_source?: string | null;
    basement_finish?: string | null;
    basement_has_crawlspace_source?: string | null;
    basement_has_crawlspace?: boolean | null;
    basement_has_entrance_source?: string | null;
    basement_has_entrance?: boolean | null;
    basement_is_walkout_source?: string | null;
    basement_is_walkout?: boolean | null;
    basement_type_source?: string | null;
    basement_type?: string | null;
    basement_year_last_renovated_source?: string | null;
    basement_year_last_renovated?: number | null;
    bathroom_full_source?: string | null;
    bathroom_full?: number | null;
    bathroom_half_source?: string | null;
    bathroom_half?: number | null;
    bathroom_year_last_renovated_source?: string | null;
    bathroom_year_last_renovated?: number | null;
    bedroom_source?: string | null;
    bedroom_year_last_renovated_source?: string | null;
    bedroom_year_last_renovated?: number | null;
    bedroom?: number | null;
    building_name_source?: string | null;
    building_name?: string | null;
    carport_parking_space_source?: string | null;
    carport_parking_space?: number | null;
    cat_allowed_by_bylaw_require_approval_source?: string | null;
    cat_allowed_by_bylaw_require_approval?: boolean | null;
    cat_allowed_by_bylaw_source?: string | null;
    cat_allowed_by_bylaw?: boolean | null;
    ceiling_height_m_source?: string | null;
    ceiling_height_m?: number | null;
    ceiling_is_vaulted_source?: string | null;
    ceiling_is_vaulted?: boolean | null;
    ceiling_style_source?: string | null;
    ceiling_style?: string | null;
    city_slug?: string | null;
    city_source?: string | null;
    city?: string | null;
    commercial_use_source?: string | null;
    commercial_use?: string | null;
    community_slug?: string | null;
    community_source?: string | null;
    community?: string | null;
    construction_material_source?: string | null;
    construction_material?: string | null;
    construction_year_source?: string | null;
    construction_year?: number | null;
    converted_to_commercial_use_source?: string | null;
    converted_to_commercial_use?: boolean | null;
    converted_to_residential_use_source?: string | null;
    converted_to_residential_use?: boolean | null;
    cooling_brand_first_source?: string | null;
    cooling_brand_first?: string | null;
    cooling_install_year_first_source?: string | null;
    cooling_install_year_first?: number | null;
    cooling_type_first_source?: string | null;
    cooling_type_first?: string | null;
    cooling_type_second_source?: string | null;
    cooling_type_second?: string | null;
    country_abbreviation_source?: string | null;
    country_abbreviation?: string | null;
    country_slug?: string | null;
    country_source?: string | null;
    country?: string | null;
    den_source?: string | null;
    den?: number | null;
    direction_facing_source?: string | null;
    direction_facing?: string | null;
    dog_allowed_by_bylaw_require_approval_source?: string | null;
    dog_allowed_by_bylaw_require_approval?: boolean | null;
    dog_allowed_by_bylaw_source?: string | null;
    dog_allowed_by_bylaw?: boolean | null;
    driveway_parking_space_source?: string | null;
    driveway_parking_space?: number | null;
    electricity_provider_source?: string | null;
    electricity_provider?: string | null;
    elevator_source?: string | null;
    elevator?: number | null;
    estimate_list_price_date_source?: string | null;
    estimate_list_price_date?: string | null;
    estimate_list_price_source?: string | null;
    estimate_list_price?: number | null;
    estimate_monthly_electrical_cost_date?: string | null;
    estimate_monthly_electrical_cost_source?: string | null;
    estimate_monthly_electrical_cost?: number | null;
    estimate_monthly_heat_cost_date?: string | null;
    estimate_monthly_heat_cost_source?: string | null;
    estimate_monthly_heat_cost?: number | null;
    estimate_monthly_water_cost_date?: string | null;
    estimate_monthly_water_cost_source?: string | null;
    estimate_monthly_water_cost?: number | null;
    estimate_political_lean_source?: string | null;
    estimate_political_lean?: number | null;
    estimate_rent_monthly_date?: string | null;
    estimate_rent_monthly_room_date?: string | null;
    estimate_rent_monthly_room_source?: string | null;
    estimate_rent_monthly_room?: number | null;
    estimate_rent_monthly_source?: string | null;
    estimate_rent_monthly_suite_basement_date?: string | null;
    estimate_rent_monthly_suite_basement_source?: string | null;
    estimate_rent_monthly_suite_basement?: number | null;
    estimate_rent_monthly_suite_main_date?: string | null;
    estimate_rent_monthly_suite_main_source?: string | null;
    estimate_rent_monthly_suite_main?: number | null;
    estimate_rent_monthly?: number | null;
    estimate_sale_price_date?: string | null;
    estimate_sale_price_source?: string | null;
    estimate_sale_price?: number | null;
    exterior_finish_source?: string | null;
    exterior_finish?: string | null;
    exterior_year_last_renovated_source?: string | null;
    exterior_year_last_renovated?: number | null;
    fence_type_source?: string | null;
    fence_type?: string | null;
    fire_suppression_type_source?: string | null;
    fire_suppression_type?: string | null;
    fireplace_source?: string | null;
    fireplace?: number | null;
    floor_above_ground_source?: string | null;
    floor_above_ground?: number | null;
    floor_below_ground_source?: string | null;
    floor_below_ground?: number | null;
    floor_material_type_first_source?: string | null;
    floor_material_type_first?: string | null;
    floor_material_type_second_source?: string | null;
    floor_material_type_second?: string | null;
    floor_plan_type_source?: string | null;
    floor_plan_type?: string | null;
    for_rent_by_source?: string | null;
    for_rent_by?: string | null;
    for_rent_cat_allowed_by_owner_source?: string | null;
    for_rent_cat_allowed_by_owner?: boolean | null;
    for_rent_dog_allowed_by_owner_source?: string | null;
    for_rent_dog_allowed_by_owner?: boolean | null;
    for_rent_has_own_laundry_source?: string | null;
    for_rent_has_own_laundry?: boolean | null;
    for_rent_has_seperate_external_entrance_source?: string | null;
    for_rent_has_seperate_external_entrance?: boolean | null;
    for_rent_list_date_source?: string | null;
    for_rent_list_date?: string | null;
    for_rent_source?: string | null;
    for_rent_what_is_source?: string | null;
    for_rent_what_is?: string | null;
    for_rent?: boolean | null;
    for_sale_by_source?: string | null;
    for_sale_by?: string | null;
    for_sale_list_date_source?: string | null;
    for_sale_list_date?: string | null;
    for_sale_source?: string | null;
    for_sale?: boolean | null;
    foundation_type_source?: string | null;
    foundation_type?: string | null;
    fronts_onto_source?: string | null;
    fronts_onto?: string | null;
    garage_240v_first_source?: string | null;
    garage_240v_first?: boolean | null;
    garage_240v_second_source?: string | null;
    garage_240v_second?: boolean | null;
    garage_floor_above_ground_first_source?: string | null;
    garage_floor_above_ground_first?: number | null;
    garage_floor_above_ground_second_source?: string | null;
    garage_floor_above_ground_second?: number | null;
    garage_floor_below_ground_first_source?: string | null;
    garage_floor_below_ground_first?: number | null;
    garage_floor_below_ground_second_source?: string | null;
    garage_floor_below_ground_second?: number | null;
    garage_heating_type_first_source?: string | null;
    garage_heating_type_first?: string | null;
    garage_heating_type_second_source?: string | null;
    garage_heating_type_second?: string | null;
    garage_parking_space_first_source?: string | null;
    garage_parking_space_first?: number | null;
    garage_parking_space_second_source?: string | null;
    garage_parking_space_second?: number | null;
    garage_tandem_first_source?: string | null;
    garage_tandem_first?: boolean | null;
    garage_tandem_second_source?: string | null;
    garage_tandem_second?: boolean | null;
    garage_type_first_source?: string | null;
    garage_type_first?: string | null;
    garage_type_second_source?: string | null;
    garage_type_second?: string | null;
    gas_provider_source?: string | null;
    gas_provider?: string | null;
    has_assigned_storage_space_source?: string | null;
    has_assigned_storage_space?: boolean | null;
    has_backyard_source?: string | null;
    has_backyard?: boolean | null;
    has_frontyard_source?: string | null;
    has_frontyard?: boolean | null;
    has_private_indoor_gym_source?: string | null;
    has_private_indoor_gym?: boolean | null;
    has_private_indoor_hot_tub_source?: string | null;
    has_private_indoor_hot_tub?: boolean | null;
    has_private_indoor_sauna_source?: string | null;
    has_private_indoor_sauna?: boolean | null;
    has_private_indoor_swimming_pool_source?: string | null;
    has_private_indoor_swimming_pool?: boolean | null;
    has_private_indoor_workshop_source?: string | null;
    has_private_indoor_workshop?: boolean | null;
    has_private_outdoor_gym_source?: string | null;
    has_private_outdoor_gym?: boolean | null;
    has_private_outdoor_hot_tub_source?: string | null;
    has_private_outdoor_hot_tub?: boolean | null;
    has_private_outdoor_sauna_source?: string | null;
    has_private_outdoor_sauna?: boolean | null;
    has_private_outdoor_swimming_pool_source?: string | null;
    has_private_outdoor_swimming_pool?: boolean | null;
    has_rv_parking_source?: string | null;
    has_rv_parking?: boolean | null;
    has_shared_indoor_gym_source?: string | null;
    has_shared_indoor_gym?: boolean | null;
    has_shared_indoor_hot_tub_source?: string | null;
    has_shared_indoor_hot_tub?: boolean | null;
    has_shared_indoor_sauna_source?: string | null;
    has_shared_indoor_sauna?: boolean | null;
    has_shared_indoor_swimming_pool_source?: string | null;
    has_shared_indoor_swimming_pool?: boolean | null;
    has_shared_indoor_workshop_source?: string | null;
    has_shared_indoor_workshop?: boolean | null;
    has_shared_laundry_room_source?: string | null;
    has_shared_laundry_room?: boolean | null;
    has_shared_outdoor_gym_source?: string | null;
    has_shared_outdoor_gym?: boolean | null;
    has_shared_outdoor_hot_tub_source?: string | null;
    has_shared_outdoor_hot_tub?: boolean | null;
    has_shared_outdoor_sauna_source?: string | null;
    has_shared_outdoor_sauna?: boolean | null;
    has_shared_outdoor_swimming_pool_source?: string | null;
    has_shared_outdoor_swimming_pool?: boolean | null;
    heating_brand_first_source?: string | null;
    heating_brand_first?: string | null;
    heating_install_year_first_source?: string | null;
    heating_install_year_first?: number | null;
    heating_type_first_source?: string | null;
    heating_type_first?: string | null;
    heating_type_second_source?: string | null;
    heating_type_second?: string | null;
    humidifier_brand_source?: string | null;
    humidifier_brand?: string | null;
    humidifier_install_year_source?: string | null;
    humidifier_install_year?: number | null;
    humidifier_type_source?: string | null;
    humidifier_type?: string | null;
    image_source?: string | null;
    image?: string | null;
    in_cul_de_sac_source?: string | null;
    in_cul_de_sac?: boolean | null;
    interior_sq_m_source?: string | null;
    interior_sq_m?: number | null;
    internet_provider_source?: string | null;
    internet_provider?: string | null;
    irrigation_system_type_source?: string | null;
    irrigation_system_type?: string | null;
    is_commercial_source?: string | null;
    is_commercial?: boolean | null;
    is_condemned_source?: string | null;
    is_condemned?: boolean | null;
    is_judicial_sale_source?: string | null;
    is_judicial_sale?: boolean | null;
    is_residential_source?: string | null;
    is_residential?: boolean | null;
    kitchen_appliance_brand_source?: string | null;
    kitchen_appliance_brand?: string | null;
    kitchen_appliance_finish_source?: string | null;
    kitchen_appliance_finish?: string | null;
    kitchen_countertop_material_source?: string | null;
    kitchen_countertop_material?: string | null;
    kitchen_dishwasher_install_year_source?: string | null;
    kitchen_dishwasher_install_year?: number | null;
    kitchen_dishwasher_type_source?: string | null;
    kitchen_dishwasher_type?: string | null;
    kitchen_fridge_install_year_source?: string | null;
    kitchen_fridge_install_year?: number | null;
    kitchen_fridge_type_source?: string | null;
    kitchen_fridge_type?: string | null;
    kitchen_microwave_install_year_source?: string | null;
    kitchen_microwave_install_year?: number | null;
    kitchen_microwave_type_source?: string | null;
    kitchen_microwave_type?: string | null;
    kitchen_stove_heat_type_source?: string | null;
    kitchen_stove_heat_type?: string | null;
    kitchen_stove_install_year_source?: string | null;
    kitchen_stove_install_year?: number | null;
    kitchen_stove_type_source?: string | null;
    kitchen_stove_type?: string | null;
    kitchen_year_last_renovated_source?: string | null;
    kitchen_year_last_renovated?: number | null;
    land_depth_m_source?: string | null;
    land_depth_m?: number | null;
    land_frontage_m_source?: string | null;
    land_frontage_m?: number | null;
    latitude_source?: string | null;
    latitude?: number | null;
    laundry_appliance_brand_source?: string | null;
    laundry_appliance_brand?: string | null;
    laundry_appliance_finish_source?: string | null;
    laundry_appliance_finish?: string | null;
    laundry_dryer_install_year_source?: string | null;
    laundry_dryer_install_year?: number | null;
    laundry_dryer_type_source?: string | null;
    laundry_dryer_type?: string | null;
    laundry_washer_install_year_source?: string | null;
    laundry_washer_install_year?: number | null;
    laundry_washer_type_source?: string | null;
    laundry_washer_type?: string | null;
    list_price_source?: string | null;
    list_price?: number | null;
    living_room_year_last_renovated_source?: string | null;
    living_room_year_last_renovated?: number | null;
    loading_bays_source?: string | null;
    loading_bays?: number | null;
    longitude_source?: string | null;
    longitude?: number | null;
    maintenance_fee_include_electric_source?: string | null;
    maintenance_fee_include_electric?: boolean | null;
    maintenance_fee_include_heat_source?: string | null;
    maintenance_fee_include_heat?: boolean | null;
    maintenance_fee_include_water_source?: string | null;
    maintenance_fee_include_water?: boolean | null;
    maintenance_fee_source?: string | null;
    maintenance_fee?: number | null;
    need_ceiling_repair_source?: string | null;
    need_ceiling_repair?: boolean | null;
    need_cooling_repair_source?: string | null;
    need_cooling_repair?: boolean | null;
    need_drywall_repair_source?: string | null;
    need_drywall_repair?: boolean | null;
    need_electrical_repair_source?: string | null;
    need_electrical_repair?: boolean | null;
    need_floor_repair_source?: string | null;
    need_floor_repair?: boolean | null;
    need_foundation_repair_source?: string | null;
    need_foundation_repair?: boolean | null;
    need_heating_repair_source?: string | null;
    need_heating_repair?: boolean | null;
    need_mold_repair_source?: string | null;
    need_mold_repair?: boolean | null;
    need_paint_repair_source?: string | null;
    need_paint_repair?: boolean | null;
    need_plumbing_repair_source?: string | null;
    need_plumbing_repair?: boolean | null;
    need_roof_repair_source?: string | null;
    need_roof_repair?: boolean | null;
    need_window_repair_source?: string | null;
    need_window_repair?: boolean | null;
    neighborhood_id?: string | null;
    outbuilding_type_fifth_source?: string | null;
    outbuilding_type_fifth?: string | null;
    outbuilding_type_first_source?: string | null;
    outbuilding_type_first?: string | null;
    outbuilding_type_fourth_source?: string | null;
    outbuilding_type_fourth?: string | null;
    outbuilding_type_second_source?: string | null;
    outbuilding_type_second?: string | null;
    outbuilding_type_third_source?: string | null;
    outbuilding_type_third?: string | null;
    ownership_type_source?: string | null;
    ownership_type?: string | null;
    parent_address_source?: string | null;
    parent_address?: string | null;
    parking_lot_parking_space_legal_type_source?: string | null;
    parking_lot_parking_space_legal_type?: string | null;
    parking_lot_parking_space_source?: string | null;
    parking_lot_parking_space?: number | null;
    plumbing_pipe_material_source?: string | null;
    plumbing_pipe_material?: string | null;
    postal_code_source?: string | null;
    postal_code?: string | null;
    property_id?: string | null;
    property_type_source?: string | null;
    property_type?: string | null;
    province_abbreviation_source?: string | null;
    province_abbreviation?: string | null;
    province_slug?: string | null;
    province_source?: string | null;
    province?: string | null;
    rent_includes_electricity_provider?: string | null;
    rent_includes_electricity?: boolean | null;
    rent_includes_furniture_source?: string | null;
    rent_includes_furniture?: boolean | null;
    rent_includes_heat_source?: string | null;
    rent_includes_heat?: boolean | null;
    rent_includes_internet_provider?: string | null;
    rent_includes_internet?: boolean | null;
    rent_includes_water_provider?: string | null;
    rent_includes_water?: boolean | null;
    rent_price_source?: string | null;
    rent_price?: number | null;
    roof_is_functional_source?: string | null;
    roof_is_functional?: boolean | null;
    roof_material_install_year_source?: string | null;
    roof_material_install_year?: number | null;
    roof_material_source?: string | null;
    roof_material?: string | null;
    score_air_quality_source?: string | null;
    score_air_quality?: number | null;
    score_bicycle_source?: string | null;
    score_bicycle?: number | null;
    score_cell_coverage_source?: string | null;
    score_cell_coverage?: number | null;
    score_curb_appeal_source?: string | null;
    score_curb_appeal?: number | null;
    score_earthquake_source?: string | null;
    score_earthquake?: number | null;
    score_education_source?: string | null;
    score_education?: number | null;
    score_entertainment_source?: string | null;
    score_entertainment?: number | null;
    score_family_source?: string | null;
    score_family?: number | null;
    score_fire_source?: string | null;
    score_fire?: number | null;
    score_flood_source?: string | null;
    score_flood?: number | null;
    score_food_and_drink_source?: string | null;
    score_food_and_drink?: number | null;
    score_hurricane_source?: string | null;
    score_hurricane?: number | null;
    score_internet_provider?: string | null;
    score_internet?: number | null;
    score_nature_source?: string | null;
    score_nature?: number | null;
    score_parking_source?: string | null;
    score_parking?: number | null;
    score_quiet_source?: string | null;
    score_quiet?: number | null;
    score_retirement_source?: string | null;
    score_retirement?: number | null;
    score_safety_source?: string | null;
    score_safety?: number | null;
    score_shopping_source?: string | null;
    score_shopping?: number | null;
    score_smell_source?: string | null;
    score_smell?: number | null;
    score_tornado_source?: string | null;
    score_tornado?: number | null;
    score_total_source?: string | null;
    score_total?: number | null;
    score_traffic_source?: string | null;
    score_traffic?: number | null;
    score_transit_source?: string | null;
    score_transit?: number | null;
    score_walkability_source?: string | null;
    score_walkability?: number | null;
    score_water_quality_source?: string | null;
    score_water_quality?: number | null;
    secondary_suite_has_own_laundry_first_source?: string | null;
    secondary_suite_has_own_laundry_first?: boolean | null;
    secondary_suite_has_own_laundry_second_source?: string | null;
    secondary_suite_has_own_laundry_second?: boolean | null;
    secondary_suite_has_own_laundry_third_source?: string | null;
    secondary_suite_has_own_laundry_third?: boolean | null;
    secondary_suite_seperate_entrance_first_source?: string | null;
    secondary_suite_seperate_entrance_first?: boolean | null;
    secondary_suite_seperate_entrance_second_source?: string | null;
    secondary_suite_seperate_entrance_second?: boolean | null;
    secondary_suite_seperate_entrance_third_source?: string | null;
    secondary_suite_seperate_entrance_third?: boolean | null;
    secondary_suite_type_first_source?: string | null;
    secondary_suite_type_first?: string | null;
    secondary_suite_type_second_source?: string | null;
    secondary_suite_type_second?: string | null;
    secondary_suite_type_third_source?: string | null;
    secondary_suite_type_third?: string | null;
    shared_bicycle_storage_type_source?: string | null;
    shared_bicycle_storage_type?: string | null;
    shared_garage_240v_first_source?: string | null;
    shared_garage_240v_first?: boolean | null;
    shared_garage_240v_second_source?: string | null;
    shared_garage_240v_second?: boolean | null;
    shared_garage_floor_above_ground_first_source?: string | null;
    shared_garage_floor_above_ground_first?: number | null;
    shared_garage_floor_above_ground_second_source?: string | null;
    shared_garage_floor_above_ground_second?: number | null;
    shared_garage_floor_below_ground_first_source?: string | null;
    shared_garage_floor_below_ground_first?: number | null;
    shared_garage_floor_below_ground_second_source?: string | null;
    shared_garage_floor_below_ground_second?: number | null;
    shared_garage_heating_type_first_source?: string | null;
    shared_garage_heating_type_first?: string | null;
    shared_garage_heating_type_second_source?: string | null;
    shared_garage_heating_type_second?: string | null;
    shared_garage_legal_type_first_source?: string | null;
    shared_garage_legal_type_first?: string | null;
    shared_garage_legal_type_second_source?: string | null;
    shared_garage_legal_type_second?: string | null;
    shared_garage_parking_space_first_source?: string | null;
    shared_garage_parking_space_first?: number | null;
    shared_garage_parking_space_second_source?: string | null;
    shared_garage_parking_space_second?: number | null;
    shared_garage_tandem_first_source?: string | null;
    shared_garage_tandem_first?: boolean | null;
    shared_garage_tandem_second_source?: string | null;
    shared_garage_tandem_second?: boolean | null;
    shared_garage_type_first_source?: string | null;
    shared_garage_type_first?: string | null;
    shared_garage_type_second_source?: string | null;
    shared_garage_type_second?: string | null;
    summer_garbage_pickup_day_source?: string | null;
    summer_garbage_pickup_day?: string | null;
    summer_garbage_pickup_schedule_source?: string | null;
    summer_garbage_pickup_schedule?: string | null;
    summer_organic_waste_pickup_day_source?: string | null;
    summer_organic_waste_pickup_day?: string | null;
    summer_organic_waste_pickup_schedule_source?: string | null;
    summer_organic_waste_pickup_schedule?: string | null;
    summer_recycle_pickup_day_source?: string | null;
    summer_recycle_pickup_day?: string | null;
    summer_recycle_pickup_schedule_source?: string | null;
    summer_recycle_pickup_schedule?: string | null;
    view_type_source?: string | null;
    view_type?: string | null;
    water_heater_brand_source?: string | null;
    water_heater_brand?: string | null;
    water_heater_install_year_source?: string | null;
    water_heater_install_year?: number | null;
    water_heater_type_source?: string | null;
    water_heater_type?: string | null;
    water_softener_brand_source?: string | null;
    water_softener_brand?: string | null;
    water_softener_install_year_source?: string | null;
    water_softener_install_year?: number | null;
    water_softener_type_source?: string | null;
    water_softener_type?: string | null;
    water_provider_source?: string | null;
    water_provider?: string | null;
    winter_garbage_pickup_day_source?: string | null;
    winter_garbage_pickup_day?: string | null;
    winter_garbage_pickup_schedule_source?: string | null;
    winter_garbage_pickup_schedule?: string | null;
    winter_organic_waste_pickup_day_source?: string | null;
    winter_organic_waste_pickup_day?: string | null;
    winter_organic_waste_pickup_schedule_source?: string | null;
    winter_organic_waste_pickup_schedule?: string | null;
    winter_recycle_pickup_day_source?: string | null;
    winter_recycle_pickup_day?: string | null;
    winter_recycle_pickup_schedule_source?: string | null;
    winter_recycle_pickup_schedule?: string | null;
    workshop_type_source?: string | null;
    workshop_type?: string | null;
    zoning_source?: string | null;
    zoning?: string | null;
    cash_on_cash_return?: number | null;
    cap_rate?: number | null;
    return_on_investment?: number | null;
    construction_age?: number | null;
    humidifier_brand_type?: string | null;
    is_farmland?: boolean | null;
    land_area_sq_m?: number | null;
    need_flooring_repair?: boolean | 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;
    need_flooring_repair_source?: string | null;
    is_farmland_source?: string | null;
}

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