condos.ca APIcondos.ca ↗
Access condo listings, building details, pre-construction data, neighbourhood stats, and mortgage rates from Condos.ca via 7 structured API endpoints.
curl -X GET 'https://api.parse.bot/scraper/76380264-a705-4e8f-a5ac-70c7c676e2e7/search_listings?mode=Sale&page=0&sort=newest&limit=3&locality_id=1' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for condo listings with filters. Supports filtering by bedrooms (e.g., '1.1-1.9' for 1+1), price range, square footage, and locality/neighbourhood. Returns paginated results from Algolia search index.
| Param | Type | Description |
|---|---|---|
| beds | string | Bedrooms filter. Use range format like '1.1-1.9' for 1+1, '1-1' for 1BD, '2-2' for 2BD. The decimal represents den presence (e.g., 1.1 = 1 bed + den). |
| mode | string | Listing mode: 'Sale' or 'Rent'. |
| page | integer | Page number (0-indexed). |
| sort | string | Sort order: 'newest', 'cheapest', 'expensive'. |
| limit | integer | Max results per page. |
| query | string | Text search query. |
| max_sqft | integer | Maximum square footage. |
| min_sqft | integer | Minimum square footage. |
| max_price | integer | Maximum price. |
| min_price | integer | Minimum price. |
| locality_id | integer | Locality ID (1 for Toronto). |
| neighbourhood_id | integer | Neighbourhood ID to filter by. |
| neighbourhood_slug | string | Neighbourhood URL slug (e.g., 'toronto/king-west') to auto-resolve neighbourhood or locality ID. |
{
"type": "object",
"fields": {
"hits": "array of listing objects with id, mls_number, title, asking_price, bed_type, sqft, neighbourhood_name, url, and other listing details",
"page": "integer current page number",
"nbHits": "integer total number of matching results",
"nbPages": "integer total number of pages",
"hitsPerPage": "integer results per page"
},
"sample": {
"data": {
"hits": [
{
"id": 2188918,
"url": "toronto/upside-down-condos-2-812-lansdowne-ave/unit-1119-W13097216",
"sqft": 541,
"title": "1119 - 812 Lansdowne Avenue",
"bed_type": "1",
"mls_number": "W13097216",
"asking_price": 419000,
"neighbourhood_name": "Dovercourt-Wallace Emerson-Junction"
}
],
"page": 0,
"nbHits": 6798,
"nbPages": 2266,
"hitsPerPage": 3
},
"status": "success"
}
}About the condos.ca API
The Condos.ca API exposes 7 endpoints covering condo listings, building profiles, pre-construction developments, neighbourhood market statistics, and mortgage tools. Use search_listings to filter active sale or rental listings by bedrooms, price, square footage, and neighbourhood, then pull full listing or building details by URL slug. Response objects include MLS numbers, asking prices, bed types, historical price data, and live mortgage rates from Canadian lenders.
Listing Search and Detail
The search_listings endpoint accepts filters for mode (Sale or Rent), beds (using range notation like 1.1-1.9 for 1+1 layouts), min_sqft/max_sqft, and free-text query. Results are paginated via 0-indexed page and sortable by newest, cheapest, or expensive. Each hit in the hits array includes mls_number, asking_price, bed_type, sqft, neighbourhood_name, and a url field used as the slug input for get_listing_detail. The detail endpoint returns full SSR state including lookups, areasData, and neighbourhood hierarchy.
Buildings and Pre-Construction
get_building_detail takes a building slug (e.g., toronto/exhibit-residences-200-bloor-st-w) and returns building component info, area classification, and related lookup data. For new developments, search_preconstruction returns paginated building objects with construction_status, sales_status, developers, price_min, price_max, and average_psf. Filter by locality_id (1 for Toronto) or free-text query.
Neighbourhood Stats and Mortgage Tools
get_neighbourhood_stats resolves an area by slug, locality_id, or neighbourhood_id and returns summary_stats, area_stats with historical chart data, and insights with current market averages. The mortgage side covers two endpoints: get_mortgage_rates returns a list of Canadian lender rates with lender_name, rate, rate_type, mortgage_term, monthly_payment, and rate_hold_days; calculate_mortgage takes price, down_payment, rate, and years and returns principal, total_interest, total_mortgage, and monthly_payment using a standard Canadian amortization formula.
- Aggregate active Toronto condo listings filtered by bedroom count and price range for a property search app.
- Track pre-construction development pipeline by querying construction and sales status via
search_preconstruction. - Display neighbourhood-level historical price trends and market averages using
get_neighbourhood_stats. - Compare current fixed and variable mortgage rates from multiple Canadian lenders with
get_mortgage_rates. - Build an affordability calculator that takes user inputs and returns
monthly_paymentandtotal_interestviacalculate_mortgage. - Populate a building profile page with unit listings and area data by combining
get_building_detailandsearch_listings. - Monitor average price-per-square-foot trends for pre-construction condos using
average_psffrom search results.
| 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 Condos.ca offer an official developer API?+
How does the bedroom filter work in `search_listings`?+
beds parameter uses a range string format. Pass 1-1 for 1-bedroom units, 2-2 for 2-bedroom units, and 1.1-1.9 for 1+den layouts. The decimal portion encodes the den/half-bedroom distinction. Omitting the parameter returns listings across all bedroom counts.What market data does `get_neighbourhood_stats` return?+
data object containing summary_stats, area_stats with time-series chart data for historical price trends, insights with current average prices, and neighbourhood descriptions. You can query by URL slug (e.g., toronto/king-west), locality_id, or neighbourhood_id.Does the API cover cities outside Toronto?+
locality_id parameter and text query, but the documented default locality is Toronto (ID 1). Coverage of other Canadian cities depends on what Condos.ca indexes, and explicit locality IDs for other cities are not documented in the current API spec. You can fork this API on Parse and revise it to add a lookup endpoint for locality IDs or expand coverage to additional cities.Are sold or leased transaction records available?+
search_listings endpoint returns active listings (Sale or Rent mode). Historical sold and leased transaction records at the individual listing level are not a returned field in the current endpoints — aggregate sold/leased stats appear only in get_neighbourhood_stats summary data. You can fork this API on Parse and revise it to add a dedicated sold-transactions endpoint if that data is needed.