Realtor.ca Scraper| ๐Ÿ’ฐ $0.5 / 1K avatar

Realtor.ca Scraper| ๐Ÿ’ฐ $0.5 / 1K

Under maintenance

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Realtor.ca Scraper| ๐Ÿ’ฐ $0.5 / 1K

Realtor.ca Scraper| ๐Ÿ’ฐ $0.5 / 1K

Under maintenance

[๐Ÿ’ฐ $0.5 / 1K] Extract property listings and real estate agent profiles from Realtor.ca. Search by location, filter by price, property type, bedrooms, and more. Collect detailed property data, photos, agent contact info, and social media links across Canada.

Pricing

from $0.50 / 1,000 results

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

2

Bookmarked

60

Total users

13

Monthly active users

5 days ago

Last modified

Share

Realtor.ca Scraper

Pull MLS-grade property listings and licensed real-estate agent profiles from Realtor.ca โ€” asking prices, full Canadian addresses, GPS coordinates, building amenities, parking, brokerage details, agent phone numbers and social links, across every province and territory. One actor covers for-sale listings, rentals, and the realtor directory, so market analytics and agent prospecting run from a single configuration. Built for Canadian real estate investors, mortgage brokers, brokerage data teams, and CRM platforms that need current Realtor.ca data without building and maintaining a collection pipeline of their own.

Why This Scraper?

  • Two record types, one actor โ€” flip the mode dropdown between Property Listings and Real Estate Agents. Listings and the licensed-agent directory come from the same run configuration, with no second actor or second subscription.
  • All 13 provinces and territories โ€” search any Canadian city or region by name, from Toronto to Whitehorse. No per-province setup and no hand-built map coordinates.
  • Sale and rent in one schema, never confused โ€” every property row carries a priceType of sale or rent (100% of rows), so a rental row showing "$2,500/Monthly" can never be mistaken for a purchase price when you merge buy and rent runs into one table.
  • Compound bedroom counts handled the way Ontario boards write them โ€” a "3 + 1" listing arrives as bedrooms: 4 for filtering and bedroomsText: "3 + 1" so you keep the above-grade / below-grade split. On a Toronto run, 157 of 345 rows use the compound form.
  • Both the Realtor.ca listing ID and the MLS number on every property โ€” 100% fill on both, so rows join straight back to KW Command, Lone Wolf, or your own brokerage feed with no manual cross-walk.
  • Building amenities as the board published them, not a checkbox โ€” full strings like "Security/Concierge, Recreation Centre, Exercise Centre, Party Room, Storage - Locker". It is a condo-market field, published board by board, and we measured it: 63% of Toronto rows, 43% of Vancouver's, 13% of Calgary's, and none in Montreal or Winnipeg, so you know which markets carry the column before you run.
  • Agent contact block that actually contains contacts โ€” direct phone (99% of agent rows), full office street address (100%), personal website (43%), plus the agent's team or corporation name where they publish one.
  • Four social profiles per agent โ€” Facebook, Instagram, LinkedIn, and Twitter/X URLs lifted straight from the agent's Realtor.ca card.
  • Dense metros are not capped at 600 โ€” Realtor.ca limits any single query to 600 listings; this actor splits a busy city into progressively smaller map areas, up to 6 levels deep, so Toronto and downtown Vancouver keep producing past that ceiling.

Use Cases

Real Estate Investment & Analysis

  • Compare asking prices across Canadian metros (Toronto vs. Calgary vs. Halifax)
  • Track time-on-market by neighbourhood to spot softening segments
  • Filter rentals by priceMax and bedroom count to model gross yield
  • Build comparable-listing tables grouped by postal-code prefix (FSA)

Lead Generation for Real Estate Services

  • Build agent call lists by city with phone number, brokerage, and office address
  • Prospect new licensees by re-running the Real Estate Agents mode each month
  • Rank the highest-volume brokerages in a target market by office name
  • Target team leaders specifically using the corporation / team name field

Market Research & Data Enrichment

  • Track property-type mix (condos vs. detached vs. agricultural) by region
  • Map listings on a heatmap using the built-in GPS coordinates
  • Enrich existing CRM rows with MLS number, listing URL, and listing-agent contact
  • Measure amenity prevalence (concierge, gym, party room) across a condo market

Relocation & Property Search

  • Aggregate listings from several cities into one spreadsheet
  • Compare provinces side by side for cost-of-living research
  • Watch one exact neighbourhood by pasting its map URL

Getting Started

Search Properties in a City

Just a location โ€” defaults handle the rest.

{
"mode": "properties",
"location": "Toronto, ON",
"maxResults": 100
}

Combine price, bedroom, and bathroom filters:

{
"mode": "properties",
"location": "Vancouver, BC",
"transactionType": "buy",
"propertyType": "residential",
"priceMin": 500000,
"priceMax": 1500000,
"bedroomsMin": 3,
"bathroomsMin": 2,
"maxResults": 200
}

Rental Hunt with Price Cap

{
"mode": "properties",
"location": "Montreal, QC",
"transactionType": "rent",
"priceMax": 2500,
"bedroomsMin": 2,
"maxResults": 100
}

