Royal LePage Canada Scraper
Pricing
from $1.00 / 1,000 royal lepage property records
Royal LePage Canada Scraper
Scrape public Royal LePage Canada property listings with prices, MLS numbers, addresses, photos, features, and rooms.
Pricing
from $1.00 / 1,000 royal lepage property records
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Extract public Canadian real estate listings from Royal LePage into structured, agent-ready records for market research, lead qualification, property monitoring, and data analysis.
The Actor accepts Royal LePage city, province, filtered collection, pagination, and individual property URLs. It follows public result pages, deduplicates properties by Royal LePage listing ID, and can enrich each result from its detail page. The default input returns up to 25 current Toronto listings and normally completes well inside Apify’s automated health-test window.
What it extracts
| Field | Description |
|---|---|
listingId, mlsNumber | Royal LePage and public MLS identifiers |
title, url, status | Listing title, canonical URL, and flags such as Open House |
price, priceCurrency | Numeric asking price in CAD |
propertyType, transactionType | House, condo, townhouse, land, sale, or rent when available |
streetAddress, city, province, postalCode | Public listing location |
latitude, longitude | Public embedded coordinates when available |
bedrooms, bathrooms | Public bedroom and bathroom counts |
description, datePosted | Property remarks and normalized posting date |
imageUrl, imageUrls | Primary photo and up to 100 public photo URLs |
features | Building/property label-to-value map such as heating, lot, parking, and ownership |
rooms | Room names, levels, and metric/imperial dimensions |
brokerage | Brokerage credited by the source |
sourceUrl, scrapedAt, detailLevel | Provenance and extraction metadata |
The default dataset remains homogeneous: it contains only property records. Run diagnostics and warnings are stored separately in the SUMMARY key-value-store record.
When to use it
Use this Actor to collect current public listings for Canadian housing research, compare asking prices across locations, monitor new inventory, assemble property prospect lists, or feed structured listing data to an AI agent or database.
Do not use it for authenticated sold or historical VOW data, personal account data, automated contact submissions, valuation guarantees, or redistribution that conflicts with Royal LePage, CREA DDF®, brokerage, privacy, or applicable legal terms. Public listing information can change and is not guaranteed accurate; independently verify any property before making a financial decision.
Input
| Field | Default | Purpose |
|---|---|---|
startUrls | Toronto properties | One or more public Royal LePage collection/detail URLs |
maxResults | 25 | Hard cap of delivered records and result events (1–1000) |
maxPages | 5 | Collection-page pagination cap (1–100) |
includeDetails | true | Fetch full descriptions, photos, features, rooms, and brokerage |
maxConcurrency | 3 | Simultaneous request cap (1–10) |
proxyConfiguration | disabled | Optional Apify Proxy configuration; Canada is the runtime default country |
Example input for full Vancouver property details:
{"startUrls": [{ "url": "https://www.royallepage.ca/en/bc/vancouver/properties/" }],"maxResults": 50,"maxPages": 3,"includeDetails": true,"maxConcurrency": 3,"proxyConfiguration": { "useApifyProxy": false }}
For the fastest price-and-address scan, set includeDetails to false. Summary-only records retain their canonical URL, asking price, visible property type, beds/baths, location, coordinates, and primary image, but fields available only on a detail page are null, empty arrays, or empty objects.
You can run it through the Apify API after replacing ACTOR_ID and your authentication method:
curl -X POST "https://api.apify.com/v2/acts/ACTOR_ID/runs?waitForFinish=300" \-H "Authorization: Bearer YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls":[{"url":"https://www.royallepage.ca/en/on/ottawa/properties/"}],"maxResults":10}'
Keep tokens in headers or Apify secrets rather than URLs, source files, or logs.
Output example
{"listingId": "29055207","mlsNumber": "C13712690","title": "137 BANNOCKBURN AVENUE, Toronto, Ontario, M5M 2N4","url": "https://www.royallepage.ca/en/property/ontario/toronto/137-bannockburn-avenue/29055207/mlsc13712690/","transactionType": "SALE","propertyType": "House","price": 3549000,"priceCurrency": "CAD","city": "Toronto","province": "ON","postalCode": "M5M 2N4","bedrooms": 6,"bathrooms": 7,"features": { "Heating Type": "Forced air", "Parking Type": "Garage" },"imageUrls": ["https://rlp.jumplisting.com/photos/example.jpg"],"detailLevel": "full"}
Pay per event pricing
| Event | Price | Charged when |
|---|---|---|
| Actor start | $0.00005 | A run starts |
| Royal LePage property record | $0.001 | One validated record is written to the default dataset |
A 25-record default run costs up to $0.02505 in events. A 100-record run costs up to $0.10005. Empty, rejected, or fully blocked runs have no result events; the start event still applies. Apify automatically charges the synthetic dataset-item event, and the Actor does not add a duplicate manual charge. Your platform plan may separately govern infrastructure or proxy availability.
Reliability and limits
The scraper starts with server-rendered HTML and JSON-LD because those public pages currently contain the advertised fields without browser execution. It uses realistic Canadian headers, cookie-preserving sessions, bounded retries, conservative concurrency, pagination/result caps, and deduplication. Optional Apify Proxy can be enabled if direct requests are challenged or rate-limited.
The Actor distinguishes four outcomes in SUMMARY: DATA, EMPTY, BLOCKED, and REJECTED. It preserves partial valid records when individual requests fail, records warnings outside the dataset, and stops systemic zero-result failure after a bounded number of errors. A zero-record result is not fabricated into a property row.
Royal LePage may change its markup, listing availability, access policy, or public fields. Some properties omit photos, coordinates, room dimensions, brokerage, or features, so those values are explicitly nullable. maxResults is an upper bound rather than a promise that the source has that many matching public properties.
Legal and responsible use
Scrape only information you are authorized to collect and use. Respect Royal LePage’s terms, robots/access controls, CREA DDF® rights, listing brokerage rights, privacy law, and reasonable request rates. Do not use the Actor to access account-gated sold data, bypass CAPTCHAs or authentication, submit messages to agents, make eligibility or lending decisions, or republish protected listing content without permission. Property information is informational and should be independently verified.
For support, include the run ID, redacted input, expected outcome, and the affected public URL. Never include passwords, cookies, proxy credentials, or API tokens.