Centris.ca Scraper — Quebec Real Estate Data & MLS API avatar

Centris.ca Scraper — Quebec Real Estate Data & MLS API

Pricing

from $1.00 / 1,000 property extracteds

Go to Apify Store
Centris.ca Scraper — Quebec Real Estate Data & MLS API

Centris.ca Scraper — Quebec Real Estate Data & MLS API

Scrape Centris.ca Quebec and Montreal real estate listings into clean structured data. Search by city, region, map polygon, coordinates or listing URL; filter by price, beds, baths, property type and foreclosure; export full listing details, photos and geocoordinates with an HTML report.

Pricing

from $1.00 / 1,000 property extracteds

Rating

0.0

(0)

Developer

SIÁN OÜ

SIÁN OÜ

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Centris.ca Scraper — Quebec Real Estate Data & MLS API 🏠

SIÁN Agency Store Realtor.ca Property Scraper Zillow Property Scraper Trulia Property Scraper

🎉 The only complete Centris.ca scraper — search Quebec real estate 4 ways, then pull full bilingual listing dossiers

For real estate investors, brokers, market analysts, and Quebec/Canada data teams who need fresh, structured MLS-grade listing data


📋 Overview

Pull Centris.ca Quebec and Montreal listings — for-sale AND rentals — into clean structured data. Search by city or region, by coordinates + radius, inside an arbitrary map polygon, or straight from a Centris search-results URL, then enrich any listing with a full bilingual (FR/EN) dossier: characteristics, units, financials, taxes, community profile, nearby amenities, photos and geocoordinates.

Why real estate teams choose this scraper:

  • Only complete Centris scraper: 4 search modes + rich detail dossiers in one actor — nothing else on the market covers all of it for Centris.ca
  • Search any way you have data: location name, coordinates + radius, map polygon, or paste-a-URL — every mode auto-paginates up to 60 rows/page
  • 🎯 Full Centris filter set: sale/rent, property type, price band, beds, baths, parking, garage, living/land area, pool, waterfront, elevator, open house, furnished, pets, and foreclosure
  • 💰 Best price on the market: pay-per-result — charged only for listings actually returned, with a generous FREE tier to test on
  • 💎 Sourcing-grade detail: bilingual FR/EN dossiers with structured characteristics, room-by-room units, municipal assessment, taxes and listing brokers
  • Built-in market KPIs: median/average price, price distribution, and category + bedroom breakdowns in a clean HTML report

✨ Features

  • 🧭 Four search modes: by location, by coordinates + radius, by map polygon, or by Centris search-results URL
  • 🧾 Full detail dossiers: fetch complete listing data by listing number or URL — or auto-enrich every search row
  • 🏷 Sale + rent: scrape either side of the Quebec market with a single searchType toggle
  • 🔧 Rich server-side filters: price band, beds/baths/parking/garage, property type, foreclosure, waterfront, pool and more
  • 📊 Market KPIs + HTML report: median/average price, distribution and inventory breakdowns computed automatically
  • 🔁 Automatic de-duplication: the same listing is never charged or exported twice
  • 🌐 Bilingual data (FR/EN): Quebec listings served in both French and English
  • 📍 Location autocomplete: a helper mode to discover valid Centris locations before you search
  • 📦 Bulk detail lookups: pass arrays of listing numbers and/or URLs for batch dossier extraction

🎬 Quick Start

Pick a mode, give it a location (or coordinates, polygon, or URL), and run. Results stream straight to the Apify dataset with an HTML market report in the key-value store. No setup beyond your input.

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~centris-ca-property-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"mode":"location","location":"Montreal","searchType":"For_Sale","maxResults":25}'

🚀 Getting Started (3 Simple Steps)

Step 1: Choose your search mode

Set mode to location, coordinates, polygon, or searchUrl — and provide the matching target (a city name, a lat/lng, a polygon, or a Centris URL).

Step 2: Add filters (optional)

Narrow results with searchType (sale/rent), price band, beds, baths, property type, foreclosure, waterfront and more.

Step 3: Run and export

Run the actor. Optionally set enrichDetails: true (PAID) to attach a full dossier to every listing.

That's it! In under a minute, you'll have:

  • A clean, de-duplicated dataset of Quebec listings
  • Prices, addresses, beds/baths, photos and geocoordinates
  • An HTML market report with median price, distribution and inventory breakdowns

📥 Input Configuration

FieldTypeRequiredDescription
modestringNolocation, coordinates, polygon, searchUrl, listingDetail, or autocomplete (default location)
locationstringFor location modeCity, region or neighbourhood, e.g. Montreal
latitude / longitudenumberFor coordinates modeCentre point of the radius search
radiusnumberNoRadius in km around the point (default 3)
polygonstringFor polygon mode≥3 space-separated lat,lng points
searchUrlstringFor searchUrl modeA Centris search-results URL
listingIds / listingUrlsarrayFor listingDetail modeListing numbers and/or URLs to fetch dossiers for
searchTypestringNoFor_Sale or For_Rent (default sale)
categorystringNoResidential or Commercial
propertyTypestringNoComma-separated types, e.g. House, Condo, Plex
minPrice / maxPriceintegerNoPrice band in CAD
bedrooms / bathrooms / parking / garagestringNoExact (3) or N-or-more (3+)
pool / waterfront / elevator / openHouse / furnished / petsAllowed / foreclosurebooleanNoFeature filters
maxResultsintegerNoCap on listings per search (FREE tier capped at 25)
enrichDetailsbooleanNoAttach a full dossier to every search row (PAID)

Example — location search:

{
"mode": "location",
"location": "Montreal",
"searchType": "For_Sale",
"propertyType": "Condo",
"minPrice": 300000,
"maxPrice": 600000,
"bedrooms": "2+",
"maxResults": 50
}

