Skip to content
Scrappa Get API key
Zolo API 1 credit/request

Zolo Search API Documentation

GET https://scrappa.co/api/zolo/search

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.

Zolo Search API Documentation 1 credit/request

Endpoint

Request preview
GET
https://scrappa.co/api/zolo/search
Auth header
x-api-key
Cost
1 credit/request
location = Austin, Texas
Response preview
200 OK
{
    "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"
                },
...

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.

location string Required

Required. A city or neighbourhood name. Use the search_area value from the autocomplete route. Example: Toronto.

Example value Austin, Texas
mode string Optional

sale (default) or rent.

Example value example
min_price integer Optional

Minimum price in CAD. For rent this is the monthly rent.

Example value 10
max_price integer Optional

Maximum price in CAD. Must be at least min_price.

Example value 10
min_beds integer Optional

Minimum number of bedrooms. A listing shown as 2+1 bedrooms counts as 2.

Example value 10
min_baths integer Optional

Minimum number of bathrooms.

Example value 10
property_type string Optional

condo. Sale searches only.

Example value example
sort string Optional

recommended (default), price_desc, price_asc, newest, oldest or most_beds.

Example value relevance
page 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.

Example value 1

Response Schema

Example response fields are illustrative; inspect the JSON before integrating.

Example response fields

Scan these fields before integrating.

data meta success
JSON Response
200 OK
{
    "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.

422

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"
}
422

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."
}
503

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.