Most Houski API endpoints let you filter by any field, or geographically via bounding box or polygon (examples below).
Filter by adding query parameters to the request URL. To filter the properties endpoint by full bathrooms, use any of:
| Filter | Name | Example |
|---|---|---|
| Greater than | gt | bathroom_full_gt=3 |
| Greater than or equal to | gte | bathroom_full_gte=3 |
| Less than | lt | bathroom_full_lt=3 |
| Less than or equal to | lte | bathroom_full_lte=3 |
| Equal to | eq | bathroom_full_eq=3 |
| Not equal to | neq | bathroom_full_neq=3 |
| In the given list | in | property_type_in=House,Apartment |
| Matches a regular expression | regex | bathroom_full_regex=1|3 |
| Does not match a regular expression | nregex | bathroom_full_nregex=1|3 |
There are two ways to narrow a request to a place. The place parameters (country_abbreviation, province_abbreviation, city, community and address) name the place the way you would write it. A place filter, such as city_eq, is an ordinary filter on a field, and it compares your text with the stored value exactly.
The place parameters ignore letter case, accents, punctuation, and whether words are joined by spaces, hyphens or underscores. So city=calgary and city=Calgary find the same city, and city=st-catharines finds St. Catharines. Each one needs the levels above it: city needs country_abbreviation and province_abbreviation, and community and address need city as well. The properties endpoint takes all five. The aggregate and location endpoints take all but address.
A place filter matches only the exact stored text, letter case included. city_eq=Calgary finds Calgary, but city_eq=calgary finds nothing.
Addresses need extra care. Neither address nor address_eq rewrites abbreviations, and stored addresses write road types in full. So address=151 mckerrell place se finds the property, and address=151 mckerrell pl se does not. For an address as a person typed it, with abbreviations, typos or missing parts, use the search endpoint and pass the property_id it returns to the other endpoints.
Use the place parameters whenever you narrow a request to one place. Use a place filter only where no place parameter fits: on the geocoding and map endpoints, which have no place parameters, for several places at once (community_in), or for a city name across every province. When you do, copy the spelling from the location endpoint. Id filters such as city_id_eq and property_id_eq compare an id taken from a response, which is exact by nature, so they are a good choice too.
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&bedroom_eq=3&country_abbreviation=ca&page=1&province_abbreviation=ab&results_per_page=3&select=bedroom,den,estimate_list_price,latitude,longitude"
const houski_properties_data = 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('bedroom_eq', '3');
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,latitude,longitude');
const response = await fetch(url);
const data = await response.json();
return data;
}
(async () => {
let data: PropertiesResponse = await houski_properties_data();
// Log the response
console.log(data);
})();
{
"cache_hit": true,
"cost_cents": 1.02,
"data": [
{
"address": "107 100 Picci Court",
"bedroom": 3,
"den": 0,
"estimate_list_price": 406003,
"latitude": 51.59273,
"longitude": -113.490425,
"property_id": "102aca74c9c48bf6"
},
{
"address": "214 1 Street SE",
"bedroom": 3,
"den": 0,
"estimate_list_price": 359014,
"latitude": 51.58849,
"longitude": -113.48332,
"property_id": "109ce04cfe6ec406"
},
{
"address": "209 First Street NW",
"bedroom": 3,
"den": 0,
"estimate_list_price": 406003,
"latitude": 51.592194,
"longitude": -113.48641,
"property_id": "10a4b105b8c0320b"
}
],
"error": "",
"pagination": {
"current_page": 1,
"has_next_page": true,
"has_previous_page": false,
"page_total": 379071
},
"price_quote": false,
"result_total": 1137211,
"time_ms": 72,
"ui_info": {
"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"
}
}
curl -X GET "https://api.houski.ca/properties?api_key=YOUR_API_KEY&bbox_ne_lat=51.1005&bbox_ne_lng=-113.508&bbox_sw_lat=50.6668&bbox_sw_lng=-114.4593&country_abbreviation=ca&page=1&province_abbreviation=ab&results_per_page=3&select=bedroom,den,estimate_list_price,latitude,longitude"
const houski_properties_data = 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('bbox_ne_lat', '51.1005');
url.searchParams.set('bbox_ne_lng', '-113.508');
url.searchParams.set('bbox_sw_lat', '50.6668');
url.searchParams.set('bbox_sw_lng', '-114.4593');
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,latitude,longitude');
const response = await fetch(url);
const data = await response.json();
return data;
}
(async () => {
let data: PropertiesResponse = await houski_properties_data();
// Log the response
console.log(data);
})();
{
"cache_hit": true,
"cost_cents": 1.02,
"data": [
{
"address": "222 Cimarron Drive",
"bedroom": 4,
"den": 0,
"estimate_list_price": 652686,
"latitude": 50.706657,
"longitude": -113.96009,
"property_id": "10493b4095f37705"
},
{
"address": "33 Cimarron Springs Circle",
"bedroom": 4,
"den": 0,
"estimate_list_price": 915579,
"latitude": 50.70759,
"longitude": -113.9561,
"property_id": "10cbb87ce2216e2d"
},
{
"address": "458 Cimarron Boulevard",
"bedroom": 3,
"den": 0,
"estimate_list_price": 666132,
"latitude": 50.705498,
"longitude": -113.95678,
"property_id": "11c4fbfedfebcb22"
}
],
"error": "",
"pagination": {
"current_page": 1,
"has_next_page": true,
"has_previous_page": false,
"page_total": 174431
},
"price_quote": false,
"result_total": 523293,
"time_ms": 75,
"ui_info": {
"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"
}
}
curl -X GET "https://api.houski.ca/properties?api_key=YOUR_API_KEY&country_abbreviation=ca&page=1&polygon=51.0447_-114.0719,51.0544_-114.0719,51.0544_-114.0856,51.0452_-114.0856&province_abbreviation=ab&results_per_page=3&select=bedroom,den,estimate_list_price,latitude,longitude"
const houski_properties_data = 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('country_abbreviation', 'ca');
url.searchParams.set('page', '1');
url.searchParams.set('polygon', '51.0447_-114.0719,51.0544_-114.0719,51.0544_-114.0856,51.0452_-114.0856');
url.searchParams.set('province_abbreviation', 'ab');
url.searchParams.set('results_per_page', '3');
url.searchParams.set('select', 'bedroom,den,estimate_list_price,latitude,longitude');
const response = await fetch(url);
const data = await response.json();
return data;
}
(async () => {
let data: PropertiesResponse = await houski_properties_data();
// Log the response
console.log(data);
})();
{
"cache_hit": true,
"cost_cents": 1.02,
"data": [
{
"address": "1010 1 Avenue NW",
"bedroom": 3,
"den": 0,
"estimate_list_price": 603159,
"latitude": 51.054256,
"longitude": -114.08299,
"property_id": "116840ad9cae73b8"
},
{
"address": "203 1087 2 Avenue NW",
"bedroom": 2,
"den": 0,
"estimate_list_price": 1155471,
"latitude": 51.053944,
"longitude": -114.08541,
"property_id": "129864426968a4e9"
},
{
"address": "105 9 Street NW",
"bedroom": 2,
"den": 0,
"estimate_list_price": 699765,
"latitude": 51.053703,
"longitude": -114.08186,
"property_id": "13ce2ccbf802d549"
}
],
"error": "",
"pagination": {
"current_page": 1,
"has_next_page": true,
"has_previous_page": false,
"page_total": 3072
},
"price_quote": false,
"result_total": 9215,
"time_ms": 67,
"ui_info": {
"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"
}
}
When using expand to include datasets (listings, permits, assessments), expand filters control which expanded records are returned. They work independently of your main property filters and only affect expanded data.
Format: expand_[field]_[operator]=[value]
| Filter | Description | Example |
|---|---|---|
| expand_listing_date_gte | Listings after specified date | expand_listing_date_gte=2024-01-01 |
| expand_listing_date_gt | Listings strictly after date | expand_listing_date_gt=2024-06-01 |
| expand_listing_event_eq | Specific listing events | expand_listing_event_eq=Price decrease |
| expand_estimate_list_price_lt | Listing prices below amount | expand_estimate_list_price_lt=500000 |
Useful for finding properties with specific permits or renovations.
| Filter | Description | Example |
|---|---|---|
| expand_permit_application_date_gte | Permits applied for after date | expand_permit_application_date_gte=2023-01-01 |
| expand_permit_content_regex | Search permit descriptions with regex | "expand_permit_content_regex=(?i)\b(secondary|suite)\b" |
| Search type | Regex pattern |
|---|---|
| Secondary suites | "(?i)\b(secondary|suite)\b" |
| Renovations | "(?i)\b(renovation|remodel)\b" |
| Kitchen and bathroom upgrades | "(?i)\b(kitchen|bathroom)\b" |
| Outdoor improvements | "(?i)\b(deck|patio|fence)\b" |
| Garage and parking | "(?i)\b(garage|carport|parking)\b" |
| Filter | Description | Example |
|---|---|---|
| expand_assessment_year_eq | Assessments for specific year | expand_assessment_year_eq=2024 |
| expand_assessment_value_gte | Assessment value minimums | expand_assessment_value_gte=500000 |
| expand_assessment_value_lte | Assessment value maximums | expand_assessment_value_lte=800000 |
filter_expand_match controls which properties return based on expanded data availability.
| Value | Behavior | Use case |
|---|---|---|
| Default (no parameter) | All properties, with or without expanded data | General search with optional expansion |
| any | Only properties with ANY requested expansion data | Listing OR permit data |
| all | Only properties with ALL requested expansion data | Listing AND permit data |
If you only need properties that have a data set, and you do not need the expanded records themselves, filter on the matching boolean field instead: has_expand_listings, has_expand_listings_rent, has_expand_permits, or has_expand_assessments. For example, has_expand_listings_eq=true returns only properties with listing history. These are fast indexed filters on the property record itself, so they cost less and run faster than expanding a data set with filter_expand_match=all just to check for its presence.
curl -X GET "https://api.houski.ca/properties?api_key=YOUR_API_KEY&country_abbreviation=ca&expand=listings&expand_listing_date_gt=2024-04-01&expand_listing_event_eq=Price decrease&filter_expand_match=all&page=1&province_abbreviation=ab&results_per_page=3&select=estimate_list_price"
const houski_properties_data = 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('country_abbreviation', 'ca');
url.searchParams.set('expand', 'listings');
url.searchParams.set('expand_listing_date_gt', '2024-04-01');
url.searchParams.set('expand_listing_event_eq', 'Price decrease');
url.searchParams.set('filter_expand_match', 'all');
url.searchParams.set('page', '1');
url.searchParams.set('province_abbreviation', 'ab');
url.searchParams.set('results_per_page', '3');
url.searchParams.set('select', 'estimate_list_price');
const response = await fetch(url);
const data = await response.json();
return data;
}
(async () => {
let data: PropertiesResponse = await houski_properties_data();
// Log the response
console.log(data);
})();
{
"cache_hit": true,
"cost_cents": 0.76,
"data": [
{
"address": "209 Centre Street S",
"estimate_list_price": 294219,
"listings": [
{
"expand_estimate_list_price": 395000,
"expand_listing_date": "2025-06-18",
"expand_listing_event": "Price decrease",
"property_id": "10d59ae6f801874f"
}
],
"property_id": "10d59ae6f801874f"
},
{
"address": "509 A Linview Road",
"estimate_list_price": 246171,
"listings": [
{
"expand_estimate_list_price": 219900,
"expand_listing_date": "2024-09-27",
"expand_listing_event": "Price decrease",
"property_id": "29266c1a5693740a"
}
],
"property_id": "29266c1a5693740a"
},
{
"address": "503 Linview Road",
"estimate_list_price": 523276,
"listings": [
{
"expand_estimate_list_price": 546500,
"expand_listing_date": "2025-08-27",
"expand_listing_event": "Price decrease",
"property_id": "40a4e9405269d195"
},
{
"expand_estimate_list_price": 499900,
"expand_listing_date": "2025-09-04",
"expand_listing_event": "Price decrease",
"property_id": "40a4e9405269d195"
}
],
"property_id": "40a4e9405269d195"
}
],
"error": "",
"pagination": {
"current_page": 1,
"has_next_page": true,
"has_previous_page": false,
"page_total": 33808
},
"price_quote": false,
"result_total": 101423,
"time_ms": 360,
"ui_info": {
"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"
}
}
curl -X GET "https://api.houski.ca/properties?api_key=YOUR_API_KEY&country_abbreviation=ca&expand=permits&expand_permit_application_date_gte=2023-01-01&expand_permit_content_regex=(?i)\b(secondary|suite)\b&filter_expand_match=all&page=1&province_abbreviation=ab&results_per_page=3&select=estimate_list_price"
const houski_properties_data = 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('country_abbreviation', 'ca');
url.searchParams.set('expand', 'permits');
url.searchParams.set('expand_permit_application_date_gte', '2023-01-01');
url.searchParams.set('expand_permit_content_regex', '(?i)\b(secondary|suite)\b');
url.searchParams.set('filter_expand_match', 'all');
url.searchParams.set('page', '1');
url.searchParams.set('province_abbreviation', 'ab');
url.searchParams.set('results_per_page', '3');
url.searchParams.set('select', 'estimate_list_price');
const response = await fetch(url);
const data = await response.json();
return data;
}
(async () => {
let data: PropertiesResponse = await houski_properties_data();
// Log the response
console.log(data);
})();
{
"cache_hit": true,
"cost_cents": 1.16,
"data": [
{
"address": "10101 112 Street",
"estimate_list_price": 1945590,
"permits": [
{
"expand_permit_application_date": "2026-05-08",
"expand_permit_content": "Permit type: Plumbing|Status: Finalled|Description: \nCommercial Addition and Interior Renovation - NWP New Location for Trades Program\n72 Fixtures|Work item type: Institutional: New Development|Work class: 01-New construction|Construction type: 624-Post-secondary institution; technical institute, trade school|Occupancy code: A-2 Assembly for occupancies not elsewhere classified in Group A|Neighbourhood: GATEWAY|Subdivision: GATEWAY PHASE 3D|Valuation: N/A|Building area m2: N/A|Location type: Address|Jurisdiction: CGP|Parcel: 12573",
"expand_permit_id": "PR260090-PL1",
"expand_permit_type": "Building",
"property_id": "ffc1a999b66e12e9"
},
{
"expand_permit_application_date": "2026-05-12",
"expand_permit_content": "Permit type: Electrical|Status: Under Inspection|Description: \nCommercial Addition and Interior Renovation - NWP New Location for Trades Program\nElectrical service upgrade from 120/208V to 347/600V service distribution\nMain electrical distribution equipment\nBranch power distribution systems\nInterior lighting systems\nEmergency lighting systems\nExit signage systems\nExterior lighting systems\nLighting control systems\nFire Alarm systems\nGeneral receptacle systems\nCommunication and data systems\nMechanical equipment electrical connections\n600A 347/600V|Work item type: Institutional: New Development|Work class: 01-New construction|Construction type: 624-Post-secondary institution; technical institute, trade school|Occupancy code: A-2 Assembly for occupancies not elsewhere classified in Group A|Neighbourhood: GATEWAY|Subdivision: GATEWAY PHASE 3D|Valuation: N/A|Building area m2: N/A|Location type: Address|Jurisdiction: CGP|Parcel: 12573",
"expand_permit_id": "PR260090-EL1",
"expand_permit_type": "Building",
"property_id": "ffc1a999b66e12e9"
},
{
"expand_permit_application_date": "2026-05-08",
"expand_permit_content": "Permit type: Gas|Status: Finalled|Description: \nCommercial Addition and Interior Renovation - NWP New Location for Trades Program\nBTU 12M|Work item type: Institutional: New Development|Work class: 01-New construction|Construction type: 624-Post-secondary institution; technical institute, trade school|Occupancy code: A-2 Assembly for occupancies not elsewhere classified in Group A|Neighbourhood: GATEWAY|Subdivision: GATEWAY PHASE 3D|Valuation: N/A|Building area m2: N/A|Location type: Address|Jurisdiction: CGP|Parcel: 12573",
"expand_permit_id": "PR260090-GS1",
"expand_permit_type": "Building",
"property_id": "ffc1a999b66e12e9"
},
{
"expand_permit_application_date": "2026-04-28",
"expand_permit_content": "Permit type: Building - Commercial|Status: Occupancy Released|Description: Commercial Alteration - Old Ford Hansen Location. New Location for NWP Trades\nExterior and Interior Demolition of Structural components only|Work item type: Institutional: Alteration|Work class: 03-Alteration and improvements|Construction type: 624-Post-secondary institution; technical institute, trade school|Occupancy code: Not Required|Neighbourhood: GATEWAY|Subdivision: GATEWAY PHASE 3D|Valuation: 50000.0|Building area m2: 46|Location type: Address|Jurisdiction: CGP|Parcel: 12573",
"expand_permit_id": "PR260067-BD1",
"expand_permit_type": "Building",
"expand_permit_value": 50000,
"property_id": "ffc1a999b66e12e9"
},
{
"expand_permit_application_date": "2026-05-06",
"expand_permit_content": "Permit type: Building - Commercial|Status: Occupancy Released|Description: Commercial Alteration - Old Ford Hansen Location. New Location for NWP Trades\nExterior and Interior Demolition of Structural components only|Work item type: Institutional: New Development|Work class: 01-New construction|Construction type: 624-Post-secondary institution; technical institute, trade school|Occupancy code: A-2 Assembly for occupancies not elsewhere classified in Group A|Neighbourhood: GATEWAY|Subdivision: GATEWAY PHASE 3D|Valuation: 9100000.0|Building area m2: 0|Location type: Address|Jurisdiction: CGP|Parcel: 12573",
"expand_permit_id": "PR260090-BD1",
"expand_permit_type": "Building",
"expand_permit_value": 9100000,
"property_id": "ffc1a999b66e12e9"
}
],
"property_id": "ffc1a999b66e12e9"
},
{
"address": "9238 109 Avenue",
"estimate_list_price": 433246,
"permits": [
{
"expand_permit_application_date": "2023-09-25",
"expand_permit_content": "Permit type: Gas|Status: Finalled|Description: Install radiant heater in detached garage. Secondary gas line from garage to house. Tie in house.\n40,000 BTU's|Work item type: Gas Unit Heater|Work class: N/A|Construction type: N/A|Occupancy code: N/A|Neighbourhood: MOUNTVIEW|Subdivision: N/A|Valuation: N/A|Building area m2: N/A|Location type: Address|Jurisdiction: CGP|Parcel: 3824",
"expand_permit_id": "PR231026-GS1",
"expand_permit_type": "Building",
"property_id": "d34b56f57f521493"
}
],
"property_id": "d34b56f57f521493"
},
{
"address": "9209 100 Street",
"estimate_list_price": 2132727,
"permits": [
{
"expand_permit_application_date": "2026-07-31",
"expand_permit_content": "Permit type: Electrical|Status: Under Inspection|Description: \nCommercial Alteration - Boardwalk Park Estates\nInterior Renovations of Leasing Office and one suite\nAmps 30 Volts 240\n|Work item type: Commercial: Alteration|Work class: 03-Alteration and improvements|Construction type: 310-Apartment, apartment building, duplex, triplex, quadruple|Occupancy code: Not Required|Neighbourhood: HIGHLAND PARK|Subdivision: N/A|Valuation: 12000.0|Building area m2: N/A|Location type: Address|Jurisdiction: CGP|Parcel: 18930",
"expand_permit_id": "PR251841-EL1",
"expand_permit_type": "Building",
"expand_permit_value": 12000,
"property_id": "da070de392947ae"
},
{
"expand_permit_application_date": "2025-11-20",
"expand_permit_content": "Permit type: Building - Commercial|Status: Issued|Description: Commercial Alteration - Boardwalk Park Estates\nInterior Renovations of Leasing Office and one suite|Work item type: Commercial: Alteration|Work class: 03-Alteration and improvements|Construction type: 310-Apartment, apartment building, duplex, triplex, quadruple|Occupancy code: Not Required|Neighbourhood: HIGHLAND PARK|Subdivision: N/A|Valuation: 190000.0|Building area m2: 0|Location type: Address|Jurisdiction: CGP|Parcel: 18930",
"expand_permit_id": "PR251841-BD1",
"expand_permit_type": "Building",
"expand_permit_value": 190000,
"property_id": "da070de392947ae"
}
],
"property_id": "da070de392947ae"
}
],
"error": "",
"pagination": {
"current_page": 1,
"has_next_page": true,
"has_previous_page": false,
"page_total": 5051
},
"price_quote": false,
"result_total": 15153,
"time_ms": 664,
"ui_info": {
"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"
}
}
curl -X GET "https://api.houski.ca/properties?api_key=YOUR_API_KEY&country_abbreviation=ca&expand=assessments&expand_assessment_value_gte=750000&expand_assessment_year_eq=2024&filter_expand_match=all&page=1&province_abbreviation=ab&results_per_page=3&select=estimate_list_price"
const houski_properties_data = 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('country_abbreviation', 'ca');
url.searchParams.set('expand', 'assessments');
url.searchParams.set('expand_assessment_value_gte', '750000');
url.searchParams.set('expand_assessment_year_eq', '2024');
url.searchParams.set('filter_expand_match', 'all');
url.searchParams.set('page', '1');
url.searchParams.set('province_abbreviation', 'ab');
url.searchParams.set('results_per_page', '3');
url.searchParams.set('select', 'estimate_list_price');
const response = await fetch(url);
const data = await response.json();
return data;
}
(async () => {
let data: PropertiesResponse = await houski_properties_data();
// Log the response
console.log(data);
})();
{
"cache_hit": true,
"cost_cents": 0.65999997,
"data": [
{
"address": "39 Greenfield Link",
"assessments": [
{
"expand_assessment_value": 779400,
"expand_assessment_year": 2024,
"property_id": "32967a0637cb24fb"
}
],
"estimate_list_price": 1055844,
"property_id": "32967a0637cb24fb"
},
{
"address": "103 8701 94 Street",
"assessments": [
{
"expand_assessment_value": 15506800,
"expand_assessment_year": 2024,
"property_id": "8cdc0d45450ca8bb"
}
],
"estimate_list_price": 623341,
"property_id": "8cdc0d45450ca8bb"
},
{
"address": "31 Greenfield Link",
"assessments": [
{
"expand_assessment_value": 777700,
"expand_assessment_year": 2024,
"property_id": "c98df0fadfe00ef"
}
],
"estimate_list_price": 1047381,
"property_id": "c98df0fadfe00ef"
}
],
"error": "",
"pagination": {
"current_page": 1,
"has_next_page": true,
"has_previous_page": false,
"page_total": 43001
},
"price_quote": false,
"result_total": 129001,
"time_ms": 1145,
"ui_info": {
"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"
}
}