Skip to content

Realtor.ca Scraper

Try for free

Scrape realtor.ca listings for sale or rent across Canada by city or map URL: MLS number, price, address, beds, baths, size, land, photos, coordinates, agent and brokerage, plus optional full details.

🏡 Realtor.ca Scraper

Scrape realtor.ca, Canada's biggest real estate site, for homes for sale and for rent. Type a city like "Toronto, ON" or paste a realtor.ca map URL and get MLS numbers, prices, addresses, beds, baths, sizes, photos, coordinates, agents and brokerages as clean JSON, CSV or Excel. No login, no account, and 1,000 listings cost about $0.60.

✨ Why use Realtor.ca Scraper?

  • ⚡ Fast: reads realtor.ca's own listing API directly, about 1,000 listings in 30 seconds in our tests.
  • 🗺️ Search by city or by map: type a place name or paste any realtor.ca map URL with your filters already set.
  • 🔓 Past the 600 limit: realtor.ca only shows 600 listings per search. Large areas are split into map tiles automatically, with duplicates removed.
  • 🧾 Full details on demand: turn on full details for rooms and dimensions, appliances, heating and cooling, amenities, taxes and maintenance fees.
  • 📊 Ready for spreadsheets: flat columns (price, address, beds, baths, agent, brokerage) next to the complete realtor.ca record, or a simplified flat-only output.
  • 💸 Cheap: pay per listing, no monthly fee.

🎯 Use cases

  • 📈 Market research: track asking prices, inventory and new listings by city, neighbourhood or building type.
  • 🏘️ Investment analysis: find duplexes, triplexes and multi-family properties in a price range and compare rent levels.
  • 🔔 Listing alerts: schedule a daily run with "Listed within 1 day" to catch new listings first.
  • 🤝 Agent and brokerage lead lists: see which agents and brokerages list the most properties in an area.
  • 🧮 Rental market data: collect monthly rents, sizes and locations for rental pricing models.
  • 🗺️ Mapping and GIS: every listing has latitude and longitude.

🚀 How to use

  1. Add one or more places to Locations (for example Toronto, ON, Kelowna, BC), or paste realtor.ca URLs into Start URLs.
  2. Choose filters: for sale or for rent, building type, price range, bedrooms, bathrooms, listing age, keywords.
  3. Set Max listings per search (0 = everything in the area).
  4. Optionally turn on Full listing details.
  5. Run it and export the results as JSON, CSV, Excel or HTML, or read them through the API.

📥 Input

FieldWhat it does
locationsCanadian cities, neighbourhoods or regions, one per line
startUrlsrealtor.ca map URLs, listing URLs (/real-estate/...) or city pages (/on/toronto/real-estate)
maxListingsListings per location or URL (default 20, 0 = all)
transactionTypesale or rent
propertyCategoryresidential or commercial
propertyType / buildingTypefor example condo, multi-family / house, townhouse, apartment
minPrice, maxPricePrice range in CAD (monthly rent for rentals)
minBeds, minBathsMinimum bedrooms and bathrooms
listedWithinDaysOnly listings added in the last N days
keywordsWords that must appear in the listing
sortnewest, oldest, price-low, price-high
getDetailsLoad each listing's full detail record
simplifyOutputSave only flat fields
{
  "locations": ["Toronto, ON", "Ottawa, ON"],
  "transactionType": "sale",
  "buildingType": "house",
  "minPrice": 500000,
  "maxPrice": 1200000,
  "minBeds": 3,
  "maxListings": 200,
  "getDetails": false
}

Filters apply to the Locations searches. Map URLs keep the filters that are already in the URL, so you can set everything on realtor.ca/map and copy the address bar.

📤 Output

Every listing contains the complete realtor.ca record (Id, MlsNumber, PublicRemarks, Building, Property, Land, Individual, Tags, ...) plus these flat fields:

