Realtor.ca Property Scraper avatar

Realtor.ca Property Scraper

Pricing

Pay per usage

Go to Apify Store
Realtor.ca Property Scraper

Realtor.ca Property Scraper

Extract Realtor.ca property listings with prices, addresses, locations, property types, bedrooms, bathrooms, images, descriptions, agent details, and listing URLs. Ideal for Canadian real estate data, housing market research, price monitoring, property analysis, and lead generation.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

Categories

Share

What does Realtor.ca Property Scraper do?

Realtor.ca Property Scraper extracts Canadian property listings from Realtor.ca, Canada's largest real estate listing platform. Paste a Realtor.ca map URL, or search by city with bedroom, bathroom, price, size, and land filters, and collect prices, addresses, coordinates, MLS numbers, property details, photo galleries, agent contacts, and brokerage information. The result is a clean, structured dataset you can export, schedule, or push into your own systems.

Why use Realtor.ca Property Scraper?

  • Map URL support - Paste any Realtor.ca map URL. The Actor reads your area, zoom level, sort order, transaction type, and property type filters directly from the URL, so the dataset matches the exact search you built on Realtor.ca.
  • City and filter searches - Use city shortcuts for Toronto, Vancouver, Montreal, Calgary, Ottawa, or Edmonton, and narrow results by bedrooms, bathrooms, price, interior size, and land size.
  • Pagination and result limits - Control how many listings you save, how many pages are requested, and how many listings are fetched per page.
  • Clean structured output - Empty and null values are removed before records are saved, so exports stay clean for spreadsheets, dashboards, and data pipelines.
  • Photo galleries - Every listing includes a primary photo URL and the complete gallery of high-resolution image URLs, with photos ordered as published on Realtor.ca. Galleries are completed automatically without opening any listing page.
  • Complete records, no page loads - Every listing is captured from the search results themselves, then completed with its full photo gallery. No listing page is ever opened, which keeps runs fast and stable.
  • Agent and brokerage data - Collect agent names, positions, phone numbers, websites, and brokerage organizations when available.
  • Scheduling ready - Run the Actor on demand, or schedule it to monitor new inventory in a target area.
  • Fast runs - The area session is established once and reused for the whole run, so small jobs finish in seconds and large jobs are limited only by the number of listings you ask for.

What data can you extract from Realtor.ca?

FieldDescription
listing_idRealtor.ca listing identifier
mls_numberMLS reference number
urlRealtor.ca property detail page URL
priceDisplayed listing price
price_unformattedNumeric price for sorting and calculations
addressFull property address
street_addressStreet line only
cityCity
provinceProvince
postal_codePostal code
latitudeLatitude coordinate
longitudeLongitude coordinate
bedroomsBedroom count
bathroomsBathroom count
property_typeProperty type (Single Family, Condo, Townhouse, and more)
transaction_typeFor sale or rental type when provided
ownership_typeOwnership type
size_interiorInterior size when available
land_sizeLand size when available
photo_urlPrimary property image URL
photo_urlsComplete image gallery, ordered as published
agentsAgent names, positions, phone numbers, websites, and organizations
officesBrokerage office details when available
public_remarksListing remarks
featuresProperty features and amenities
parking_typeParking type
parking_spacesNumber of parking spaces
building_typeBuilding type
constructed_dateYear built or constructed date
listed_dateDate the property was listed
updated_dateLast update timestamp in ISO format

Each listing includes the full photo gallery. photo_url is the first gallery image.

How to use Realtor.ca Property Scraper

  1. Open the Actor on Apify Store.
  2. Paste a Realtor.ca map URL, or enter a city name and optional filters.
  3. Set how many listings you want and how many pages to request.
  4. Run the Actor.
  5. Download the dataset or connect it to your workflow.

Input Parameters

ParameterTypeRequiredDefaultDescription
startUrlStringNoCanada-wide map URLRealtor.ca map or search URL. URL filters are used when no location is provided.
locationStringNo-City shortcut. Supported: Toronto, Vancouver, Montreal, Calgary, Ottawa, Edmonton. Takes precedence over the URL.
bedsIntegerNo-Minimum number of bedrooms.
bathsIntegerNo-Minimum number of bathrooms.
price_minIntegerNo-Minimum price in Canadian dollars.
price_maxIntegerNo-Maximum price in Canadian dollars.
size_minIntegerNo-Minimum interior size in square feet.
size_maxIntegerNo-Maximum interior size in square feet.
land_minNumberNo-Minimum land size in acres.
land_maxNumberNo-Maximum land size in acres.
results_wantedIntegerNo20Maximum number of listings to save.
max_pagesIntegerNo2Maximum number of result pages to request.
proxyConfigurationObjectNoResidential proxyProxy settings for reliable collection. Residential proxies are recommended.

