Realtor.ca Listings & Price Changes Scraper avatar

Realtor.ca Listings & Price Changes Scraper

Pricing

from $5.00 / 1,000 listing scrapeds

Go to Apify Store
Realtor.ca Listings & Price Changes Scraper

Realtor.ca Listings & Price Changes Scraper

Scrape public Realtor.ca Canadian MLS listings by city, map bounds, listing URL, or MLS#. Returns price, beds, baths, agents, photos, and price-change signals. Optional detail enrich and cross-run price monitor. Cookieless to the user. MCP-ready.

Pricing

from $5.00 / 1,000 listing scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

What does Realtor.ca Listings & Price Changes Scraper do?

Scrape public Canadian MLS listings from Realtor.ca by city, map bounding box, map/listing URL, or MLS#. Each dataset row includes list price, beds/baths, address, agent/brokerage, photo URLs, and public price-change signals when Realtor.ca exposes them. Optional detail enrich pulls remarks and any public price history; optional monitor mode compares prices across scheduled runs. Runs on Apify with Residential proxy, scheduling, API/MCP access — cookieless to the user.

Why use it?

  • Canadian market inventory for investors, agents, and proptech pipelines
  • Price-drop monitoring without fabricating history (public labels + your own cross-run snapshot)
  • MCP-ready inputs/outputs for AI agents (apify--realtor-ca-listings-scraper)
  • Honest empty/block outcomes instead of hollow successes

Data fields

FieldDescription
mlsNumberMLS / Realtor.ca reference
propertyIdRealtor.ca property ID
listingUrlPublic listing URL
price / priceDisplayNumeric CAD price + display string
addressStreet, city, province, postal, raw text
lat / lonCoordinates when published
bedrooms / bathroomsCounts from building payload
propertyType / buildingType / sqftType and size when present
photoUrls / photoCountUp to 20 photo URLs
agentName / agentPhone / brokerageNameListing contact
priceChangeDetectedPublic change and/or monitor diff
previousPrice / newPrice / monitorDiffCross-run monitor fields
priceHistoryPublic detail history only (never invented)
scrapedAtISO-8601 scrape time

How to use

  1. Open the Actor in Apify Console and use the downtown Toronto map prefill, or set city / startUrls / mlsNumbers.
  2. Set maxResults (prefill 5 for a cheap sample). Enable enrichDetails and/or monitorMode if needed.
  3. Keep RESIDENTIAL proxy (required for Imperva).
  4. Run → download the dataset as JSON/CSV/Excel, or call via API/MCP.

Input

Provide at least one of: mapBoundingBox, city, startUrls, mlsNumbers. See the Input tab for full field help.

{
"mapBoundingBox": {
"LatitudeMin": 43.63,
"LatitudeMax": 43.68,
"LongitudeMin": -79.43,
"LongitudeMax": -79.35,
"ZoomLevel": 13
},
"transactionType": "for-sale",
"maxResults": 5,
"enrichDetails": false,
"monitorMode": false,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Output example

{
"mlsNumber": "C1234567",
"propertyId": "27891234",
"listingUrl": "https://www.realtor.ca/real-estate/27891234/123-example-st-toronto",
"price": 899000,
"priceDisplay": "$899,000",
"address": {
"street": "123 Example St",
"city": "Toronto",
"province": "Ontario",
"postalCode": "M5V2T6",
"text": "123 Example St|Toronto, Ontario M5V2T6"
},
"bedrooms": 2,
"bathrooms": 2,
"agentName": "Jane Agent",
"brokerageName": "Example Realty Inc.",
"priceChangeDetected": false,
"priceHistory": [],
"source": "property-search",
"scrapedAt": "2026-09-15T12:00:00.000Z"
}

You can download the dataset in JSON, HTML, CSV, or Excel.

Pricing (PAY_PER_EVENT)

EventPrice
apify-actor-start$0.00005
listing-scraped (primary)$0.005 / listing
listing-detail-enriched$0.008 / enriched listing

Platform usage is passed through to the run user. Example: 5 search listings ≈ $0.025 + start + Residential compute.

Honest scope & limitations

  • Canada / Realtor.ca only — not Realtor.com (US).
  • No fabricated price historypriceHistory is empty unless PropertyDetails exposes it; monitor mode only compares your prior snapshot.
  • Imperva + Residential — datacenter proxies usually fail; blocks finish as UPSTREAM_FAILED / PARTIAL with truthful warnings.
  • Public listing fields only; no login, no private MLS feeds, no off-market data.

MCP

Expose as apify--realtor-ca-listings-scraper via Apify MCP. Input titles/descriptions are written for tool-calling agents.

This Actor collects publicly available listing information from Realtor.ca for legitimate research, analysis, and automation. You are responsible for complying with Realtor.ca terms, applicable Canadian privacy/consumer laws, and your own data-use policies. Do not use scraped data for spam, harassment, or unauthorized solicitation. The Actor author is not affiliated with the Canadian Real Estate Association (CREA) or Realtor.ca.