Centris Scraper [💰$1.3/1K] | Quebec MLS | Property Leads avatar

Centris Scraper [💰$1.3/1K] | Quebec MLS | Property Leads

Pricing

from $1.20 / 1,000 results

Go to Apify Store
Centris Scraper [💰$1.3/1K] | Quebec MLS | Property Leads

Centris Scraper [💰$1.3/1K] | Quebec MLS | Property Leads

Scrape Centris.ca — the Quebec real-estate MLS — for sale and rental listings with full property detail pages: Centris/MLS number, price, address and coordinates, room counts, living and lot area, year built, municipal assessment, taxes, listing broker contact details and photos.

Pricing

from $1.20 / 1,000 results

Rating

0.0

(0)

Developer

Ahmed Jasarevic

Ahmed Jasarevic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 days ago

Last modified

Categories

Features

Limited permissions

Share

Centris Scraper — Quebec MLS Listings, Property Details & Broker Data

Scrape Centris.ca — the Quebec real-estate MLS — for sale and rental listings with full property detail pages: Centris/MLS number, price, address and coordinates, room counts, living and lot area, year built, municipal assessment, taxes, listing broker contact details and photos, plus the complete raw characteristics and financial grids as label → value objects. Search by region, city, category and property type, or paste a Centris search URL directly.

Built for Quebec brokerages and lead-generation agencies, proptechs, mortgage and appraisal teams running CMA comps, and investors screening plexes and multi-unit buildings.

Scrape Quebec MLS Listings For Market Research & Lead Generation

  • Quebec property lead generation — broker name, title, agency and phone numbers on every listing
  • CMA comps and appraisal data — price, municipal assessment, taxes, living area, lot area and year built in one row
  • Rental market research — sale and rental listings side by side with sellingType filtering
  • Plex and multi-unit screening — propertyTypes includes Plex, MultiFamily and Intergenerational
  • Building a Quebec property database — the full raw characteristics and financials grids plus the mapped fields
  • Commercial market coverage — category: Commercial with office, industrial and commercial property types

How It Works

How the Centris Scraper works: Quebec filters become listing rows with prices, assessments, taxes and broker contacts.

The Actor builds Centris's gzip and base64url q parameter from your filters, resolves regions through autocomplete and walks stateless search pages 20 listings at a time. Each listing page then supplies the characteristics, assessment, tax and broker details.

Each row combines the search card with the detail page: price, property type, address, room counts, areas, year built, taxes, broker contacts and photos. Use it to compare Quebec sale and rental inventory.

