Centris Canada Real Estate Listings & Broker Leads Scraper
Pricing
from $17.00 / 1,000 results
Centris Canada Real Estate Listings & Broker Leads Scraper
Scrape Quebec (Canada) property listings from Centris with price in CAD, property type, bedrooms, bathrooms, living area, full address, MLS number, GPS coordinates and the listing broker name, agency and phone. Filter by transaction, city and property type. Export to JSON, CSV or Excel.
Pricing
from $17.00 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Centris Canada Real Estate Listings & Broker Leads Scraper
Here is one real result, with every field the actor returns (the description is trimmed with an ellipsis, every value real):
{"mlsNumber": "11469419","searchCity": "Montreal","category": "sale","propertyType": "House","price": 489000,"currency": "CAD","address": "55, Rue Elvin","city": "Drummondville","region": "Quebec","postalCode": null,"bedrooms": 3,"bathrooms": 3,"livingArea": "1,440 sqft","lotArea": "9,500 sqft","yearBuilt": 1979,"potentialGrossRevenue": null,"brokerName": "Sébastien Bérubé","brokerTitle": "Residential and Commercial Real Estate Broker","agencyName": "RE/MAX ÉLITE","brokerPhone": "8194617611","description": "Située dans un quartier paisible et familial, cette propriété clé en main vous offre un emplacement recherché sans voisin à l'avant grâce au Parc Boisvert ...","mainImage": "https://mspublic.centris.ca/media.ashx?id=ADDD250DE6F1393DDDDDDDDDDB&t=pi&w=1260&h=1024&sm=c","buildingStyle": "Two or more storey, Detached","parking": "Carport (1), Driveway (4)","additionalFeatures": "Private yard, Private balcony, Basement 6 feet or +","moveInDate": "2026-07-01","municipalAssessmentLot": 35000,"municipalAssessmentBuilding": 303100,"municipalAssessmentTotal": 338100,"assessmentYear": 2022,"municipalTax": 219,"schoolTax": 19,"annualTaxTotal": 238,"taxYear": 2026,"lat": 45.855482,"long": -72.41765929,"listingUrl": "https://www.centris.ca/en/houses~for-sale~drummondville/11469419","aiSummary": null,"aiBeds": null,"aiBaths": null,"aiSizeSqft": null,"aiAmenities": null,"aiCondition": null,"source": "centris-canada-realestate-scraper","observedAt": "2026-08-10T14:30:43.587Z","error": null}
The most complete Centris Quebec real estate scraper available. It returns every field a Centris listing exposes for each property, including price in CAD, beds, baths, living and lot area, municipal assessment and taxes, GPS coordinates and the listing broker name, agency and phone, plus optional AI and contact add-ons, and gives you transaction, city and property-type filters to target exactly the listings you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor searches Centris for properties in each Quebec city or region you provide, filters by transaction and property type, and writes one normalized record per listing to the run's dataset. Each record carries the MLS number, property type, price in CAD, full address and region, bedrooms, bathrooms, living and lot area, year built, building style, parking, additional features, move-in date, the full municipal assessment and tax breakdown, GPS coordinates and main image, plus the listing broker name, title, agency and phone. Missing source values are returned as null.
The actor tries a direct request first and switches to a Canadian residential exit IP only when a page is blocked. Optional AI add-ons (withSummary, withFeatures) add a buyer-facing summary and structured beds/baths/size/amenities/condition tags, and enrichContacts tries to find a public contact email and name for brokers without one. All add-ons are paid and charge only when they return usable output.
Quickstart
Open the actor, paste this into the input, and press Run. It returns ten properties for sale across Montreal and Quebec City.
{"transaction": "sale","cities": ["Montreal", "Quebec"],"propertyType": "all","maxListings": 10}
Every input field is optional. Add more cities to widen the run, and switch transaction to rent for rentals.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
transaction | enum | no | sale | Whether to collect properties sale (for sale) or rent (for rent). |
cities | string[] | no | ["Montreal","Quebec"] | One or more Quebec cities or regions to search, for example Montreal, Laval, Gatineau. |
propertyType | enum | no | all | Restrict to a type. One of all, house, condo, plex, land, commercial. |
maxListings | integer | no | 10 | Maximum listings to collect across all cities (1 to 5000). |
withSummary | boolean | no | false | AI buyer-facing English summary per listing. Paid add-on, billed per summarized listing. |
withFeatures | boolean | no | false | AI structured beds/baths/size/amenities/condition tags. Paid add-on, billed per processed listing. |
enrichContacts | boolean | no | false | Contact-finder add-on. For each result without an email, attempt to find a public contact email and name. Billed per attempt, plus an extra charge only when an email is found. |
enrichContactsMax | integer | no | 50 | Cap how many results the contact add-on tries to enrich. Free Apify accounts are capped at 3. |
Output reference
One dataset item per listing. Types: string, integer, number, string[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
mlsNumber | string | Centris MLS listing number. |
searchCity | string | The city / region that produced this record. |
category | string | Transaction category, sale or rent. |
propertyType | string | Property type, for example House, Condo. |
price | integer | Asking price. |
currency | string | Price currency. CAD. |
address | string | Street address. |
city | string | Property city. |
region | string | Region / province. |
postalCode | string | Postal code, or null. |
bedrooms | integer | Number of bedrooms, or null. |
bathrooms | integer | Number of bathrooms, or null. |
livingArea | string | Living area with unit. |
lotArea | string | Lot area with unit. |
yearBuilt | integer | Year built, or null. |
potentialGrossRevenue | integer | Potential gross revenue for income properties, or null. |
brokerName | string | Listing broker name. |
brokerTitle | string | Broker professional title. |
agencyName | string | Brokerage / agency name. |
brokerPhone | string | Broker phone number. |
description | string | Listing description text. |
mainImage | string | Main image URL. |
buildingStyle | string | Building style. |
parking | string | Parking description. |
additionalFeatures | string | Additional features text. |
moveInDate | string | Available / move-in date. |
municipalAssessmentLot | integer | Municipal assessment of the lot. |
municipalAssessmentBuilding | integer | Municipal assessment of the building. |
municipalAssessmentTotal | integer | Total municipal assessment. |
assessmentYear | integer | Assessment year. |
municipalTax | integer | Municipal tax amount. |
schoolTax | integer | School tax amount. |
annualTaxTotal | integer | Total annual tax. |
taxYear | integer | Tax year. |
lat | number | Latitude. |
long | number | Longitude. |
listingUrl | string | Centris listing URL. |
aiSummary | string | AI summary, or null unless withSummary is on. |
aiBeds | number | AI-extracted bedroom count, or null unless withFeatures is on. |
aiBaths | number | AI-extracted bathroom count, or null. |
aiSizeSqft | number | AI-extracted size in sqft, or null. |
aiAmenities | string[] | AI amenity tags, or null. |
aiCondition | string | AI condition tag, or null. |
enrichedEmail | string | Contact email found by the add-on, or null. Present only when enrichContacts is on. |
enrichedContactName | string | Contact person found by the add-on, or null. |
enrichedEmailStatus | string | Confidence status (verified, likely, guessed, not_found), or null. |
source | string | Data source identifier. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
The enriched* fields appear only when the enrichContacts add-on is enabled.
Example output record
Real record from a live run (input {"transaction":"sale","cities":["Montreal","Quebec"],"propertyType":"all","maxListings":10}). AI and contact add-ons were off, so those fields are null; the description is trimmed with an ellipsis:
{"mlsNumber": "11469419","searchCity": "Montreal","category": "sale","propertyType": "House","price": 489000,"currency": "CAD","address": "55, Rue Elvin","city": "Drummondville","region": "Quebec","bedrooms": 3,"bathrooms": 3,"livingArea": "1,440 sqft","lotArea": "9,500 sqft","yearBuilt": 1979,"brokerName": "Sébastien Bérubé","brokerTitle": "Residential and Commercial Real Estate Broker","agencyName": "RE/MAX ÉLITE","brokerPhone": "8194617611","description": "Située dans un quartier paisible et familial, cette propriété clé en main vous offre un emplacement recherché sans voisin à l'avant ...","buildingStyle": "Two or more storey, Detached","parking": "Carport (1), Driveway (4)","municipalAssessmentTotal": 338100,"annualTaxTotal": 238,"taxYear": 2026,"lat": 45.855482,"long": -72.41765929,"listingUrl": "https://www.centris.ca/en/houses~for-sale~drummondville/11469419","source": "centris-canada-realestate-scraper","observedAt": "2026-08-10T14:30:43.587Z"}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~centris-canada-realestate-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"transaction":"sale","cities":["Montreal"],"propertyType":"condo","maxListings":25}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~centris-canada-realestate-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"transaction":"rent","cities":["Laval","Gatineau"],"maxListings":200}'
Apify CLI:
apify call scrapers_lat/centris-canada-realestate-scraper \--input '{"transaction":"sale","cities":["Quebec"],"propertyType":"plex"}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per listing record returned (
resultevent). See the pricing tab for the current per-result price. - Add-ons are billed separately.
withSummary,withFeaturesandenrichContacts(per attempt plus per email found) each charge only when they return usable output. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run, and the contact add-on to 3 results. Upgrade for higher
maxListings.
FAQ and troubleshooting
Does it include the broker's contact details?
Yes. Each record includes the listing broker name, title, agency and phone. Enable enrichContacts to also try finding a public contact email and name.
Which area does it cover? Centris covers Quebec, Canada. Search by any Quebec city or region.
A run returned 0 records. Why? There may be no listings of that type in the city, or the source briefly blocked the request. The actor retries with a Canadian residential IP; try again or widen the city or property type. Zero-result runs are not charged.
Why are the AI or enriched fields null?
They only populate when you enable the matching add-on (withSummary, withFeatures, enrichContacts). Otherwise they stay null.
Is this an official Centris tool? No. This actor is independent and has no affiliation with Centris or the QPAREB. It reads only data that is publicly available on Centris listings. Use the results in accordance with the source's terms and applicable data-protection law.
Related scrapers
- Adondevivir Peru Real Estate Scraper: Peru property listings with contacts.
- Canada Corporations Registry Scraper: Canadian federal and provincial companies.
- CarroYa Colombia Car Listings Scraper: Colombian vehicle listings with seller contacts.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with Centris or the QPAREB. Accesses only publicly available listing data. Use in accordance with the source's terms.
