Realtor.ca [Only $1] Scraper: Listings + Agent Database (Phone) avatar

Realtor.ca [Only $1] Scraper: Listings + Agent Database (Phone)

Pricing

from $1.00 / 1,000 listing records

Go to Apify Store
Realtor.ca [Only $1] Scraper: Listings + Agent Database (Phone)

Realtor.ca [Only $1] Scraper: Listings + Agent Database (Phone)

[Only $1/1k] Realtor.ca scraper with an instant agent database — pull 44,000+ Canadian agents by Province/City/Brokerage (phone + brokerage + website, uncapped, no scraping needed), or live-scrape listings (sale/sold/rental) across Canada. Pure API. JSON/CSV

Pricing

from $1.00 / 1,000 listing records

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Realtor.ca Scraper — Listings + Agent Database (Phone)

Pull Canadian real-estate agent contacts instantly from a pre-collected database of 44,000+ Realtor.ca agents across all 13 provinces & territories — phone, brokerage, website, areas served — or live-scrape listings anywhere in Canada. No CREA token juggling, no blocking, no per-search cap.

This is the only Realtor.ca scraper on Apify that ships an instant agent database. Every other Realtor.ca actor is a property/listings scraper — this one hands you the agents directly.

⚡ Instant Realtor.ca Agent Database — 44,000+ agents, all of Canada

The fastest way to get Realtor.ca agent contacts: skip scraping entirely and pull straight from our continuously-growing database of 44,663 agents — instant, uncapped, and nothing to get blocked.

How to use it: in the ⚡ Instant Database Mode section of the input, set a Province (2-letter code, e.g. ON, BC, AB) — optionally narrow by City or Brokerage, or filter to only agents with a phone, email or website on file — and run. Leave the live-scraping Start URLs empty. You're billed only per agent delivered.

Each database agent includes: name, phone, brokerage (name + address), position (Salesperson / Broker), personal website, areas served, board, photo, and the Realtor.ca profile URL.

Coverage: 44,663 agents — 99.6% with a phone number, 55% with a personal website, 100% with a brokerage. A postal-code-level sweep (down to the FSA — the first 3 characters of a Canadian postal code) across all 1,657 FSAs in the country. Realtor.ca hides agent emails behind a contact form, so email is available via optional enrichment (see Pricing). Top provinces: Ontario (19,742), Quebec (7,483), British Columbia (6,682), Alberta (5,407), plus every other province and territory down to Nunavut.

Need a whole province as a clean CSV, or pushed to your CRM via API? Reach out via the Support section below.

Why Use This Scraper?

  • The only Realtor.ca agent database — 44,000+ agents with phone, instantly, no scraping needed
  • All 13 provinces & territories covered, filterable by province / city / brokerage
  • 99.6% phone coverage — phone is the strongest single lead-gen field
  • Beats the CREA anti-bot wall — built-in token handshake, no external unblocker
  • Live-scrape listings too — search any Realtor.ca map/search URL for property data
  • Optional email enrichment — for the ~55% of agents with a website, plus name-based discovery
  • Pure API — no headless browser; JSON or CSV out

Overview

This actor serves two audiences from one tool: lead-gen teams and brokerages who want Canadian agent contacts without scraping, and analysts and proptech teams who want Realtor.ca listing data.

Instant Database runs (set a Province) emit a flat agent row per agent, served from our store — no requests to Realtor.ca. Live-scrape runs (a Realtor.ca map/search URL) return property listings, and every listing's agent is harvested into the database as a byproduct.

Supported Inputs

Instant Database filters (no URL needed)

FieldExampleNotes
dbProvinceON2-letter province code — triggers Instant Database mode
dbCityTorontooptional city narrow
dbBrokerageRE/MAXoptional brokerage-name substring
dbHasPhonetrueonly agents with a phone (99.6% do)
dbHasEmailtrueonly agents with an enriched email
dbHasWebsitetrueonly agents with a personal website
instantDatabasetrueforce Instant Database mode

Provinces: ON QC BC AB MB SK NS NB NL PE YT NT NU

Live-scrape URL

URL typeExample
Realtor.ca map / searchhttps://www.realtor.ca/map#ZoomLevel=11&Center=43.65,-79.38&...&TransactionTypeId=2

Unsupported inputs

  • ❌ Realtor.ca content behind a login (saved searches, messaging)
  • ❌ Direct agent emails (Realtor.ca exposes only a contact form — use enrichment instead)

Use Cases

AudienceUse case
Lead-gen teams / brokeragesPull thousands of Canadian agent phone contacts instantly by province or city
RecruitersBuild brokerage rosters filtered by province, city, or brokerage name
Proptech / CRMSeed a Canadian agent directory with phone + brokerage + website
Market analystsLive-scrape Realtor.ca listings for pricing and inventory data
Marketing agenciesDeliver client-ready Canadian real-estate agent lists without writing scrapers

How It Works

How the Realtor.ca Agents Scraper works

  1. Choose a mode — Instant Database (province/city/brokerage filters) for agent contacts, or live scrape (a Realtor.ca map/search URL) for listings
  2. Instant Database path — the actor queries our pre-collected store and returns matching agents in seconds; no requests to Realtor.ca at all
  3. Live-scrape path — the actor performs the CREA device-token handshake (beating the Incapsula anti-bot wall), calls Realtor.ca's own PropertySearch API, and paginates the results
  4. Agent harvesting — every listing carries its agent inline, harvested into the database (deduped by CREA IndividualID)
  5. Output — one row per agent or listing, JSON or CSV

Input Configuration

Input fields