Find Real Estate Agents

{
"mode": "agents",
"location": "Calgary, AB",
"maxResults": 50
}

Custom Map Area

Zoom into a neighbourhood on Realtor.ca and paste the URL from your address bar:

{
"mode": "properties",
"startUrls": [
"https://www.realtor.ca/map#ZoomLevel=13&LatitudeMax=43.7&LongitudeMax=-79.3&LatitudeMin=43.6&LongitudeMin=-79.5"
],
"maxResults": 500
}

Input Reference

What to Scrape

ParameterTypeDefaultDescription
modestring"properties"Choose Property Listings or Real Estate Agents
locationstring"Toronto, ON"City and province, e.g. "Vancouver, BC". If both this and Start URLs are empty, the run falls back to Toronto, ON โ€” it does not sweep the whole country
startUrlsstring[][]Realtor.ca map URLs and agent directory URLs (e.g. https://www.realtor.ca/realtors/on/toronto). Single-listing pages are not supported. Overrides location when provided
maxResultsinteger200Maximum results to collect. Set to 0 for everything available

Property Filters

These apply only in property mode and are sent to Realtor.ca's own search, so you collect only matching rows.

ParameterTypeDefaultDescription
transactionTypestring"buy"Buy or Rent
propertyTypestring"residential"Residential, Commercial, or Farm / Agriculture
priceMinintegerโ€”Minimum price (CAD)
priceMaxintegerโ€”Maximum price (CAD)
bedroomsMinintegerโ€”Minimum bedrooms (0โ€“10)
bathroomsMinintegerโ€”Minimum bathrooms (0โ€“10)

Output

One row per result. Property Listings and Real Estate Agents have separate field sets.

Property Listing Example

{
"listingId": "27045321",
"mlsNumber": "E9345812",
"price": "$1,249,900",
"priceNumeric": 1249900,
"priceType": "sale",
"address": "45 Broadview Ave",
"city": "Toronto (Riverdale)",
"province": "Ontario",
"postalCode": "M4M2E4",
"latitude": 43.6615,
"longitude": -79.3522,
"propertyType": "Single Family",
"buildingType": "House",
"ownershipType": "Freehold",
"bedrooms": 5,
"bedroomsText": "4 + 1",
"bathrooms": 3,
"sizeInterior": "1959.95 sqft",
"stories": "2",
"parkingSpaces": 2,
"parkingType": "Garage",
"amenities": "Exercise Centre, Party Room, Storage - Locker",
"photos": [
"https://cdn.realtor.ca/listing/TS638.../highres_1.jpg"
],
"agentName": "Jane Smith",
"agentPhone": "(416) 555-1234",
"agentOffice": "Royal LePage Premium",
"listingUrl": "https://www.realtor.ca/real-estate/27045321/45-broadview-ave-toronto",
"timeOnMarket": "24 min ago",
"listedDate": "2026-08-10T18:33:20Z"
}

Property Identity

FieldTypeDescription
listingIdstringUnique Realtor.ca listing ID
mlsNumberstringMLS listing number
listingUrlstringDirect link to the listing on Realtor.ca
propertyTypestring"Single Family", "Vacant Land", "Agriculture", "Retail", etc.
buildingTypestring"House", "Apartment", "Row / Townhouse", etc.
ownershipTypestring"Freehold", "Condominium/Strata", etc.
timeOnMarketstringHow long the listing has been live, as Realtor.ca phrases it
listedDatestringFirst-listed date and time (ISO 8601)

Address & Location

FieldTypeDescription
addressstringStreet address, including unit number where the board publishes one
citystringCity or municipality. Quebec and Ontario boards often append the neighbourhood, e.g. "Toronto (Riverdale)"
provincestringProvince or territory name
postalCodestringCanadian postal code
latitudenumberGPS latitude
longitudenumberGPS longitude

Price

FieldTypeDescription
pricestringPrice as displayed. Rentals keep their "/Monthly" suffix
priceNumericintegerSame value as a number, for sorting and charting
priceTypestringsale or rent โ€” which kind of price this row carries

Size, Rooms & Building

FieldTypeDescription
bedroomsintegerTotal bedrooms. Compound counts such as "4 + 1" are summed to 5
bedroomsTextstringThe count exactly as the board wrote it, e.g. "4 + 1"
bathroomsintegerTotal bathrooms, compound counts summed the same way
sizeInteriorstringInterior size with its unit. Boards publish either imperial ("1404 sqft") or metric ("139.3534 m2")
storiesstringNumber of stories. Published by some boards only
parkingSpacesintegerTotal parking spaces
parkingTypestring"Underground", "Garage", "Visitor", etc. (multi-value)
amenitiesstringBuilding amenities as published, e.g. "Exercise Centre, Party Room, Storage - Locker". Published board by board, so fill swings by market: 63% of Toronto rows, 43% of Vancouver's, 13% of Calgary's, and none in Montreal or Winnipeg
photosstring[]Listing cover photo at full resolution. Realtor.ca's search results carry the cover image only, so this is one URL per row

Listing Agent

FieldTypeDescription
agentNamestringListing agent's name
agentPhonestringListing agent's phone, formatted
agentOfficestringListing brokerage / office name

Agent Profile Example

{
"individualId": "1234567",
"name": "Michael Chen",
"position": "Salesperson",
"phone": "416-555-6789",
"office": "RE/MAX First Realty",
"officeDesignation": "Brokerage",
"corporationName": "MRKT Group",
"officeAddress": "123 Bay St, Toronto, ON M5J 2T3",
"officeLogo": "https://cdn.realtor.ca/organizations/.../lowres/1242191.jpg",
"photo": "https://cdn.realtor.ca/individual/.../photo.jpg",
"website": "https://www.michaelchenrealty.ca",
"profileUrl": "https://www.realtor.ca/agent/1234567/michael-chen-123-bay-st-toronto-ontario-m5j2t3",
"facebook": "https://www.facebook.com/michaelchenrealty",
"instagram": "https://www.instagram.com/michaelchenrealty",
"linkedin": "https://www.linkedin.com/in/michael-chen-realty",
"twitter": "https://www.twitter.com/mchenrealty"
}

Agent Identity & Contact

FieldTypeDescription
individualIdstringRealtor.ca agent ID โ€” always present
namestringAgent's full name โ€” always present
profileUrlstringAgent's profile page on Realtor.ca โ€” always present
phonestringDirect phone number, on virtually every card
websitestringAgent's personal website, where they publish one (roughly 4 in 10)
photostringAgent's headshot URL, where they publish one. How many do varies by market, from about half a city's agents to nearly all of them
positionstringRole, e.g. "Salesperson" or "Broker". Published board by board โ€” common in Ontario, absent in some Atlantic and Prairie markets

Brokerage

FieldTypeDescription
officestringBrokerage / office name โ€” always present
officeAddressstringOffice street address โ€” always present
officeLogostringOffice logo image URL, on most cards (7 to 8 in 10)
corporationNamestringThe agent's own team or corporation name, e.g. "MRKT Group", where they registered one
officeDesignationstringBrokerage designation. An Ontario-board field: filled on about 99% of Toronto and Ottawa cards and on almost none elsewhere in Canada

Social Media

FieldTypeDescription
facebookstringFacebook profile URL
instagramstringInstagram profile URL
linkedinstringLinkedIn profile URL
twitterstringTwitter / X profile URL

Tips for Best Results

  • Name one city per run. "Toronto, ON" or "Vancouver, BC" finishes quickly. Leaving location empty does not sweep Canada โ€” the run falls back to Toronto, so cover several regions by queueing one run per city or province, or by pasting several agent directory URLs into startUrls.
  • Set maxResults to 0 when you want a whole city. A capped run in a large metro fills from one part of the map before moving on, so a 300-row cap on Toronto gives you a slice of the city rather than an even spread across it. Uncapped runs cover the full area.
  • Read bedroomsText before you trust a bedroom count in the GTA. Ontario boards write "4 + 1" for a four-bedroom house with a finished basement bedroom. bedrooms gives you 5 for filtering, and bedroomsText tells you one of those rooms is below grade โ€” a strong signal for in-law suites and rental potential.
  • Filter before you collect, not after. priceMin, priceMax, bedroomsMin, and bathroomsMin go to Realtor.ca directly, so you pay only for matching rows instead of trimming a large dump on your side.
  • Use the map URL for a tight neighbourhood. Zoom to the exact area on realtor.ca, copy the URL from your address bar, and paste it into startUrls. The map corners come straight from that link, so you get the polygon you drew and nothing outside it.
  • Split sale from lease with priceType. If you merge a buy run and a rent run into one table, sort or group on priceType โ€” $2,500/Monthly and $2,500,000 sit in the same price column otherwise.
  • Key your CRM on listingId, join on mlsNumber. MLS numbers get reused when a property re-lists; listingId stays unique per Realtor.ca record, so use both together as a composite key.

Pricing

From $0.50 per 1,000 results โ€” one flat rate for property rows and agent rows alike, and it is the same rate on every Apify discount tier, so a free-plan run costs exactly what a Gold-tier run costs.

ResultsNo discountBronzeSilverGold
100$0.05$0.05$0.05$0.05
1,000$0.50$0.50$0.50$0.50
10,000$5.00$5.00$5.00$5.00
100,000$50.00$50.00$50.00$50.00

A "result" is one property row or one agent row in your dataset. There are no compute or time-based charges โ€” you pay per result, plus a small fixed fee each time a run starts. Standard Apify platform fees apply on top.

Integrations

Export results in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n โ€” Workflow automation
  • Google Sheets โ€” Direct spreadsheet export
  • Slack / Email โ€” Notifications when new listings appear
  • Webhooks โ€” Trigger downstream APIs on run completion
  • Apify API โ€” Full programmatic access

This actor is intended for legitimate real estate research, market analysis, and prospecting. You are responsible for complying with applicable Canadian privacy laws (PIPEDA and provincial equivalents), CASL (Canada's Anti-Spam Legislation) when contacting agents, and Realtor.ca's Terms of Service. Do not use collected data for spam, harassment, or any illegal purpose, and respect the personal information of agents and listing parties.