Realtor.ca Scraper| πŸ’° $0.5 / 1K avatar

Realtor.ca Scraper| πŸ’° $0.5 / 1K

Pricing

from $0.50 / 1,000 results

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

Realtor.ca Scraper| πŸ’° $0.5 / 1K

[πŸ’° $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

1

Bookmarked

8

Total users

4

Monthly active users

7 days ago

Last modified

Share

Realtor.ca Scraper

Pull MLS-grade property listings and licensed real-estate agent profiles from Realtor.ca at scale β€” prices, full Canadian addresses, GPS coordinates, photos, brokerage details, parking, amenities, and social media links across every province and territory. One actor handles both for-sale and rental listings plus the realtor directory, so you can run market analytics and agent prospecting from a single configuration. Built for Canadian real estate investors, mortgage brokers, brokerage data teams, and CRM platforms that need fresh Realtor.ca data without standing up their own collection pipeline.

Why This Scraper?

  • All 13 provinces and territories, every postal code β€” search any Canadian city, region, or paste a Realtor.ca map URL. No need to hand-build map coordinates or chase per-province endpoints.
  • Two record types in one actor β€” switch the mode dropdown between Property Listings and Real Estate Agents. No second actor or second subscription.
  • Server-side filters that match Realtor.ca exactly β€” buy vs. rent, residential / commercial / farm, price min/max, minimum bedrooms, minimum bathrooms β€” every filter is forwarded to the official search so you only pay for matching results.
  • Dense-area auto-subdivision (up to 6 levels deep) β€” Realtor.ca caps each query at 600 listings; the scraper recursively splits Toronto, Vancouver, and Montreal bounding boxes into quadrants until every listing is captured.
  • Both Realtor.ca listing ID and MLS number on every property β€” link rows back to your existing brokerage feeds, KW Command, or Lone Wolf systems with no manual cross-walk.
  • High-resolution photo URLs (every photo, not just the cover) β€” direct CDN paths to the full gallery for downstream image analysis or CRM enrichment.
  • Four social media links per agent β€” Facebook, Instagram, LinkedIn, and Twitter/X URLs lifted from the agent's Realtor.ca card alongside name, phone, brokerage, designation, and personal website.
  • Numeric and formatted prices side by side β€” price ("$1,249,900") for display plus priceNumeric (1249900) for sorting, charting, and BI tools.

Use Cases

Real Estate Investment & Analysis

  • Compare list 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 by postal-code prefix (FSA)

Lead Generation for Real Estate Services

  • Build agent contact lists by city or province with phone, brokerage, and social links
  • Prospect new licensees by sweeping the Real Estate Agents mode each month
  • Identify the highest-volume brokerages in target markets via office-logo grouping

Market Research & Data Enrichment

  • Track property-type mix (condos vs. detached vs. farm) by region
  • Map listings on a heatmap using built-in GPS coordinates
  • Enrich existing CRM rows with MLS number, listing URL, and agent contact

Relocation & Property Search

  • Aggregate listings across multiple cities into one spreadsheet
  • Compare provinces side-by-side for cost-of-living research
  • Watch a custom map polygon (zoom into the area on Realtor.ca, paste the 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:

{
"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"). Leave empty if using Start URLs
startUrlsstring[][]Paste Realtor.ca URLs directly. Supports map views, search results, and agent pages. Overrides location when provided
maxResultsinteger200Maximum results to collect. Set to 0 for all available results

Property Filters

These apply only in property mode and are forwarded to Realtor.ca's search endpoint.

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

Output

The actor writes 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,
"address": "45 Broadview Ave",
"city": "Toronto",
"province": "Ontario",
"postalCode": "M4M 2E4",
"latitude": 43.6615,
"longitude": -79.3522,
"propertyType": "Single Family",
"buildingType": "House",
"ownershipType": "Freehold",
"bedrooms": 4,
"bathrooms": 3,
"sizeInterior": "2000 sqft",
"stories": "2",
"parkingSpaces": 2,
"parkingType": "Garage",
"amenities": "Exercise centre, Party room",
"description": "Stunning renovated 4-bedroom home in the heart of Riverside...",
"photos": [
"https://cdn.realtor.ca/listing/TS638..../high_res_1.jpg",
"https://cdn.realtor.ca/listing/TS638..../high_res_2.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": "12 days",
"listedDate": "2026-04-01T00:00:00Z"
}

Core Fields

FieldTypeDescription
listingIdstringUnique Realtor.ca listing ID
mlsNumberstringMLS listing number
propertyTypestring"Single Family", "Condo", "Vacant Land", etc.
buildingTypestring"House", "Apartment", "Row / Townhouse", etc.
ownershipTypestring"Freehold", "Condominium/Strata", etc.
bedroomsintegerNumber of bedrooms
bathroomsintegerNumber of bathrooms
sizeInteriorstringInterior size with unit (e.g. "2000 sqft")
storiesstringNumber of stories
descriptionstringFull listing public remarks
listingUrlstringDirect link to the listing on Realtor.ca
timeOnMarketstringHow long the listing has been active
listedDatestringFirst-listed date (ISO 8601)

Address & Location

FieldTypeDescription
addressstringStreet address
citystringCity name
provincestringProvince name
postalCodestringCanadian postal code (e.g. "M4M 2E4")
latitudenumberGPS latitude
longitudenumberGPS longitude

Price & Inventory

FieldTypeDescription
pricestringFormatted price (e.g. "$525,000")
priceNumericintegerPrice as a number for sorting and BI
parkingSpacesintegerTotal parking spaces
parkingTypestring"Underground", "Garage", "Visitor", etc. (multi-value)
amenitiesstringBuilding amenities (e.g. "Exercise centre, Party room")
photosstring[]All high-resolution photo URLs from the gallery

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": "403-555-6789",
"office": "RE/MAX First",
"officeDesignation": "Brokerage",
"officeAddress": "123 Centre St SW, Calgary, AB T2G 1A1",
"officeLogo": "https://cdn.realtor.ca/organization/logo/12345.jpg",
"photo": "https://cdn.realtor.ca/individual/photo/67890.jpg",
"website": "https://www.michaelchenrealty.ca",
"profileUrl": "https://www.realtor.ca/agent/1234567/michael-chen",
"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
namestringAgent's full name
positionstringRole (e.g. "Salesperson", "Broker")
phonestringDirect phone number
photostringAgent's profile photo URL
websitestringAgent's personal website
profileUrlstringProfile page on Realtor.ca

Brokerage

FieldTypeDescription
officestringBrokerage / office name
officeDesignationstring"Brokerage", "Independently Owned", etc.
officeAddressstringOffice street address
officeLogostringOffice logo image URL

Social Media

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

Tips for Best Results

  • Anchor on a single city for fastest runs. "Toronto, ON" or "Vancouver, BC" returns within minutes; province-level queries trigger heavy bounding-box subdivision.
  • Use the map URL trick for tight neighbourhoods. Zoom into the exact polygon on realtor.ca, copy the URL from the address bar, and paste it into startUrls. The scraper reads LatitudeMax / LongitudeMin etc. directly from the URL hash.
  • Filter server-side, not after the fact. priceMin, priceMax, bedroomsMin, and bathroomsMin are sent to Realtor.ca, so you only pay for matching listings instead of filtering a huge dump in your own pipeline.
  • For dense urban areas, leave maxResults generous. Each Realtor.ca query caps at 600 results β€” Toronto and downtown Vancouver routinely exceed this and need quadrant subdivision to capture every listing.
  • Sweep agents Canada-wide by leaving location empty in agents mode. The directory then iterates across all provinces and territories without any per-region setup.
  • Both English and French listings appear in the same query. Realtor.ca returns Quebec listings with French descriptions in description; pair them with the structured fields (price, bedrooms, postal code) for downstream translation.
  • Pair mlsNumber with listingId in your CRM. MLS numbers can be reused after a property re-lists, but listingId is unique per Realtor.ca record β€” use both as a composite key.

Pricing

$1.50 per 1,000 property results | $1.00 per 1,000 agent results

ResultsPropertiesAgents
100$0.15$0.10
1,000$1.50$1.00
10,000$15.00$10.00
100,000$150.00$100.00

A "result" is one property row or one agent row in the dataset. Apify platform fees (compute and storage) are billed separately based on your plan.

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.