Centris.ca Property Scraper avatar

Centris.ca Property Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Centris.ca Property Scraper

Centris.ca Property Scraper

Fast Centris.ca real-estate scraper. Extracts title, price, address, rooms, full description, characteristics and every gallery image.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

youssef farhan

youssef farhan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Share

Centris Property Scraper — Extract Centris.ca Listings With Photos

Scrape Centris.ca real-estate listings into clean, structured JSON — price, address, rooms, full description, every spec, and the complete photo gallery. Built for real-estate investors, brokers, data teams, and price trackers who need reliable Centris data at scale. Unlike thumbnail-only tools, it opens each property page and captures all gallery images plus the full characteristics table.

What you get

Listing info

  • url — Canonical Centris property URL
  • title — Listing title (e.g. "House for sale")
  • address — Full street address with borough/city
  • scraped_at — UTC ISO timestamp of capture

Pricing

  • price — Asking price as a clean integer (no $ or commas)

Property attributes

  • rooms — Total room count (e.g. "14 rooms")
  • bedrooms — Bedroom summary (e.g. "4 bedrooms (1 in basement)")
  • bathrooms — Bathroom + powder-room summary
  • characteristics — Key/value object: building style, year built, lot area, living area, parking, pool, fireplace, move-in date, and more

Content

  • description — Full listing description text

Media

  • images — Array of every high-resolution gallery image URL
  • image_count — Number of images captured

Sample output

{
"url": "https://www.centris.ca/en/houses~for-sale~montreal-le-plateau-mont-royal/22323456",
"title": "House for sale",
"price": 2250000,
"address": "1674, Rue Gilford, Montréal (Le Plateau-Mont-Royal)",
"rooms": "14 rooms",
"bedrooms": "4 bedrooms (1 in basement)",
"bathrooms": "2 bathrooms and 1 powder room",
"description": "Magnificent semi-detached Plateau home blending century character with modern updates...",
"characteristics": {
"Building style": "Two or more storey, Semi-detached",
"Year built": "1910",
"Lot area": "2,600 sqft",
"Parking (total)": "Driveway (2), Garage (2)"
},
"image_count": 28,
"images": [
"https://mspublic.centris.ca/media.ashx?id=ADDD250DAD2EA20DDDDDDDDDD2&t=pi&w=1260&h=1024&sm=c",
"https://mspublic.centris.ca/media.ashx?id=ADDD250DDDDF4F3DDDDDDDDDD2&t=pi&w=1260&h=1024&sm=c"
],
"scraped_at": "2026-06-07T22:31:04+00:00"
}

Use cases

  • ✓ Real-estate investors tracking price changes across Montreal Island boroughs
  • ✓ Mortgage and appraisal teams pulling comparables (comps) by area and price band
  • ✓ Brokers building lead lists of new for-sale inventory daily
  • ✓ Market researchers analyzing inventory, days-on-market, and pricing trends
  • ✓ Proptech startups feeding live Centris listings into apps and dashboards
  • ✓ Data teams enriching CRMs with addresses, specs, and listing photos

How it works

  • Input: a Centris.ca search URL plus a page range (startPageendPage).
  • Pagination: the actor walks each search-results page and collects every property link.
  • Detail scraping: it opens each property page concurrently and extracts price, address, rooms, description, the full characteristics table, and all gallery photos.
  • Output: every property is pushed to the Apify dataset — export as JSON, CSV, Excel, or XML.
  • Scheduling & webhooks: run on an Apify schedule and trigger webhooks on finish out of the box.

Why this scraper

  • Full gallery, not thumbnails — captures every high-resolution image per listing, not just the cover photo.
  • Dedicated residential proxies — Canada-geo-matched IPs with automatic rotation and retries to avoid blocks.
  • Fast & concurrent — configurable parallelism (default 10) scrapes detail pages simultaneously.
  • Migration-safe & resumable — persists state and resumes exactly where it left off after platform migrations or aborts, so you never re-scrape or lose progress.

Input example

{
"searchUrl": "https://www.centris.ca/en/properties~for-sale~montreal-island?pageSize=20&page=1",
"startPage": 1,
"endPage": 10,
"maxConcurrency": 10,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "CA"
}
}

Omit maxResults to scrape every property in the page range.

FAQ

Does it handle anti-bot protection? Yes. It routes every request through dedicated residential Apify proxies with rotation and automatic retries.

What output formats are supported? The Apify dataset exports to JSON, CSV, Excel, and XML via the Console or API.

Can I scrape for-rent listings too? Yes. Paste any Centris search URL — for-sale or for-rent, any city or borough — and the actor paginates it.

How do I filter results? Apply filters (price, property type, location) directly on Centris.ca, then copy that search URL into searchUrl.

Does it support scheduling? Yes. Use Apify Schedules to run it hourly, daily, or weekly, with webhooks on completion.

Is the data live? Yes. Each run fetches current listings directly from Centris.ca at runtime.

What happens if the run migrates or restarts? State is persisted continuously, so the run resumes from the last processed listing without duplicating work.

Can I call it from code or an AI agent? Yes — via the Apify REST API and as an MCP server. See below.

Use via API or MCP

Run it programmatically via the Apify REST API:

POST https://api.apify.com/v2/acts/youssef~centris-property-scraper/runs?token=YOUR_TOKEN

Or connect it to AI agents (Claude, ChatGPT, Cursor) as an MCP server:

https://mcp.apify.com/actors/youssef~centris-property-scraper