Search mode precedence

  • A provided location runs that city search and the URL is ignored, which keeps each search mode predictable.
  • If no location is provided, the supplied startUrl is used.
  • If nothing is provided, the Actor runs the default Canada-wide map area.
  • Filter inputs and URL filters combine, and an explicit filter input wins over the same filter inside the URL.

Output Data

FieldTypeDescription
listing_idStringRealtor.ca listing identifier
mls_numberStringMLS reference number
urlStringRealtor.ca property detail URL
relative_urlStringRealtor.ca detail path
priceStringDisplayed price
price_unformattedNumberNumeric price when provided
price_changed_dateStringISO date of the last price change when provided
property_typeStringProperty type
transaction_typeStringSale or rental type when provided
ownership_typeStringOwnership type
addressStringFull property address
street_addressStringStreet line
cityStringCity
provinceStringProvince
postal_codeStringPostal code
latitudeNumberLatitude
longitudeNumberLongitude
bedroomsStringBedroom count
bathroomsStringBathroom count
half_bathroomsStringHalf bathroom count when provided
size_interiorStringInterior size when available
stories_totalStringNumber of stories when provided
land_sizeStringLand size when available
photo_urlStringPrimary property image
photo_urlsArrayProperty image gallery URLs
mediaArrayVideo tours, brochures, and other media links when provided
agentsArrayAgent names, positions, phone numbers, websites, and organizations
officesArrayBrokerage office details when available
public_remarksStringListing remarks when published
featuresStringProperty features when published
amenities_nearbyStringNearby amenities
building_amenitiesStringBuilding amenities when published
parking_typeStringParking type
parking_spacesStringNumber of parking spaces
building_typeStringBuilding type
architectural_styleStringArchitectural style when provided
basement_typeStringBasement type when provided
constructed_dateStringYear built or constructed date
business_typeStringBusiness type for commercial listings
listed_dateStringDate the property was listed
updated_dateStringLast update timestamp in ISO format

Usage Examples

Realtor.ca Map URL

Use a Realtor.ca map URL to collect listings from a specific area with all your filters applied. The Actor reads the coordinates, zoom level, sort order, transaction type, and property type from the URL.

{
"startUrl": "https://www.realtor.ca/map#ZoomLevel=11&LatitudeMax=43.85546&LongitudeMax=-79.00248&LatitudeMin=43.45830&LongitudeMin=-79.63926&Sort=6-D&PropertyTypeGroupID=1&TransactionTypeId=2&PropertySearchTypeId=0&Currency=CAD",
"results_wanted": 50,
"max_pages": 3
}

City Search with Filters

Search a city and narrow the results by bedrooms, bathrooms, and price.

{
"location": "Toronto",
"beds": 3,
"baths": 2,
"price_min": 700000,
"price_max": 1500000,
"results_wanted": 40,
"max_pages": 2
}

Filter by interior size in square feet and land size in acres.

{
"location": "Calgary",
"size_min": 1800,
"land_min": 0.25,
"results_wanted": 30,
"max_pages": 2
}

Collect listings for a city with no extra filters.

{
"location": "Vancouver",
"results_wanted": 30,
"max_pages": 2
}

Larger Collection with Custom Pages

Increase the page size to reduce the number of requests while collecting more listings.

{
"startUrl": "https://www.realtor.ca/map#ZoomLevel=11&LatitudeMax=43.85546&LongitudeMax=-79.00248&LatitudeMin=43.45830&LongitudeMin=-79.63926&Sort=6-D&PropertyTypeGroupID=1&TransactionTypeId=2&PropertySearchTypeId=0&Currency=CAD",
"results_wanted": 300,
"max_pages": 5
}

Sample Output

