Realtor.ca Scraper - Canadian MLS Listings
Pricing
from $2.50 / 1,000 results
Realtor.ca Scraper - Canadian MLS Listings
Scrape Realtor.ca Canadian MLS listings by city. Extract for-sale and rental prices, beds, baths, sqft, MLS numbers, agents, and photos. A Realtor.ca / CREA API alternative for Excel, CSV, or JSON.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
4 days ago
Last modified
Categories
Share
Realtor.ca Scraper — Canadian MLS Listings
Scrape Realtor.ca for-sale and rental listings by Canadian city — then download structured MLS data as Excel, CSV, or JSON.
This Actor is a practical Realtor.ca / CREA API alternative for market research, investor screening, rental comps, and lead lists. Enter a city such as Toronto, ON, choose For sale, For rent, or Both, and get listing rows with MLS numbers, prices, beds, baths, size, agents, photos, and addresses.
- Pull Canadian homes for sale and rentals from Realtor.ca
- Resolve cities to map bounding boxes, then call CREA
PropertySearch_Post - Optionally enrich with PropertyDetails (remarks, extra photos)
- Filter by CAD price range — or paste a realtor.ca city URL
- Export to Excel / CSV / JSON, or connect Make, n8n, Zapier, Python, or MCP
- Pay per event — Actor start + each Dataset listing; no subscription
What does the Realtor.ca Scraper do?
It turns a Canadian city search on Realtor.ca into a clean Apify Dataset of MLS listings.
Under the hood, the Actor:
- Resolves your city to a map bounding box
- Warms a Camoufox browser session on Realtor.ca (Imperva-aware)
- Calls CREA
PropertySearch_Postfrom the page context with challenge cookies attached - Optionally fetches PropertyDetails to enrich each row
- Writes normalized records you can download or push into automations
Apify Canadian RESIDENTIAL proxy is required (prefilled, country CA).
What data can you extract from Realtor.ca?
| Data point | For sale | For rent |
|---|---|---|
| Address / listing name | ✅ | ✅ |
| MLS number & listing ID | ✅ | ✅ |
| List price or rent (CAD) | ✅ | ✅ |
| Beds / baths / size | ✅ | ✅ |
| Property type & ownership | ✅ | ✅ |
| GPS coordinates | ✅ | ✅ |
| Listing URL & main image | ✅ | ✅ |
| Agent / office | ✅ | ✅ |
| Time on Realtor.ca | ✅ | ✅ |
| Public remarks (when enriched) | ✅ | ✅ |
Every Dataset row also includes scrapedAt, country = CA, and source = realtor.ca. A RUN_SUMMARY record in the key-value store reports counts and warnings.
What you can do with it
1. Scrape Canadian homes for sale in a metro
Enter a city like Toronto, ON, set listing type to For sale, and get structured rows with MLS number, price, beds, baths, size, agent, and a direct listing URL — ready for comps or investor shortlists.
2. Scrape Canadian rentals
Set listing type to For rent. Rows include rent/price display, beds/baths, size, and agent/office when present.
3. Cover sale and rent in one run
Set listingType to both. maxResults is split across sale and rent when both are selected.
4. Feed Canadian MLS data into automations
Schedule the Actor and send the Dataset to Sheets, Slack, CRM, Make, n8n, Zapier, or an AI agent via Apify MCP / API.
How to scrape Realtor.ca (no code required)
- Click Try for free
- Enter a location (
Toronto, ONorVancouver, BC) - Choose For sale, For rent, or Both
- Optionally set max results and CAD price filters
- Keep Apify RESIDENTIAL proxy enabled (Canada)
- Click Start — open the Dataset tab when the run finishes
Start with maxResults: 5–10 to verify the market, then scale up.
Pricing — how much does it cost to scrape Realtor.ca?
Pay per event. No subscription.
| Event | Price | When charged |
|---|---|---|
apify-actor-start | $0.005 | When a normal run starts (scaled by allocated memory GB) |
apify-default-dataset-item (result) | $2.50 / 1,000 ($0.0025 each) | Each listing written to the default Dataset |
User pays platform usage costs: Yes — compute, residential proxy, and other platform usage are billed to the user in addition to event charges.
Example product charges (events only):
| Scenario | Approx. event charge |
|---|---|
| Canary: 10 listings | $0.005 + 10 × $0.0025 = $0.030 |
| City scan: 100 listings | $0.005 + $0.25 = $0.255 |
| 1,000 listings | $0.005 + $2.50 = $2.505 |
Platform usage (especially residential proxy + browser warmup) is separate and depends on run duration and memory.
Input
| Field | Description |
|---|---|
location | City and province, e.g. Toronto, ON, or a realtor.ca city URL |
listingType | sale, rent, or both |
maxResults | 1–200 (default 20) |
minPrice / maxPrice | Optional CAD filters |
enrichDetails | Fetch PropertyDetails per listing (default true) |
applicationId | Advanced CREA ApplicationId override (optional) |
proxyConfiguration | Apify RESIDENTIAL / CA required |
Open the Input tab in Console for the full form and tooltips.
Output example
You can download the Dataset as JSON, CSV, Excel, or HTML.
{"name": "123 King St W","listingType": "sale","mlsNumber": "C1234567","city": "Toronto","state": "ON","listPrice": 899000,"currency": "CAD","beds": "2 + 1","baths": "2","sqft": "900 sqft","agentName": "Jane Smith","listingUrl": "https://www.realtor.ca/real-estate/...","source": "realtor.ca","scrapedAt": "2026-07-17T00:00:00+00:00"}
Core fields include listingId, mlsNumber, address/price/size/GPS, listingUrl, imageUrl, agent/office, and detail extras such as descriptionText when enrichment is enabled.
Live View endpoints
When Standby / Live View is enabled, the Actor exposes a small OpenAPI surface for readiness and discovery:
| Endpoint | Purpose |
|---|---|
GET / | Readiness / service info |
GET /health | Health check |
GET /input-example | Low-cost example input |
GET /openapi.json | Deployed OpenAPI document |
Scraping still runs through a normal Actor run — Live View does not scrape Realtor.ca by itself.
Connect from code
Actor ID: lentic_clockss/realtor-ca-scraper
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("lentic_clockss/realtor-ca-scraper").call(run_input={"location": "Toronto, ON","listingType": "sale","maxResults": 10,"proxyConfiguration": {"useApifyProxy": True,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "CA",},})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item.get("name"), item.get("listPrice"), item.get("listingUrl"))
Use the same Actor ID in Make, n8n, Zapier, or Apify MCP for AI-agent workflows.
FAQ
Is there a free Realtor.ca / CREA API?
CREA / Realtor.ca does not offer a simple public listing API for bulk third-party export. This Actor gives you structured Canadian MLS data through Apify runs, Dataset exports, and integrations.
Can I scrape both for-sale and rental listings?
Yes. Set listingType to both. maxResults is split across sale and rent when both are selected.
Why is a Canadian residential proxy required?
Realtor.ca sits behind Imperva and blocks many datacenter/direct IPs. Apify RESIDENTIAL with country CA is required for reliable runs.
Why might a dense metro return fewer than maxResults?
CREA search uses a map bounding box with an internal result cap (~600). The Actor paginates within that cap and stops at maxResults. Very dense metros may need tighter price filters or smaller areas.
Can I schedule daily Realtor.ca scrapes?
Yes. Create an Apify schedule with the same input and send the Dataset to Sheets, Slack, a CRM, or your pipeline.
Is it legal to scrape Realtor.ca?
Use this Actor for legitimate research and analysis only. Respect Realtor.ca / CREA terms of use and applicable law. Results may include publicly displayed listing information; do not use personal data without a lawful basis.
Related Actors
- Realtor.com Scraper — US homes for sale and rent
- Realtor.com Agents Scraper — US agent profiles and contact data
- US Real Estate Scraper — multi-site US aggregation
Browse all Actors: apify.com/lentic_clockss