zoocasa.com APIzoocasa.com ↗
Access Canadian real estate listings, sold homes, rental properties, and comparable listings from Zoocasa via 3 structured API endpoints.
curl -X GET 'https://api.parse.bot/scraper/52fda4e5-f786-48ef-b404-6b8963b51f80/search_listings?page=1&location=toronto-on&listing_type=buy&listing_status=available' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for real estate listings in a specific location (city and province). Supports active and sold listings, rental listings, and property type filtering. Returns listing paths and API slugs for use with get_listing_details.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination |
| locationrequired | string | City and province slug (e.g., 'toronto-on', 'mississauga-on') |
| listing_type | string | Transaction type: 'buy' or 'rent' |
| property_type | string | Filter by home type: 'houses', 'condos', 'townhouses' |
| listing_status | string | Listing status: 'available' or 'sold' |
{
"type": "object",
"fields": {
"page": "integer current page number",
"listings": "array of listing summaries with path, api_slug, and url",
"location": "string location slug used in the request",
"total_on_page": "integer count of listings returned on this page"
},
"sample": {
"data": {
"page": 1,
"listings": [
{
"url": "https://www.zoocasa.com/toronto-on-real-estate/king-spadina/1905-125-blue-jays-way",
"path": "toronto-on-real-estate/king-spadina/1905-125-blue-jays-way",
"api_slug": "1905-125-blue-jays-way-toronto-on"
}
],
"location": "toronto-on",
"total_on_page": 21
},
"status": "success"
}
}About the zoocasa.com API
The Zoocasa API provides structured access to Canadian real estate data across 3 endpoints, covering active and sold listings, rental properties, and comparable homes. Use search_listings to query by city and province, filter by property type or transaction type, then retrieve full property attributes — price, MLS number, bedrooms, bathrooms, sold date — via get_listing_details. A third endpoint surfaces comparable properties for any given listing ID.
Searching Listings
The search_listings endpoint accepts a location slug in the format city-province (e.g., toronto-on, mississauga-on) and returns an array of listing summaries. Each summary includes a path, api_slug, and url. The listing_status parameter filters between available and sold inventory, while listing_type switches between buy and rent. Property type filtering via the property_type parameter covers houses, condos, and townhouses. Results are paginated; the response includes total_on_page and the current page number so you can iterate through large result sets.
Retrieving Listing Details
get_listing_details takes the api_slug returned from search_listings and returns the full property record. Response fields include price, sold-price, sold-at, bedrooms, bathrooms, mls-num, city, province, and status. The sold-at and sold-price fields are null for active listings and populated for sold records, making the endpoint useful for both live market data and historical transaction analysis.
Comparable Properties
get_similar_listings accepts the numeric listing_id from a get_listing_details response and returns a total count alongside a full array of similar listing objects. Each object in the listings array carries the same property attributes as a standard listing detail response, so you can directly compare price points, bedroom counts, and status without additional requests.
- Build a property search tool filtered by city, province, and property type using
search_listings - Pull MLS numbers and sold prices to track historical transaction data for a given market
- Generate comparable market analyses by fetching similar listings via
get_similar_listings - Monitor active rental inventory in a specific Canadian city using
listing_type=rent - Feed listing details — price, bedrooms, bathrooms — into a valuation or scoring model
- Alert users when new sold listings appear in a target neighborhood by polling
listing_status=sold
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Zoocasa offer an official developer API?+
What does `search_listings` return vs. `get_listing_details`?+
search_listings returns lightweight summaries — path, api_slug, and url — along with pagination metadata. get_listing_details returns the full property record for a single listing: price, sold price, sold date, MLS number, bedrooms, bathrooms, city, province, and status. You need the api_slug from search_listings to call get_listing_details.Does the API cover all Canadian provinces, or only specific regions?+
location parameter accepts city-province slugs, so coverage depends on what Zoocasa indexes for a given market. Not every Canadian municipality may return results. You can test coverage by querying target location slugs directly.Does the API return open house schedules, agent contact details, or listing photos?+
How does pagination work in `search_listings`?+
page parameter controls which page of results is returned. Each response includes total_on_page (the count of listings on the current page) and the page number. There is no total_results field in the response, so you continue paginating until a page returns fewer results than expected or an empty listings array.