Royal LePage Property Discovery Scraper
Pricing
from $0.85 / 1,000 listings
Royal LePage Property Discovery Scraper
Discover public Royal LePage listings by location, sale or rent, and property type. Extract prices, descriptions, rooms, images, agents, and URLs.
Pricing
from $0.85 / 1,000 listings
Rating
0.0
(0)
Developer
Trove Vault
Maintained by CommunityActor stats
1
Bookmarked
1
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Discover public Royal LePage property listings from simple buyer-facing inputs: location, sale or rent, property type, and maximum results. The Actor searches Royal LePage for you and returns structured Canadian real estate rows with listing URLs, prices, rooms, areas, descriptions, images, agents, and workflow IDs.
Use it when you need a repeatable Royal LePage property dataset without manually building search URLs, copying listing cards, or normalizing real estate fields by hand.
What does Royal LePage Property Discovery Scraper do?
Royal LePage Property Discovery Scraper turns a market search such as Toronto, ON into dataset rows you can export, schedule, enrich, or merge with other property portals.
It can:
- search Royal LePage by Canadian city or city plus province
- collect sale or rental listings, depending on
operation - filter by broad property type when the public site supports it
- save listing identifiers, titles, listing URLs, prices, addresses, rooms, areas, descriptions, image URLs, agent names, and timestamps
- append results to a shared Apify dataset with
datasetId - copy a workflow identifier into every row with
runId
This is a discovery Actor. Users provide search criteria, not Royal LePage search-result URLs.
Why use this Royal LePage scraper?
| Use case | How it helps |
|---|---|
| Canadian property lead discovery | Build lists of Royal LePage listings by city, operation, and property type. |
| Market monitoring | Schedule repeat searches for Toronto, Vancouver, Calgary, Montreal, Ottawa, or other city-level markets. |
| Price and inventory research | Compare price, priceText, areaM2, bedrooms, bathrooms, and city across returned listings. |
| Agency and proptech workflows | Feed clean rows into CRM enrichment, valuation, lead scoring, or market dashboards. |
| Multi-portal property pipelines | Use datasetId and runId to combine Royal LePage rows with other TroveVault property discovery Actors. |
What data does it return?
Each dataset item represents one public Royal LePage listing when the field is visible on the source page.
| Field | Description |
|---|---|
platform | Source platform, normally Royal LePage. |
listingId | Listing identifier when exposed or derived from the public URL. |
title | Listing title or headline. |
url | Public Royal LePage listing URL. |
operation | Requested operation, such as sale or rent. |
propertyType | Requested property type, such as any, apartment, house, land, or commercial. |
price, currency, priceText | Numeric price when parseable, currency, and original display text. |
pricePerM2 | Calculated only when both price and area are available. |
areaM2, bedrooms, bathrooms | Main property size and room attributes when visible. |
address, city, country | Location fields parsed from the listing. |
description, features | Public listing description and feature list. |
sellerName | Agent, broker, or seller name when shown publicly. |
mainImage, images | Main image URL and image gallery URLs when available. |
listedAtText | Listing date or freshness text when exposed by Royal LePage. |
scrapedAt | ISO timestamp for when the row was collected. |
runId | Optional workflow ID copied from input. |
How do I run Royal LePage Property Discovery Scraper?
- Enter a Canadian market in Location, for example
Toronto, ON. - Choose Operation:
saleorrent. - Choose Property Type:
any,apartment,house,land, orcommercial. - Set Maximum Items for the number of listings to save.
- Start the Actor and export the dataset as JSON, CSV, Excel, or through the Apify API.
For quick tests, keep maxItems between 3 and 10. For broader market discovery, increase it gradually and schedule recurring runs.
What input does it accept?
{"location": "Toronto, ON","operation": "sale","propertyType": "any","maxItems": 25,"datasetId": "","runId": "royal-lepage-toronto-sale-2026-08-17"}
| Input | Type | Required | Description |
|---|---|---|---|
location | String | Yes | Canadian city or city plus province. Examples: Toronto, ON, Vancouver, BC, Calgary, AB, Montreal, QC, Ottawa, ON. |
operation | String | Yes | Use sale for properties for sale or rent for rental listings. Default: sale. |
propertyType | String | Yes | One of any, apartment, house, land, or commercial. any returns the broadest supported listing set. |
maxItems | Integer | No | Maximum listings to save, from 1 to 1000. Default: 3. |
datasetId | String | No | Existing Apify dataset ID to append results to in addition to the default dataset. Leave empty to write only to the run dataset. |
runId | String | No | Workflow or parent run ID copied into rows and the RUN_SUMMARY record. |
What output should I expect?
{"platform": "Royal LePage","listingId": "example-listing-id","title": "2 bedroom condo for sale in Toronto","url": "https://www.royallepage.ca/en/property/example/","operation": "sale","propertyType": "any","price": 799000,"currency": "CAD","priceText": "$799,000","pricePerM2": null,"areaM2": null,"bedrooms": 2,"bathrooms": 2,"address": "Toronto, ON","city": "Toronto","country": "Canada","description": "Public listing description when available.","features": ["Balcony", "Parking"],"sellerName": "Example Royal LePage Agent","mainImage": "https://example.com/image.jpg","images": ["https://example.com/image.jpg"],"listedAtText": null,"scrapedAt": "2026-08-17T10:00:00.000Z","runId": "royal-lepage-toronto-sale-2026-08-17"}
Null values mean Royal LePage did not expose that field for the listing or it could not be parsed safely.
How can I use it through the Apify API?
curl -X POST "https://api.apify.com/v2/acts/trovevault~royal-lepage-property-discovery-scraper/runs" \-H "Authorization: Bearer <APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"location": "Toronto, ON","operation": "sale","propertyType": "any","maxItems": 25,"runId": "royal-lepage-toronto-sale-2026-08-17"}'
After the run finishes, read the default dataset from the run details or append rows to your own dataset by passing datasetId.
How much does it cost?
This Actor uses a pay-per-event pricing model on Apify. Platform usage depends mainly on maxItems, source response speed, and whether listing detail pages are publicly accessible during the run.
Cost controls:
- start with a small
maxItemsvalue for a new city - use city-level searches instead of broad province searches
- schedule recurring runs only for markets you actively monitor
- split very large research jobs into smaller city batches
How do I troubleshoot common issues?
| Issue | Likely cause | What to do |
|---|---|---|
| No listings returned | The location is too broad, misspelled, unsupported, or Royal LePage returned no public listings for that combination. | Try a city plus province such as Toronto, ON, lower the filters, and test with propertyType: "any". |
Fewer rows than maxItems | The public source exposed fewer matching listings or some cards could not be normalized safely. | Treat maxItems as a cap, not a guarantee. Broaden the city or property type. |
| Missing price, area, or images | Royal LePage did not expose the field on that listing or changed the page layout. | Keep the row and use nullable fields. Re-run later if the listing page changes. |
| Results look broader than the requested city | Royal LePage can include promoted or nearby-market listings. | Filter by city downstream and prefer city-level inputs. |
| Run times out on a large job | The batch is too large for the current source response speed. | Reduce maxItems, split by city, or run smaller scheduled batches. |
What are the limitations?
- It reads public Royal LePage pages only; it does not access private accounts, MLS-only data, broker dashboards, or hidden fields.
- City-level inputs are more reliable than province-wide or country-wide searches.
- Detail-page enrichment depends on source availability during the run.
- Prices, availability, and listing details can change after scraping.
pricePerM2is calculated only when price and area are both available.- This Actor is for data collection and workflow automation; it is not legal, investment, or valuation advice.
FAQ
Can I scrape Royal LePage search URLs directly?
No. This Actor is designed for discovery from buyer-facing criteria: location, operation, propertyType, and maxItems.
Can I combine this with other property portals?
Yes. Use datasetId to append rows into a shared Apify dataset and runId to trace which workflow produced each row.
Does it return every listing on Royal LePage?
No. It returns the public listings the Actor can discover and normalize for the selected search. Source coverage, promotions, and page availability can affect results.
Can I run it on a schedule?
Yes. Use Apify Scheduler to run the same city search daily, weekly, or monthly and monitor changes in the dataset.
Support
Open an issue on the Actor page with the input JSON, run ID, expected city, and a short description of the problem. Include a sample listing URL when the issue is about a missing or misparsed field.