{
"listing_id": "30340163",
"mls_number": "W13839638",
"url": "https://www.realtor.ca/real-estate/30340163/51-arcadian-circle-toronto-long-branch",
"relative_url": "/real-estate/30340163/51-arcadian-circle-toronto-long-branch",
"price": "$839,000",
"price_unformatted": 839000,
"property_type": "Single Family",
"ownership_type": "Freehold",
"address": "51 ARCADIAN CIRCLE, Toronto (Long Branch), Ontario M8W2Z4",
"street_address": "51 ARCADIAN CIRCLE",
"province": "Ontario",
"postal_code": "M8W2Z4",
"latitude": 43.5937205,
"longitude": -79.5271542,
"bedrooms": "2",
"bathrooms": "2",
"half_bathrooms": "1",
"size_interior": "102.1925 m2",
"stories_total": "1",
"building_type": "House",
"building_amenities": "Fireplace(s)",
"land_size": "30 x 171 FT",
"land_frontage": "30 ft",
"parking_type": "Detached Garage, Garage",
"parking_spaces": "2",
"photo_url": "https://cdn.realtor.ca/listings/TS639262821898200000/reb82/highres/8/w13839638_1.jpg",
"photo_urls": [
"https://cdn.realtor.ca/listings/TS639262821898200000/reb82/highres/8/w13839638_1.jpg",
"https://cdn.realtor.ca/listings/TS639262821898200000/reb82/highres/8/w13839638_2.jpg",
"https://cdn.realtor.ca/listings/TS639262821898200000/reb82/highres/8/w13839638_3.jpg"
],
"media": [
{
"type": "VideoTourWebsite",
"url": "https://sites.happyhousegta.com/mls/267387686"
}
],
"agents": [
{
"name": "LEE HUDDLESTON",
"position": "Salesperson",
"phone": "259-9639",
"email": "578297478",
"organization": "ROYAL LEPAGE PORRITT REAL ESTATE",
"photo_url": "https://cdn.realtor.ca/individuals/TS638852463600000000/highres/1228896.jpg"
}
],
"updated_date": "2026-09-29T16:36:29.816Z"
}

Tips for Best Results

  • Use map URLs for precision - Open Realtor.ca, apply your filters (area, property type, transaction type, sort order), then copy the map URL. The Actor reads all filters from the URL.
  • Filter with the built-in inputs - Bedrooms, bathrooms, price, interior size, and land size filters combine with a map URL, and an explicit input wins over the same filter inside the URL.
  • Size filters match published sizes - Realtor.ca only matches interior size filters against listings that publish an exact square footage, so size filters return fewer results than price or bedroom filters.
  • Smaller areas work better - Narrow map areas usually return more complete datasets. Split broad Canada-wide searches into city or neighbourhood searches.
  • Full galleries are built in - Every listing is completed with its full photo gallery automatically, and no listing page is opened, so runs stay fast.
  • Know the source cap - Realtor.ca returns up to 600 listings per search area. Split large regions into smaller searches if you need more.
  • Start small - Test with 20 listings and 2 pages before running larger jobs.
  • Use newest-first sorting - The default sort returns the most recent listings first, which is useful for monitoring new inventory.
  • Residential proxies - Keep residential proxy settings enabled for steady collection, especially on scheduled runs.
  • Empty fields are normal - Some listings do not publish every field. Empty values are removed from the output to keep datasets clean.

Integrations

  • Google Sheets - Send property data to spreadsheets for price tracking and market analysis.
  • Airtable - Build searchable property databases with photos and agent details.
  • Webhooks - Push new listings into CRM systems or notify team members.
  • Make or Zapier - Connect results to no-code automations without writing code.
  • API - Access datasets programmatically from your own applications.

Export Formats

  • JSON - For apps and data pipelines.
  • CSV - For spreadsheets and BI tools.
  • Excel - For reporting and analysis.
  • XML - For integrations that need structured feeds.

Frequently Asked Questions

Can I use any Realtor.ca URL?

Use Realtor.ca map or search URLs for best results. The Actor reads the URL filters and uses them for listing collection. Detail page URLs are not used as search input.

What happens if I provide both a URL and a location?

The location search runs and the URL is ignored. To collect a specific map area, leave the location empty and provide only the map URL.

Can I collect rental listings?

Yes. Use a Realtor.ca URL that already contains the rental filter, or set the transaction type to rental on the Realtor.ca website before copying the URL.

Why should I use a map URL instead of a city name?

A map URL includes exact coordinates and all your filters, which is more precise than a city name alone. City shortcuts are convenient when you want a fast starting point.

Why are some fields missing?

Some Realtor.ca listings do not publish every field. Empty values are removed so the dataset stays clean and easy to work with.

How many listings can I collect?

You can set the number of listings you want, but Realtor.ca returns at most 600 listings for a single search area. Split large areas into smaller city or neighbourhood searches for better coverage.

Can I export the data to CSV or Excel?

Yes. Apify datasets can be downloaded in CSV, Excel, JSON, XML, and other supported formats.

Can I run this Actor on a schedule?

Yes. Schedule the Actor in Apify Console to refresh data hourly, daily, or weekly. This is useful for monitoring new listings in a target area.

Can I collect listing photos using this Actor?

Yes. photo_url is the first image and photo_urls contains the full gallery in the order it was published, which is often 20 to 50 images for a listing. Galleries are completed automatically for every listing.

Scraping public web data can be legal, but you are responsible for complying with applicable laws, website terms, and privacy rules. Use the data responsibly.

Support

For issues, feature requests, or custom Actor work, use the Issues tab on the Actor page or contact the developer through Apify.

This Actor is designed for legitimate data collection from publicly available sources. Users are responsible for using the data responsibly and complying with applicable laws, Realtor.ca terms of service, and privacy regulations.