Example — bulk detail lookup:

{
"mode": "listingDetail",
"listingIds": ["23630164", "13441060"]
}

📤 Output

Results are saved to the Apify dataset. Search rows carry the core listing fields; detail rows (and enriched rows) add the full dossier.

FieldTypeDescription
propertyIdstringCentris listing number (join key)
listingTypestringsale or rent
categorystringe.g. Condo for sale, Triplex for sale
pricenumberPrice in CAD
priceTextstringFormatted price, e.g. $799,000
addressstringStreet / full address
bedroomsintegerBedroom count
bathroomsintegerBathroom count
photostringPrimary listing photo URL
urlstringFull listing URL
listingTitlestringFull title (detail rows)
characteristicsarrayStructured features, interior/exterior (detail rows)
financialInfoobjectAssessment, taxes and fees (detail rows)
agentsarrayListing broker(s) with name, agency and phone (detail rows)

Example (search row):

{
"propertyId": "23630164",
"listingType": "sale",
"category": "House for sale",
"price": 799000,
"priceCurrency": "CAD",
"priceText": "$799,000",
"address": "4346, boulevard Jacques-Bizard",
"bedrooms": 3,
"bathrooms": 2,
"photo": "https://mspublic.centris.ca/media.ashx?id=...",
"url": "https://www.centris.ca/en/houses~for-sale~montreal-pierrefonds-roxboro/23630164"
}

💼 Use Cases & Examples

1. Quebec & Montreal Market Analysis

Analysts tracking pricing and inventory across Quebec's biggest housing market.

Input: location: "Montreal", searchType: "For_Sale", maxResults: 200 Output: De-duplicated listings + an HTML report with median price and inventory mix Use: Weekly market sweeps, pricing trend dashboards, neighbourhood comparisons

2. Comparables & Valuation Models

Data teams building comparables and training AVMs on fresh Quebec data.

Input: Location or polygon, enrichDetails: true Output: Full dossiers with price, beds/baths, area, taxes and geocoordinates Use: Automated valuation models, rent-prediction, comparable-sales datasets

3. Investor Deal Sourcing

Investors hunting foreclosures, plexes and waterfront opportunities.

Input: foreclosure: true or propertyType: "Plex, Triplex", price band Output: Targeted listings with financials and gross scheduled income Use: Off-market and value-add deal pipelines before the wider market reacts

4. Lead Generation

Sales teams pulling active listings and listing-broker contact data.

Input: mode: "listingDetail" with listing numbers, or enrichDetails: true Output: Listing dossiers with broker name, agency and phone Use: Outreach lists, CRM enrichment, prospecting pipelines

5. Canadian Housing Datasets & Dashboards

Researchers and product teams powering monitors and dashboards.

Input: Scheduled coordinates / polygon sweeps Output: Continuously refreshed structured Quebec listing data Use: Housing-market research, real-estate products, competitive monitoring


🔗 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-ca-property-scraper').call({
mode: 'location',
location: 'Montreal',
searchType: 'For_Sale',
maxResults: 25
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('sian.agency/centris-ca-property-scraper').call(
run_input={'mode': 'location', 'location': 'Montreal', 'searchType': 'For_Sale', 'maxResults': 25}
)
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item)

cURL

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~centris-ca-property-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"mode":"location","location":"Montreal","searchType":"For_Sale","maxResults":25}'

Automation Workflows (N8N / Zapier / Make)

  1. Trigger: Schedule or webhook
  2. HTTP Request: Call the actor API
  3. Process: Handle JSON results
  4. Action: Save, notify, or transform

📊 Performance & Pricing

FREE Tier (Try It Now)

  • 25 listings per run — full feature access, same data quality
  • No credit card required
  • Perfect for testing and small projects
  • Unlimited listings per run
  • Bulk detail lookups + per-row enrichment
  • Pay-per-result: only charged for listings actually returned

💰 Best price on the market — a low per-listing headline rate for search, with full bilingual dossiers priced by value.

🔗 View current pricing


❓ Frequently Asked Questions

Q: How many listings can I scrape? A: FREE tier: 25 per run. PAID tier: unlimited, with auto-pagination up to 60 rows per page.

Q: Can I search both for-sale and rentals? A: Yes — set searchType to For_Sale or For_Rent. Centris does not publish sold data.

Q: How do I get full property details? A: Use listingDetail mode with listing numbers/URLs, or set enrichDetails: true on any search to attach a full dossier to every row.

Q: Is the data bilingual? A: Yes — Quebec listings are served in both French and English; search rows are English-labelled and detail dossiers include French content.

Q: What output formats are available? A: JSON, CSV, Excel — export directly from the Apify dataset.

Q: Is this legal? A: Yes — we only extract publicly available listing data. See the legal section below.


🐛 Troubleshooting

No results returned

  • Confirm the location resolves — try autocomplete mode with your query first
  • Widen your filters (price band, beds/baths) or increase maxResults

A location isn't matched

  • Use autocomplete mode to find the exact Centris location label, then search with it

Detail enrichment skipped

  • enrichDetails requires the PAID tier; on FREE it is silently disabled

Coordinates search too narrow

  • Increase radius (km) around your centre point

⚠️ Trademark Disclaimer

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Centris.ca, the Quebec Professional Association of Real Estate Brokers (QPAREB), or any of their subsidiaries or affiliates. "Centris" and "Centris.ca" are trademarks of their respective owners. All product and company names are the property of their respective holders. This tool extracts only publicly available listing information for legitimate research and analysis purposes.


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

Telegram Support

Join our active support community


Built by SIÁN Agency | More Tools