Centris.ca is an ASP.NET Core site behind Cloudflare. The public search UI is server-rendered, so the Actor reads the same requests the site's own frontend makes — no browser and no JavaScript rendering:

  1. Search query (q parameter). Centris encodes its search state as a gzip + base64url JSON blob in the q URL parameter. The Actor builds that object directly (geography filters, Category, SellingType, GeographicArea).
  2. Region resolution. Free-text regions are resolved to Centris geography IDs through the site's own autocomplete endpoint (POST /Property/GetSearchAutoCompleteData).
  3. Search results (stateless GET). GET https://www.centris.ca/en/<slug>?q=<q>&pageSize=20&page=N returns plain HTML with 20 listing cards (div.property-thumbnail-item), each carrying schema.org microdata (meta[itemprop=sku], meta[itemprop=price], meta[itemprop=name]), address, beds/baths and coordinates. No cookies or session are required.
  4. Property detail pages. Each card links to a server-rendered detail page with schema.org microdata, the characteristics grid (.carac-container), the financial-details tables (municipal assessment, taxes), the broker card (.realtor-name, .realtor-type, .broker-info__agency-name, tel: links) and the photo list (#property-roomvo-data[data-photo-urls]).

The search and detail endpoints return HTTP 200 to a normal desktop User-Agent — no Cloudflare challenge is encountered. Everything is stateless: no cookie jar, no session pool, no tokens.

Input Parameters

FieldTypeRequiredDefaultNotes
sellingTypeenumNoSaleSale, Rent or Both.
categoryenumNoResidentialResidential or Commercial.
regionsarrayNowhole provinceRegion or city names, e.g. ["Montreal", "Laval"]. Empty means the whole province.
propertyTypesarrayNoalle.g. ["Plex"] for multi-unit buildings.
searchUrlsarrayNo—Centris.ca search-result URLs copied from your browser (the ones with the q= parameter). Scraped directly with automatic pagination; overrides the filters above. French /fr/ URLs are switched to /en/.
maxItemsintegerNo100Max listings to scrape. Search pages (20 listings each) are walked automatically until this many are collected.
proxyobjectNooffStandard Apify proxy configuration; off by default.

Output Fields

One row per listing, combining the search card and the property detail page.

FieldDescription
centrisNumber / mlsNumberCentris / MLS number.
price, priceCurrencyAsking price in CAD.
category, propertyType, sellingTypee.g. Residential / House / Sale.
fullAddress, streetAddress, city, regionFull address, city and administrative region.
latitude, longitudeCoordinates.
bedrooms, bathrooms, roomsRoom counts (plus raw text).
livingArea, lotAreaLiving area and lot area.
yearBuiltYear built.
municipalAssessmentMunicipal assessment (lot / building / total).
taxesMunicipal and school taxes.
brokerName, brokerTitle, brokerAgency, brokerPhonesListing broker details.
photos, photosFullPhoto URLs (thumbnail size and full size).
characteristics, financialsFull raw grids for anything not mapped above, as label → value objects.

Free-plan runs return a 10-listing preview; paying runs return the full result set up to maxItems.

Example Input

Scrape plexes (multi-unit buildings) in Montreal for sale:

{
"sellingType": "Sale",
"category": "Residential",
"regions": ["Montreal"],
"propertyTypes": ["Plex"],
"maxItems": 200
}

Example Output

{
"centrisNumber": "24192056",
"mlsNumber": "24192056",
"price": 899000,
"priceCurrency": "CAD",
"category": "Residential",
"propertyType": "Plex",
"sellingType": "Sale",
"fullAddress": "5423 Avenue du Parc, Montréal (Le Plateau-Mont-Royal), QC H2T 1X5",
"streetAddress": "5423 Avenue du Parc",
"city": "Montréal (Le Plateau-Mont-Royal)",
"region": "Montréal",
"latitude": 45.5241,
"longitude": -73.5967,
"bedrooms": 5,
"bathrooms": 3,
"rooms": 10,
"livingArea": "2,500 sq. ft.",
"lotArea": "2,500 sq. ft.",
"yearBuilt": "1927",
"municipalAssessment": {
"lot": 612300,
"building": 388400,
"total": 1000700
},
"taxes": {
"municipal": 6245,
"school": 986
},
"brokerName": "Marie Tremblay",
"brokerTitle": "Residential Broker",
"brokerAgency": "Agence Immo Plateau",
"brokerPhones": ["+1 514 555 0123"],
"photos": ["https://media.centris-centris.ca/thumb/24192056_1.jpg"],
"photosFull": ["https://media.centris-centris.ca/24192056_1.jpg"],
"characteristics": {
"Room": "5 bedrooms",
"Bathroom": "3 washrooms",
"Zoning": "Residential",
"Parking": "Outdoor x 2"
},
"financials": {
"Municipal assessment (lot)": "$612,300",
"Municipal assessment (building)": "$388,400",
"Municipal assessment (total)": "$1,000,700",
"Municipal taxes": "$6,245 (2026)",
"School taxes": "$986 (2025-2026)"
}
}

Automate Quebec Real Estate Monitoring With Schedules & Webhooks

  • Schedule the Actor to re-crawl a region weekly and detect new listings, price changes and withdrawn properties.
  • Webhooks — configure a run-success webhook so each finished run POSTs to n8n, Make or Zapier and lands in a CRM or spreadsheet.
  • Apify API — pull the dataset programmatically with the JavaScript or Python client, or export JSON / CSV / Excel from the console.
  • Recurring runs keep a Quebec property database current; new listings appear and prices change constantly.

Frequently Asked Questions

Why use this Actor instead of the official Centris API?

Centris does operate a data-distribution service, but access is gated behind an OData-based API (datadistributionqc.centris.ca) that requires a Token and a signed authorization from a licensed brokerage — one agreement per brokerage. There is also a SOAP "service de diffusion" for the same authorized partners. This Actor instead reads the publicly visible search and detail pages, so anyone can start extracting Quebec MLS listings without a brokerage agreement, an API contract or a developer setup.

What are alternatives to Centris for Quebec real-estate data?

Three routes exist. First, Centris itself — it is the province's MLS and the canonical source for active Quebec listings, but it publishes no sold or historical prices. Second, licensed IDX/VOW data feeds resold by real-estate data aggregators, which are contractually limited to authorized brokerages. Third, self-serve scraping of the public search (this Actor and the ones in Related Actors). Zillow, Rightmove and Idealista cover other markets; nothing replaces Centris for Quebec specifically.

Can I get sold or historical listing prices from Centris?

No — Centris publishes active listings only. There is no sold-price history on Centris.ca, and this Actor returns what is currently listed. For sold-price history you would need a provincial land-registry source or a licensed data feed that aggregates them. The Actor does return municipalAssessment and taxes on every listing, which are useful for valuation work on active inventory.

Does Centris have an API I can call directly?

Centris has no open public API. Its data-distribution endpoints (the OData service and the SOAP "service de diffusion") require a Token issued to an authorized brokerage, and each brokerage must sign its own authorization agreement. The public website has no published developer documentation, so the search state must be reconstructed from the q parameter — which is exactly what this Actor does.

Can an AI agent call this Actor?

Yes. It is a standard Apify Actor, so any MCP client or agent can start a run through the Apify API or the Apify MCP server, wait for it to finish, and read the dataset items. The minimal input and output field list are in the next section.

How much does it cost?

Pay-per-event: one result event per listing returned ($1.30 per 1,000 listings), plus a small Actor-start event scaled by memory. There is no charge for search pages that return no listing.

For AI Agents & LLM Apps

Purpose: return structured Quebec MLS listings (price, address, coordinates, room counts, areas, municipal assessment, taxes, broker contact, photos) from centris.ca as JSON rows.

Minimal input (residential sale listings in Montreal):

{
"sellingType": "Sale",
"category": "Residential",
"regions": ["Montreal"],
"maxItems": 100
}

Variant — a browser-copied Centris search URL (the Actor recovers and applies its filters):

{
"searchUrls": ["https://www.centris.ca/en/properties~for-sale?query=..."],
"maxItems": 200
}

Output fields (default dataset): centrisNumber, mlsNumber, price, priceCurrency, category, propertyType, sellingType, fullAddress, streetAddress, city, region, latitude, longitude, bedrooms, bathrooms, rooms, livingArea, lotArea, yearBuilt, municipalAssessment, taxes, brokerName, brokerTitle, brokerAgency, brokerPhones, photos, photosFull, characteristics, financials.

Behaviors an agent should know:

  • There is no keyword-search input. The Actor builds the search state from sellingType + category + regions + propertyTypes, resolving region names to Centris geography IDs itself. An empty regions array means the whole province.
  • searchUrls overrides every other filter — use it when you have a browser-built Centris search URL, especially for complex filters the typed inputs do not cover. A URL without a q= parameter still works: the state is recovered from the page's own links.
  • maxItems defaults to 100; search pages are walked automatically at 20 listings per page. There is no page input.
  • For exhaustive province-wide coverage, split the run by region — Centris caps how deep the paginated gallery goes for very large result sets.
  • characteristics and financials are label → value objects with arbitrary keys, so read them generically.
  • municipalAssessment and taxes are nested objects (lot/building/total; municipal/school) — they exist on detail pages, not on search cards.
  • Free-plan runs are capped at a 10-listing preview.
  • The per-room detail table (individual room dimensions) is loaded by a separate AJAX call and is not included; room/bedroom/bathroom counts and the characteristics grid are.

Billing: pay-per-event — one result event per listing returned ($1.30 / 1,000). Budget by listing count, not by page count, since search pages that yield no listing bill nothing.

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. It reads only publicly visible search and detail pages on centris.ca — no login, no account and no access to private or member-only data. Listing broker names, titles, agency affiliations and phone numbers are already displayed publicly on each listing page. You are responsible for your own compliance with Centris's Terms of Service and with applicable data-protection law (including Quebec's Law 25 and, where relevant, Canada's CASL and GDPR) — in particular before using broker contact details for commercial outreach.

SEO Keywords

centris scraper, quebec real estate data, quebec mls listings, centris ca data export, montreal property data, quebec real estate listings scraper, property lead generation quebec, mls data quebec, real estate market research quebec, plex multi unit quebec, commercial listings quebec, property comps cma quebec, quebec rental listings, montreal real estate scraper, quebec housing data, residential listings quebec, commercial property scraper, real estate investor data, centris api alternative, quebec mls api, property database builder, real estate lead generation, housing market research, listing data export