Zolo Search API returns about 33 listings per page for sale or rent in a Canadian city or neighbourhood. Filter by price, minimum bedrooms and bathrooms and condo type, and sort by price, date or bedrooms. Every item satisfies the filters you sent. Items that do not match, such as sale promotions on a rent page, are removed and counted in excluded_by_filters. The page you ask for is the page you get, and a page past the end returns an empty list. bedrooms is the first number of a value like 2+1, the full text is in bedrooms_text. Rent searches support filters and sorting on page 1 only. Failed requests are not billed.
Run this endpoint
Endpoint
Parameters
Start with the required fields, then add optional filters only when your use case needs them.
Runnable path
1 required parameter needed before sending a request.
8 optional filters available.
string
Required
Required. A city or neighbourhood name. Use the search_area value from the autocomplete route. Example: Toronto.
Austin, Texas
string
Optional
sale (default) or rent.
example
integer
Optional
Minimum price in CAD. For rent this is the monthly rent.
10
integer
Optional
Maximum price in CAD. Must be at least min_price.
10
integer
Optional
Minimum number of bedrooms. A listing shown as 2+1 bedrooms counts as 2.
10
integer
Optional
Minimum number of bathrooms.
10
string
Optional
condo. Sale searches only.
example
string
Optional
recommended (default), price_desc, price_asc, newest, oldest or most_beds.
relevance
integer
Optional
One-based page number, 1 to 100 (default 1). Rent searches with filters or a sort work on page 1 only: a higher page answers 422.
1
Response Schema
Example response fields are illustrative; inspect the JSON before integrating.
Example response fields
Scan these fields before integrating.
data
meta
success
{
"data": {
"mode": "sale",
"items": [
{
"id": "A1914043",
"price": 500000,
"status": "For Sale",
"address": {
"city": "Toronto",
"region": "ON",
"street": "411-3845 Lake Shore Boulevard W",
"neighbourhood": "Long Branch"
},
"bedrooms": 3,
"latitude": 43.590672,
"bathrooms": 2,
"brokerage": "Century 21 Miller Real Estate Ltd.",
"longitude": -79.544205,
"thumbnail": "https://photos.zolo.ca/411-3845-lake-shore-boulevard-west-toronto-W13748688-1-p.jpg?2026-09-05+10%3A57%3A08",
"mls_number": "W13748688",
"price_text": "$500,000",
"size_range": "1000-1199",
"listed_text": "50 days",
"listing_url": "https://www.zolo.ca/toronto-real-estate/3845-lake-shore-boulevard-west/411",
"photo_count": 33,
"listing_path": "/toronto-real-estate/3845-lake-shore-boulevard-west/411",
"bedrooms_text": "3",
"price_reduced": false,
"property_type": "Condo",
"bathrooms_text": "2",
"days_on_market": 50
}
],
"location": "Toronto",
"pagination": {
"page": 1,
"per_page": 33,
"total_items": 345,
"total_pages": 11
},
"applied_filters": {
"sort": "price_asc",
"min_beds": 3,
"max_price": 700000,
"min_price": 500000
},
"excluded_by_filters": 0
},
"meta": {
"billable": true,
"endpoint_family": "search"
},
"success": true
}
Errors
Handle these documented responses before retrying or showing customer-facing failures.
Validation Error
A parameter is missing or invalid. This response is not billable.
{
"errors": {
"location": [
"The location field is required."
]
},
"message": "The request validation failed"
}Rent filters past page 1
Rent filters and sorting cannot be applied past page 1. Remove the filters to page through rent results. This response is not billable.
{
"errors": {
"page": [
"Rent filters and sorting work on page 1 only. Remove the filters to page through rent results."
]
},
"message": "Rent filters and sorting work on page 1 only. Remove the filters to page through rent results."
}Upstream Unavailable
Zolo could not be reached, or returned data that does not match the request. This response is not billable and is retryable.
{
"meta": {
"billable": false,
"retryable": true,
"endpoint_family": "search"
},
"error": {
"code": "UPSTREAM_UNAVAILABLE",
"message": "Zolo could not be reached. Please retry shortly."
},
"success": false
}Generate Code with AI
Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.
Try It Live
Test this endpoint in our interactive playground with real data.