Realtor.ca Scraper - Canadian MLS Listings avatar

Realtor.ca Scraper - Canadian MLS Listings

Pricing

from $2.50 / 1,000 results

Go to Apify Store
Realtor.ca Scraper - Canadian MLS Listings

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

kane liu

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

6 days ago

Last modified

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

Worker URL is config, not code: the Actor reads WORKER_BASE_URL from Actor environment variables (plus optional per-run workerBaseUrl). If you migrate the worker to a new host, update WORKER_BASE_URL (and WORKER_AUTH if the API key changes) in Apify Console — no Actor code change required. Set WORKER_PROVIDES_PROXY=1 when the worker supplies its own PROXY_URL.

Free Apify plan limits (set by this Actor's developer)

LimitFree Apify planPaid Apify plan
Runs of this Actor10 totalUnlimited
Results per runUp to 200 (maxResults)Up to schema max (200)

These limits are set by the Actor developer, not Apify. Hitting the run cap finishes with a clear status message — it is not a platform bug. Upgrade to a paid Apify plan for unlimited runs.


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, this thin Actor:

  1. Validates input and mints an Apify Canadian RESIDENTIAL sticky proxyUrl
  2. Calls the hosted Cloud Run scrape worker over HTTPS + API key
  3. The worker resolves your city bbox, warms a stealth browser on Realtor.ca (Imperva-aware), and calls CREA PropertySearch_Post / PropertyDetails from page context
  4. Pushes normalized Dataset rows (same field names as before: country=CA, source=realtor.ca, MLS fields, scrapedAt, …)

When WORKER_PROVIDES_PROXY is unset, Apify Canadian RESIDENTIAL proxy (country CA) is minted and passed to the worker. With WORKER_PROVIDES_PROXY=1, the worker uses its own PROXY_URL instead.


What data can you extract from Realtor.ca?

Data pointFor saleFor 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.


More Actors like this

Need US Realtor.com, Zillow, other country portals, or a different vertical? Use a dedicated Actor below for structured fields. Stay on Realtor.ca Scraper for Canadian MLS for-sale and rental listings.

Similar real estate scrapers

Prefer another specialized scraper?

If your target has a specialized Actor below, use that first — usually cheaper and more structured than a generic scrape.

Jobs & Freelance

E-commerce

Travel & Stays

Social & Content

Ads Intelligence

Local & Maps

General tools

→ See the full catalog in Related Actors below, or browse apify.com/lentic_clockss.


How to scrape Realtor.ca (no code required)

  1. Click Try for free
  2. Enter a location (Toronto, ON or Vancouver, BC)
  3. Choose For sale, For rent, or Both
  4. Optionally set max results and CAD price filters
  5. Keep Apify RESIDENTIAL proxy enabled (Canada)
  6. 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.

EventPriceWhen charged
apify-actor-start$0.005When 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):

ScenarioApprox. 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) is separate and depends on run duration and memory. Browser acquisition runs on Cloud Run, not inside Actor CU.


Input

FieldDescription
locationCity and province, e.g. Toronto, ON / Saskatoon, SK, or a realtor.ca city URL
listingTypesale, rent, or both
propertyTypeGroupresidential, commercial, or all (default residential)
propertySearchTypeResidential subtype: any, condo, vacant_land, multi_family, etc. (default any; only with residential)
maxResults1–200 (default 20; free users capped at 200/run)
minPrice / maxPriceOptional CAD filters
enrichDetailsFetch PropertyDetails per listing (default true)
detailConcurrencyParallel detail fetches 1–4 (default 2)
maxDetailFailRatioFail when detail errors exceed this ratio (default 0.5)
applicationIdAdvanced CREA ApplicationId override (optional)
proxyConfigurationApify RESIDENTIAL CA when Actor mints proxy; ignored if WORKER_PROVIDES_PROXY=1
workerBaseUrlOptional per-run worker origin override (Advanced)

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:

EndpointPurpose
GET /Readiness / service info
GET /healthHealth check
GET /input-exampleLow-cost example input
GET /openapi.jsonDeployed 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 ApifyClient
client = 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

Why did my free-plan run stop after 10 runs?

Free Apify plan users get 10 runs of this Actor and up to 200 results per run. These limits are set by the Actor developer (not Apify). When you hit the run cap, the run finishes with a clear status message — it is not a platform bug. Upgrade to a paid Apify plan for unlimited runs.

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 commercial or condo-only inventory?

Yes. Set propertyTypeGroup to residential, commercial, or all. For residential subtypes use propertySearchType (condo, vacant_land, multi_family, etc.). Commercial and all require propertySearchType: any. Each dataset row includes the requested propertyTypeGroup and propertySearchType.

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 worker paginates within that cap and stops at maxResults. Very dense metros may need tighter price filters or smaller areas. Partial worker responses surface as warnings in RUN_SUMMARY.

How are unknown Canadian cities resolved?

Major metros use a versioned curated bbox table. Other Canadian cities are geocoded (Nominatim, Photon fallback) and expanded to an approximate map box.

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.

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.


All 77 public Actors from [lentic_clockss]. Click a name to open the Store detail page.

Jobs & Freelance

Real Estate

E-commerce

Travel & Stays

Social & Content

Ads Intelligence

Local & Maps

General Tools

→ Browse the full profile: apify.com/lentic_clockss