Centris Broker Scraper — Quebec Real Estate Agent Leads
Pricing
from $2.50 / 1,000 broker lead extracteds
Centris Broker Scraper — Quebec Real Estate Agent Leads
Scrape Quebec real estate brokers from the Centris.ca directory at scale. Search by city or region, pull full agency rosters, look up brokers by name, filter by language. Every row includes direct phone, agency, title and profile URL — built for lead generation, recruiting and CRM enrichment.
Pricing
from $2.50 / 1,000 broker lead extracteds
Rating
0.0
(0)
Developer
SIÁN OÜ
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Centris Broker Scraper — Quebec Real Estate Agent Leads 🚀
🎉 Every broker row ships with a direct phone number — 200 dialable Quebec real estate leads per $1
Built for lead-gen teams, brokerage recruiters, proptech vendors and CRM ops working the Quebec market
📋 Overview
Need Quebec real estate broker leads? This actor crawls the Centris.ca broker directory — the definitive listing of licensed real-estate brokers across Quebec — and turns it into a clean, dial-ready dataset: name, professional title, direct phone, agency, photo, profile URL and contact URL on every row.
Why professionals choose this scraper:
- ✅ Phone number on every row: no enrichment calls, no per-lead surcharge — the direct line is included in the base price
- ⚡ Four verified search filters: crawl by city/region, pull a full agency roster, look up brokers by name, and narrow by language — each filter is live-tested and honored
- 🎯 Full-market crawls that don't double-charge: automatic pagination with brokerId deduplication — you are charged once per unique broker, never for repeats
- 💰 Transparent pay-per-result pricing: $0.005 per broker row — 4× cheaper than the closest alternative charging $0.02 per broker
- 💎 Bilingual language filter: unique to Quebec's FR/EN market — separate French-serving and English-serving brokers for targeted outreach
- ✨ NEW: cohort KPIs in every run report — top-agency concentration, phone coverage and broker-title distribution
✨ Features
- 📍 City & region crawls: paginate the full broker directory for Montréal, Québec, Gatineau, Laval, Estrie, Laurentides — any Quebec market
- 🏢 Agency roster mode: pull every broker affiliated with a brokerage brand (e.g. all RE/MAX or VIA CAPITALE brokers) in one run
- 🔎 Name lookup: find every broker named "Tremblay" across the province
- 🗣 Language filter: composable with any search — French, English, Spanish, Italian and more
- 📞 Dial-ready rows: direct phone, agency, professional title, photo, profile URL, contact URL
- 🔁 Run-level dedup: stable
brokerIdon every row — dedupe across runs and join to your CRM - 📊 Cohort KPIs: distinct-agency counts, top-agency breakdown, phone/photo coverage in the HTML run report
- 💸 Cost caps built in:
maxBrokershard-caps your spend per run
🎬 Quick Start
Enter a Quebec city, an agency name, or a broker name — the actor paginates the directory, dedupes brokers, and pushes one lead row per unique broker.
curl -X POST https://api.apify.com/v2/acts/sian.agency~centris-agent-scraper/runs?token=YOUR_TOKEN \-d '{"area": "Montréal", "maxBrokers": 100}'
🚀 Getting Started (3 Simple Steps)
Step 1: Choose your filters
Enter a city/region (e.g. "Montréal"), an agency (e.g. "RE/MAX"), a broker name (e.g. "Tremblay") — or combine them, optionally with a language filter.
Step 2: Set your cap
Set maxBrokers to control cost — you're only charged per unique broker row returned.
Step 3: Run and export
Click Start. Export your lead list as JSON, CSV or Excel straight from the dataset tab.
That's it! In under a minute, you'll have:
- A deduplicated broker lead list with direct phones
- Agency, title and profile URLs on every row
- An HTML report with market KPIs (top agencies, phone coverage)
📥 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| area | string | No* | Quebec city or region to crawl (e.g. "Montréal", "Estrie") |
| agency | string | No* | Agency/brokerage name or prefix (e.g. "RE/MAX") |
| brokerName | string | No* | Full or partial broker name (e.g. "Tremblay") |
| language | string | No | Language filter — "French", "English", "Spanish", … |
| maxBrokers | integer | No | Max unique broker rows per run (default 100, up to 2000) |
* All filters are composable. If you set none of area, agency, or brokerName, the actor defaults to a "Montréal" directory crawl.
Example — city crawl:
{"area": "Montréal","maxBrokers": 200}
Example — agency roster with language filter:
{"agency": "RE/MAX","area": "Québec","language": "English","maxBrokers": 500}
📤 Output
Results are saved to the Apify dataset with 13 fields per broker, including:
| Field | Type | Description |
|---|---|---|
| brokerName | string | Broker display name |
| brokerTitle | string | Professional designation (e.g. "Residential and Commercial Real Estate Broker") |
| phone | string | Direct phone number |
| agency | string | Affiliated agency/brokerage |
| brokerId | string | Stable directory identifier — dedupe & join key |
| profileUrl | string | Public broker profile page |
| contactUrl | string | Public contact-form URL |
| photo | string | Profile photo URL |
| languageFilter | string | Language filter applied (if any) |
| mode | string | Discovery mode: area / agency / name |
| scrapedAt | string | ISO collection timestamp |
Example:
{"brokerId": "c1366","brokerName": "Gilles Cohen","brokerTitle": "Certified Residential and Commercial Real Estate Broker","phone": "+1 514-891-2523","agency": "RE/MAX ROYAL (JORDAN) INC.","photo": "https://mspublic.centris.ca/media.ashx?id=...","profileUrl": "https://www.centris.ca/en/real-estate-broker~gilles-cohen~re-max-royal-jordan-inc.-pointe-claire/c1366","contactUrl": "https://www.centris.ca/en/contact-broker/c1366","languageFilter": null,"queryLabel": "area:Montréal","mode": "area","source": "centris.ca","scrapedAt": "2026-07-02T14:00:00.000Z"}
💼 Use Cases & Examples
1. Broker Lead Generation
Lead-gen teams build dialable Quebec broker lists in minutes instead of days of manual directory copying.
Input: {"area": "Montréal", "maxBrokers": 500}
Output: 500 unique brokers with direct phones, agencies and titles
Use: Feed your dialer or outreach sequences with fresh, deduplicated real estate broker leads
2. Brokerage Recruiting
Recruiters map a competitor agency's full roster before a hiring push.
Input: {"agency": "RE/MAX", "area": "Laval"}
Output: Every RE/MAX-affiliated broker in Laval with title and direct phone
Use: Rank recruiting targets by professional title and territory
3. Vendor & Proptech Prospecting
SaaS, photography, staging, mortgage and insurance vendors prospect brokers who serve clients in their language.
Input: {"area": "Québec", "language": "English", "maxBrokers": 300}
Output: English-serving brokers in Québec City — a pre-qualified niche segment
Use: Language-targeted campaigns in Quebec's bilingual market
4. CRM Enrichment & Dedup
CRM ops teams refresh stale broker records against the live directory.
Input: {"brokerName": "Tremblay"}
Output: Current agency affiliation and phone for every matching broker, keyed by stable brokerId
Use: Detect brokers who switched brokerages; keep phone fields current
5. Market Mapping
Analysts measure agency concentration per region using the built-in cohort KPIs.
Input: {"area": "Gatineau", "maxBrokers": 1000}
Output: Full market crawl + HTML report with top-agency breakdown and title distribution
Use: Territory planning, franchise expansion analysis, market-share tracking
🔗 Integration Examples
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/centris-agent-scraper').call({area: 'Montréal',maxBrokers: 200});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/centris-agent-scraper').call(run_input={'area': 'Montréal', 'maxBrokers': 200})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item['brokerName'], item['phone'], item['agency'])
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~centris-agent-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"agency": "RE/MAX", "maxBrokers": 500}'
Automation Workflows (Zapier / Make / n8n)
- Trigger: weekly schedule
- HTTP Request: start this actor with your target city
- Process: fetch new dataset rows, diff on
brokerId - Action: push new brokers into your CRM or outreach tool
📊 Performance & Pricing
FREE Tier (Try It Now)
- 25 broker rows per run — full feature access, same data quality
- All four filters included
- Perfect for testing a market before scaling
PAID Tier (Production Ready)
- Up to 2,000 broker rows per run
- Full-directory crawls with automatic pagination and dedup
- Pay-per-result: $0.005 per unique broker row + $0.005 per run start
💰 Best price on the market — the closest Centris broker alternative charges $0.02 per broker row; this actor delivers the same phone-bearing rows at a quarter of the price.
❓ Frequently Asked Questions
Q: How many brokers can I extract? A: FREE tier: 25 rows per run. PAID tier: up to 2,000 unique broker rows per run — run per-region crawls to cover the whole province.
Q: Does every row really include a phone number? A: The directory publishes a direct phone on virtually every broker card, and the run report shows exact phone coverage for your cohort.
Q: Can I get broker emails?
A: The public directory does not publish emails — each row includes the official contact-form URL (contactUrl) instead, plus the profile URL.
Q: Do the filters combine? A: Yes — city/region, agency, name and language all compose (e.g. English-serving RE/MAX brokers in Québec City).
Q: What output formats are available? A: JSON, CSV, Excel and XML — export directly from the Apify dataset tab or via API.
Q: Am I charged for duplicate brokers?
A: No. Rows are deduplicated on brokerId within a run — you are charged once per unique broker returned.
Q: Is this legal? A: The actor only collects business contact data brokers publish on their public directory profiles. See the legal section below.
🐛 Troubleshooting
Run finishes with 0 rows
- Check the spelling of your filters — try the French spelling for cities (e.g. "Montréal", "Québec")
- Broaden the search: drop the language filter or use a shorter agency prefix ("RE/MAX" instead of a full office name)
Fewer rows than expected
- Small markets genuinely have few brokers — the actor stops when the directory is exhausted
- Raise
maxBrokersif you hit your own cap (check the run log for the cap notice)
A broker appears in two different runs
- Cross-run dedup is up to you — use the stable
brokerIdfield as your merge key
⚠️ Trademark Disclaimer
This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Centris or the Quebec Professional Association of Real Estate Brokers (QPAREB/APCIQ). "Centris" is a trademark of its respective owner. All data is collected from publicly accessible broker directory pages.
⚖️ Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
🤝 Support
Join our active support community
- For issues or questions, open an issue in the actor's repository
- Check SIÁN Agency Store for more automation tools
- 📧 apify@sian-agency.online
Built by SIÁN Agency | More Tools