FieldExample
UrlListing page on realtor.ca
MlsNumberC1234567
Price / PriceValue$849,000 / 849000
TransactionTypeFor sale or For rent
Address, StreetAddress, City, Province, PostalCode
Latitude, Longitude43.6655, -79.4103
BuildingType, PropertyType, OwnershipTypeHouse, Single Family, Freehold
Bedrooms, BathroomTotal, HalfBathTotal3 + 1, 3, 1
SizeInterior, FloorArea, LandSize, LandFrontage
ParkingType, ParkingSpaceTotal, MaintenanceFee, TaxAmount
ListedDateWhen the listing was added (UTC)
AgentName, AgentPosition, AgentPhone, AgentUrlListing agent
OrganizationName, OrganizationPhone, OrganizationAddressBrokerage
PhotoURL, PhotoURLs, PhotoCountHigh-resolution photos

Example (fictional values, shortened):

{
  "Id": "29000001",
  "MlsNumber": "C1234567",
  "Url": "https://www.realtor.ca/real-estate/29000001/12-sample-avenue-toronto",
  "Price": "$849,000",
  "PriceValue": 849000,
  "TransactionType": "For sale",
  "Address": "12 SAMPLE AVENUE, Toronto (Trinity-Bellwoods), Ontario M6J0A1",
  "City": "Toronto (Trinity-Bellwoods)",
  "Province": "Ontario",
  "PostalCode": "M6J0A1",
  "Latitude": 43.6501,
  "Longitude": -79.4152,
  "BuildingType": "Row / Townhouse",
  "Bedrooms": "2 + 1",
  "BathroomTotal": "2",
  "SizeInterior": "1100 sqft",
  "LandSize": "18 x 90 FT",
  "ListedDate": "2026-10-14T13:05:00Z",
  "AgentName": "Jane Example",
  "AgentPhone": "(416) 555-0100",
  "OrganizationName": "EXAMPLE REALTY INC., Brokerage",
  "PhotoURL": "https://cdn.realtor.ca/listings/.../highres/c1234567_1.jpg",
  "PhotoCount": 32,
  "PublicRemarks": "Bright townhouse steps from the park ...",
  "Building": { "Type": "Row / Townhouse", "Bedrooms": "2 + 1", "BathroomTotal": "2" },
  "Property": { "Price": "$849,000", "Type": "Single Family", "ParkingType": "Garage" }
}

With Full listing details on, you also get Building.Room (each room with level and dimensions), appliances, heating and cooling, amenities, History, media links, the uploading board and more.

💰 Pricing

You pay $0.60 per 1,000 listings ($0.0006 per listing), with or without full details. Platform usage (compute and proxy traffic) is billed separately and is small: in our tests a 1,000-listing run used about 30 seconds of compute at 512 MB and a few MB of proxy traffic, well under $0.02. So 1,000 listings ≈ $0.62 in total.

❓ FAQ

Is it legal to scrape realtor.ca? The scraper only collects listing information that realtor.ca shows publicly to every visitor. Check realtor.ca's terms and your local laws for your use case, and handle agent contact details according to privacy rules such as Canada's anti-spam law (CASL).

Do I need a realtor.ca account or my own proxy? No. No login is used. The run uses the platform's residential proxy by default, because realtor.ca blocks most datacenter IPs.

How many listings can I get? Realtor.ca shows at most 600 listings per search. The scraper splits big areas into smaller map tiles, so you can collect whole cities (Toronto has more than 13,000 listings for sale). The only exception is a single building or point with more than 600 listings, which realtor.ca itself cannot show in full.

Why are some fields empty? Listing boards fill different fields. Rentals have LeaseRent instead of a sale price, condos often have no land size, and some listings hide the address. Empty fields are left empty, never invented.

Can I schedule it or use the API? Yes. Schedule daily runs with "Listed within (days)" set to 1 for new listings, and read results through the API or integrations.

What about sold listings? Realtor.ca does not publish sold prices, so sold data is not available.

⚠️ Limits

  • Only active listings that realtor.ca shows publicly (no sold history).
  • maxListings applies per location or URL, not to the whole run.
  • Very large searches that are split into map tiles are not sorted across tiles.
  • Agent email addresses are never shown by realtor.ca (it uses a contact form), so they are not included.
  • Place names are resolved by realtor.ca's own location search; a place's rectangle can include a bit of neighbouring areas, just like the realtor.ca map.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.