FieldTypeDefaultNotes
dbProvincestringInstant Database: 2-letter province code
dbCitystringInstant Database: city, optional
dbBrokeragestringInstant Database: brokerage-name contains, optional
dbHasPhone / dbHasEmail / dbHasWebsitebooleanfalseInstant Database filters
instantDatabasebooleanfalseForce Instant Database mode
startUrlsarrayRealtor.ca map/search URLs (live scrape)
includeListingDetailsbooleanfalseFetch full detail per listing on a live scrape
enrichEmailsbooleanfalseOpt-in email enrichment (billed separately, see Pricing)
maxItemsinteger100Cap on delivered rows
maxConcurrency / minConcurrency / maxRequestRetriesinteger10 / 1 / 3Live-scrape throughput
proxyobjectResidentialProxy configuration (live scrape only)

Common scenarios

1. Instant Database — every agent in a province

{ "dbProvince": "BC", "maxItems": 1000 }

2. Instant Database — narrow by city and brokerage

{ "dbProvince": "ON", "dbCity": "Toronto", "dbBrokerage": "RE/MAX", "maxItems": 200 }

3. Live-scrape listings

{
"startUrls": [{ "url": "https://www.realtor.ca/map#ZoomLevel=11&Center=45.50,-73.57&LatitudeMax=45.80&LongitudeMax=-73.27&LatitudeMin=45.20&LongitudeMin=-73.87&TransactionTypeId=2&PropertySearchTypeId=0&Currency=CAD" }],
"includeListingDetails": false,
"maxItems": 200
}

Pricing

This actor uses Apify's pay-per-event pricing — you're billed only for what's delivered:

EventPriceCharged when
Agent record$2.00 / 1kPer agent delivered — Instant Database or live scrape
Listing record$1.00 / 1kPer property listing delivered on a live scrape
Email enrichment$0.02 / emailPer email found via enrichEmails — never charged on a miss
Actor startApify platform rateStandard per-GB run-start charge

Instant Database queries report the total number of matching agents alongside the delivered rows, so you can see how many match your filters before raising maxItems.

Output Overview

  • Database agent (Instant Database mode) — a flat agent row: name, phone, brokerage, website, position, areas, photo, profile URL.
  • Live-scraped listing — a Realtor.ca property listing with its embedded agent.

Free-tier users receive the first 2 Instant Database records in full as proof of data quality; every record after that has its phone/email masked with an upgrade prompt. Paying users always receive full contact info.

Output Samples

Instant Database agent:

{
"agent_id": "1970829",
"name": "MELISSA JOAN PERRY",
"first_name": "MELISSA JOAN",
"last_name": "PERRY",
"position": "Salesperson",
"phone": "416-494-7653",
"website": "http://www.facebook.com/melissaperryhomes",
"has_website": true,
"brokerage_name": "RE/MAX HALLMARK REALTY LTD.",
"brokerage_address": "685 SHEPPARD AVE E #401 | TORONTO, Ontario M2K1B6",
"province": "ON",
"city": "Toronto",
"profile_url": "https://www.realtor.ca/agent/1970829/melissa-joan-perry-..."
}

Key Output Fields

GroupFields
Identityagent_id, name, first_name, last_name, position, profile_url, photo_url
Contactphone, phone_area, phone_number, website, has_website, email (enriched)
Brokeragebrokerage_name, brokerage_id, brokerage_address, brokerage_phone, board
Locationprovince, city, areas_served, languages

FAQ

What's the difference between Instant Database mode and live scraping?

Instant Database mode (dbProvince/dbCity/dbBrokerage) serves agents straight from our pre-collected store — no requests to Realtor.ca, results in seconds. Live scraping (startUrls) hits Realtor.ca directly for current listings.

Do I get agent email addresses?

Not directly — Realtor.ca deliberately hides agent emails behind a contact form (the API returns only a relay contact-id, never an @ address). Enable enrichEmails to discover an email for agents who list a personal website (~55%) or via name-based lookup. Enrichment is opt-in and billed only on success.

Do I need a URL for Instant Database mode?

No — just set a Province (and optionally city/brokerage) and leave startUrls empty.

Which provinces are covered?

All 13 — every province and territory. Ontario, BC, Quebec and Alberta are the deepest; the territories (YT/NT/NU) are naturally sparse.

How does it get past Realtor.ca's anti-bot protection?

The actor performs Realtor.ca's own CREA device-token handshake (challenge → solve → token), which authenticates against their Incapsula-protected API — no third-party unblocker needed.

Can I scrape private or login-gated content?

No. The actor only accesses publicly available Realtor.ca data.

JSON or CSV?

Both — export from your Apify dataset in whichever format you need.

Support

Found a bug or want a field added? Open an issue on the actor's Issues tab and we'll take a look.

Additional Services

Need a custom Canadian real-estate feed (full-province CSV, scheduled monitoring, a webhook/Sheets/DB push, or a tailored schema)? Reach out — custom scraping and data-pipeline work is available.

Explore More Scrapers

See the full memo23 actor catalog →

⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by The Canadian Real Estate Association (CREA), Realtor.ca, or any of their subsidiaries. All trademarks mentioned — including REALTOR® and Realtor.ca — are the property of their respective owners.

The scraper accesses only publicly available Realtor.ca pages and pre-collected public agent-directory data — no authenticated endpoints, paid features, or content behind a login wall. Users are responsible for ensuring their use complies with Realtor.ca's Terms of Use, applicable data-protection law (PIPEDA, GDPR, CCPA, etc.), and any contractual obligations of their own organization.

SEO Keywords

realtor.ca scraper, realtor.ca api, realtor.ca agent scraper, canadian real estate agent database, realtor.ca agent phone numbers, canada real estate leads, real estate agent contacts canada, realtor.ca listings scraper, canadian mls scraper, ontario real estate agents, bc real estate agents, real estate lead generation canada, brokerage roster scraper, realtor.ca bulk export, canada property data, realtor.ca json csv export