Royal LePage Property Discovery Scraper avatar

Royal LePage Property Discovery Scraper

Pricing

from $0.85 / 1,000 listings

Go to Apify Store
Royal LePage Property Discovery Scraper

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

Trove Vault

Maintained by Community

Actor 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 caseHow it helps
Canadian property lead discoveryBuild lists of Royal LePage listings by city, operation, and property type.
Market monitoringSchedule repeat searches for Toronto, Vancouver, Calgary, Montreal, Ottawa, or other city-level markets.
Price and inventory researchCompare price, priceText, areaM2, bedrooms, bathrooms, and city across returned listings.
Agency and proptech workflowsFeed clean rows into CRM enrichment, valuation, lead scoring, or market dashboards.
Multi-portal property pipelinesUse 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.

FieldDescription
platformSource platform, normally Royal LePage.
listingIdListing identifier when exposed or derived from the public URL.
titleListing title or headline.
urlPublic Royal LePage listing URL.
operationRequested operation, such as sale or rent.
propertyTypeRequested property type, such as any, apartment, house, land, or commercial.
price, currency, priceTextNumeric price when parseable, currency, and original display text.
pricePerM2Calculated only when both price and area are available.
areaM2, bedrooms, bathroomsMain property size and room attributes when visible.
address, city, countryLocation fields parsed from the listing.
description, featuresPublic listing description and feature list.
sellerNameAgent, broker, or seller name when shown publicly.
mainImage, imagesMain image URL and image gallery URLs when available.
listedAtTextListing date or freshness text when exposed by Royal LePage.
scrapedAtISO timestamp for when the row was collected.
runIdOptional workflow ID copied from input.

How do I run Royal LePage Property Discovery Scraper?

  1. Enter a Canadian market in Location, for example Toronto, ON.
  2. Choose Operation: sale or rent.
  3. Choose Property Type: any, apartment, house, land, or commercial.
  4. Set Maximum Items for the number of listings to save.
  5. 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"
}
InputTypeRequiredDescription
locationStringYesCanadian city or city plus province. Examples: Toronto, ON, Vancouver, BC, Calgary, AB, Montreal, QC, Ottawa, ON.
operationStringYesUse sale for properties for sale or rent for rental listings. Default: sale.
propertyTypeStringYesOne of any, apartment, house, land, or commercial. any returns the broadest supported listing set.
maxItemsIntegerNoMaximum listings to save, from 1 to 1000. Default: 3.
datasetIdStringNoExisting Apify dataset ID to append results to in addition to the default dataset. Leave empty to write only to the run dataset.
runIdStringNoWorkflow 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 maxItems value 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?

IssueLikely causeWhat to do
No listings returnedThe 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 maxItemsThe 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 imagesRoyal 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 cityRoyal LePage can include promoted or nearby-market listings.Filter by city downstream and prefer city-level inputs.
Run times out on a large jobThe 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.
  • pricePerM2 is 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.