Realtor.ca Canada Home Listings & Agent Contacts Scraper
Scrape Canadian real-estate listings by city or area: MLS number, price, full address, beds, baths, property type, size, geo-coordinates, description, photos and the listing agent name, phone and brokerage. Filter by price and bedrooms. Export to JSON, CSV or Excel.
{ "imageUrl": "https://cdn.realtor.ca/listings/TS639205631410…", "mlsNumber": "N13605282", "listingId": "30079001", "listingUrl": "https://www.realtor.ca/real-estate/30079001/65…", "transactionType": "For Sale", "price": 999000, "priceFormatted": "$999,000", "currency": "CAD", "addressText": "65 WALLACE STREET, Vaughan (West Woodbridge), …" }
Every run returns clean, typed records, ready for your CRM, spreadsheet or database.
- One clean record per result, deduped and normalized
- Stable schema in JSON, CSV or Excel, or read it via the Apify API
- Pay per use in the cloud, nothing to install or maintain
A real example record, exactly the shape you receive.
| Image Url | Mls Number | Listing Id | Listing Url |
|---|---|---|---|
| https://cdn.realtor.ca/listings/T… | N13605282 | 30079001 | https://www.realtor.ca/real-estat… |
| https://cdn.realtor.ca/listings/T… | E13605224 | 30078991 | https://www.realtor.ca/real-estat… |
| https://cdn.realtor.ca/listings/T… | C13605260 | 30078987 | https://www.realtor.ca/real-estat… |
| https://cdn.realtor.ca/listings/T… | C13605264 | 30078989 | https://www.realtor.ca/real-estat… |
{ "imageUrl": "https://cdn.realtor.ca/listings/TS639205631410…", "mlsNumber": "N13605282", "listingId": "30079001", "listingUrl": "https://www.realtor.ca/real-estate/30079001/65…", "transactionType": "For Sale", "price": 999000, "priceFormatted": "$999,000", "currency": "CAD", "addressText": "65 WALLACE STREET, Vaughan (West Woodbridge), …" }
Frequently asked questions
Which areas can I search?
Any Canadian city, town, neighbourhood or area. Add several at once and the run collects listings for each, tagging every record with the area that produced it.
Do I get the listing agent's contact details?
Yes. Every record includes the listing agent name and phone, their position, the co-listing agent when there is one, and the brokerage name, phone and address.
Can I filter by price or number of bedrooms?
Yes. Set a minimum and maximum price and a minimum number of bedrooms, and the filters apply to every area in the run.
How fresh is the data?
Listings, prices and agent details are read live at run time, so each record reflects the listing at the moment of the run (see observedAt).
Ready when you are.
Run the scraper live on Apify right now, or have us build one tailored to exactly what you need.