# Realtor Ca Scraper | Usage (`scrapemind/realtor-ca-scraper-usage`) Actor

Extract real estate listings, property details, and agent information from realtor.ca for any city or search. Download data as JSON, CSV, or Excel for research, lead generation, or analysis.

- **URL**: https://apify.com/scrapemind/realtor-ca-scraper-usage.md
- **Developed by:** [ScrapeMind](https://apify.com/scrapemind) (community)
- **Categories:** Real estate, Automation, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Realtor.ca Scraper Actor

**Realtor.ca Scraper** is an [Apify Actor](https://apify.com/actors) that extracts real estate listings and property details from [realtor.ca](https://www.realtor.ca/), Canada’s leading real estate platform. This actor is built with TypeScript, Crawlee, and Cheerio for fast, reliable, and customizable data extraction.

---

### Features

- **Scrape property listings** from any realtor.ca search, map, or listing page.
- **Extract detailed property data**: price, address, MLS number, agent info, photos, features, and more.
- **Customizable start URLs**: Target specific cities, neighborhoods, or property types.
- **Limit results** for faster runs or testing.
- **Flat or nested output**: Choose simplified output for easy CSV/Excel export.
- **Proxy support** for reliable, large-scale scraping.

---

### How It Works

1. **Input one or more realtor.ca URLs** (search, map, or listing pages).
2. The actor crawls each URL, paginates results, and extracts property data.
3. Results are saved to the Apify dataset in JSON, CSV, or Excel format.

---

### Input Parameters

The actor accepts the following input fields:

| Field             | Type      | Required | Description                                                                                 |
|-------------------|-----------|----------|---------------------------------------------------------------------------------------------|
| `startUrls`       | array     | Yes      | List of realtor.ca URLs (search, map, or listing pages) to start scraping from.             |
| `getDetails`      | boolean   | No       | If true, fetches detailed property information for each listing. Default: `false`.          |
| `simplifyOutput`  | boolean   | No       | If true, outputs a simplified/flat data structure. Default: `false`.                        |
| `maxListings`     | integer   | No       | Maximum number of listings to scrape. Default: `1`.                                         |
| `numberOfWorkers` | integer   | No       | Number of concurrent workers (parallel requests). Default: `5`.                             |

**Example input:**
```json
{
  "startUrls": [
    "https://www.realtor.ca/map#ZoomLevel=12&Center=43.6532,-79.3832"
  ],
  "getDetails": true,
  "simplifyOutput": false,
  "maxListings": 100,
  "numberOfWorkers": 10
}
````

***

### Output

The actor saves each property as a record in the Apify dataset. Fields include:

- `Id`, `MlsNumber`, `StatusId`
- `Price`, `Address`, `Longitude`, `Latitude`, `City`, `Province`
- `Bedrooms`, `BathroomTotal`, `SizeInterior`, `HeatingType`
- `AgentName`, `AgentPhone`, `AgentEmail`
- `OrganizationName`, `OrganizationPhone`
- `Photos`, `Tags`, `UploadedBy`
- ...and more!

```json
{
	"HashCode": "-1979974053",
	"Id": "28188903",
	"MlsNumber": "C12091873",
	"StatusId": "1",
	"PublicRemarks": "This modern King SUITE on King St. 1 Bedroom Sub-Penthouse Suite is next door to the infamous Lavelle Rooftop & In the heart of King street-perfect for any commute. This fully-furnished recently upgraded unit gives you a chic-tulum style vibe. Includes CN tower, City and water views. Appliances: Built In Fridge, Built Stove, Built In Cook Top, Built In Dishwasher, Spa-Like Bathroom, Stacked Washer & Dryer. Enjoy Relaxing/Entertaining on your spacious Open Balcony With Clear Unobstructed Exposure To The South (CN Tower, City Skyline & Lake). Brand New Wide Plank Hardwood Floors. Open Concept Layout With Floor To Ceiling Windows, Natural Bright Light & Modern Finishes Throughout.. - 5 Steps To King West Shops, Eateries, Fashion, Finance & Entertainment Districts, Transit Out Side Your Door & Starbucks Downstairs. Premium Window Coverings, Light Fixtures, Gym, & 24Hr Security. Amazing Roof Top Pool (Next Door). Unit is currently occupied with AAA/Excellent tenant unit Jan , 1 / 2026 @ $3,000 month. (40280776)",
	"LastUpdated": "2025-04-19 1:02:15 AM",
	"Building": {
		"BathroomTotal": "1",
		"Bedrooms": "1",
		"SizeInterior": "55.7414 m2",
		"StoriesTotal": "",
		"Type": "Apartment",
		"FloorAreaMeasurements": [
			{
				"Area": "600+ sqft",
				"AreaUnformatted": "600-699 sqft",
				"Type": "Square Footage",
				"Source": "",
				"MeasureUnitId": "1",
				"TypeId": "1",
				"SourceId": "0",
				"SortBy": "1"
			}
		],
		"Age": "",
		"CoolingType": "Central air conditioning",
		"ExteriorFinish": "Concrete, Steel",
		"FlooringType": "Hardwood",
		"HeatingFuel": "Natural gas",
		"HeatingType": "Forced air (Natural gas)",
		"Room": [
			{
				"Type": "Living room",
				"Width": "4.67 m",
				"Length": "4.52 m",
				"Level": "Main level",
				"Dimension": "4.52 m x 4.67 m"
			},
			{
				"Type": "Dining room",
				"Width": "4.67 m",
				"Length": "4.52 m",
				"Level": "Main level",
				"Dimension": "4.52 m x 4.67 m"
			},
			{
				"Type": "Kitchen",
				"Width": "4.67 m",
				"Length": "4.52 m",
				"Level": "Main level",
				"Dimension": "4.52 m x 4.67 m"
			},
			{
				"Type": "Primary Bedroom",
				"Width": "2.75 m",
				"Length": "3.45 m",
				"Level": "Main level",
				"Dimension": "3.45 m x 2.75 m"
			}
		],
		"DisplayAsYears": "2",
		"FireplacePresent": "No",
		"BedroomsAboveGround": "1"
	},
	"Land": {},
	"Individual": [
		{
			"IndividualID": 1988292,
			"Name": "JOE VALESIC",
			"Organization": {
				"OrganizationID": 238732,
				"Name": "CITYSCAPE REAL ESTATE LTD.",
				"Logo": "https://cdn.realtor.ca/organization/en-CA/TS638792925600000000/lowres/1200762.jpg",
				"Address": {
					"AddressText": "885 PLYMOUTH DR #2|MISSISSAUGA, Ontario L5V0B5",
					"PermitShowAddress": true
				},
				"Phones": [
					{
						"PhoneType": "Telephone",
						"PhoneNumber": "241-2222",
						"AreaCode": "905",
						"PhoneTypeId": "1"
					},
					{
						"PhoneType": "Fax",
						"PhoneNumber": "241-3333",
						"AreaCode": "905",
						"PhoneTypeId": "4"
					}
				],
				"Emails": [
					{
						"ContactId": "574697246"
					}
				],
				"OrganizationType": "Firm",
				"Designation": "Brokerage",
				"HasEmail": true,
				"PermitFreetextEmail": true,
				"PermitShowListingLink": true,
				"RelativeDetailsURL": "/office/firm/238732/cityscape-real-estate-ltd-885-plymouth-dr-2-mississauga-ontario-l5v0b5",
				"PhotoLastupdate": "2025-04-03 3:56:00 PM"
			},
			"Phones": [
				{
					"PhoneType": "Telephone",
					"PhoneNumber": "241-2222",
					"AreaCode": "905",
					"PhoneTypeId": "1"
				}
			],
			"Emails": [
				{
					"ContactId": "507336016"
				}
			],
			"Position": "Salesperson",
			"PermitFreetextEmail": true,
			"FirstName": "JOE",
			"LastName": "VALESIC",
			"CorporationDisplayTypeId": "0",
			"PermitShowListingLink": true,
			"RelativeDetailsURL": "/agent/1988292/joe-valesic-885-plymouth-dr-2-mississauga-ontario-l5v0b5",
			"RankMyAgentKey": "",
			"RealSatisfiedKey": "",
			"TestimonialTreeKey": ""
		}
	],
	"Property": {
		"Price": "$699,000",
		"Type": "Single Family",
		"Address": {
			"AddressText": "1304 - 629 KING STREET W|Toronto (Waterfront Communities), Ontario M5V1M5",
			"Longitude": "-79.4014727",
			"Latitude": "43.6439952",
			"CommunityName": "Waterfront Communities C1",
			"LocalLogicNeighbourHood": "Wellington Place",
			"PermitShowAddress": true,
			"City": "Toronto (Waterfront Communities)",
			"Province": "Ontario",
			"ProvinceCode": "ON"
		},
		"Photo": [
			{
				"SequenceId": "1",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_1.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_1.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_1.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "2",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_2.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_2.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_2.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "3",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_3.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_3.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_3.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "4",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_4.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_4.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_4.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "5",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_5.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_5.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_5.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "6",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_6.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_6.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_6.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "7",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_7.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_7.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_7.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "8",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_8.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_8.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_8.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "9",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_9.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_9.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_9.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "10",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_10.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_10.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_10.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "11",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_11.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_11.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_11.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "12",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_12.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_12.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_12.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "13",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_13.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_13.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_13.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "14",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_14.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_14.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_14.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "15",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_15.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_15.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_15.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "16",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_16.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_16.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_16.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "17",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_17.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_17.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_17.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "18",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_18.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_18.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_18.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "19",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_19.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_19.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_19.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "20",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_20.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_20.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_20.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "21",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_21.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_21.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_21.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "22",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_22.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_22.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_22.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "23",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_23.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_23.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_23.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "24",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_24.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_24.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_24.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "25",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_25.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_25.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_25.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "26",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_26.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_26.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_26.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "27",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_27.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_27.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_27.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "28",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_28.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_28.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_28.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "29",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_29.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_29.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_29.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "30",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_30.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_30.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_30.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "31",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_31.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_31.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_31.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "32",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_32.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_32.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_32.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "33",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_33.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_33.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_33.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "34",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_34.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_34.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_34.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "35",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_35.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_35.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_35.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "36",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_36.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_36.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_36.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			},
			{
				"SequenceId": "37",
				"HighResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/highres/3/c12091873_37.jpg",
				"MedResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/medres/3/c12091873_37.jpg",
				"LowResPath": "https://cdn.realtor.ca/listing/TS638806213354600000/reb82/lowres/3/c12091873_37.jpg",
				"LastUpdated": "2025-04-19 1:02:15 AM",
				"TypeId": "0"
			}
		],
		"Parking": [
			{
				"Name": "Underground"
			},
			{
				"Name": "Garage"
			}
		],
		"ParkingSpaceTotal": "0",
		"TypeId": "300",
		"OwnershipType": "Condominium/Strata",
		"OwnershipTypeGroupIds": [
			2
		],
		"ParkingType": "Underground, Garage",
		"PriceUnformattedValue": "699000",
		"ShortValue": "699K",
		"PriceChangeTimeOnRealtor": "",
		"PriceChangeTagDateUTC": "12:00:00 AM",
		"CommunityFeatures": "Pet Restrictions",
		"Features": "Balcony, Carpet Free",
		"LocationDescription": "King & Bathurst",
		"MaintenanceFee": "$517 Monthly",
		"ManagementCompany": "Elite",
		"TransactionType": "For sale",
		"TransactionTypeId": "2",
		"TaxAmount": "$2,759"
	},
	"UploadedBy": "Toronto Regional Real Estate Board",
	"Business": {},
	"RelativeURLEn": "/real-estate/28188903/1304-629-king-street-w-toronto-waterfront-communities-waterfront-communities-c1",
	"RelativeURLFr": "/immobilier/28188903/1304-629-king-street-w-toronto-waterfront-communities",
	"History": [],
	"UploadedByWebsite": "http://www.trebhome.com/",
	"UploadedByAddress": {
		"AddressText": "1400 Don Mills Road, Toronto, Ontario M3B 3N1",
		"PermitShowAddress": true
	},
	"Media": [],
	"TimeOnRealtor": "5 hours",
	"IsNewListing": true,
	"PinchFinancial": "https://realtor.qualifynow.ca/?locale=EN_CA&province=ON&listingId=28188903​&channel=MobileApp",
	"InsertedDateUTC": "638806357354500000",
	"Tags": [
		{
			"Label": "5 hours ago",
			"HTMLColorCode": "#23A1C0",
			"ListingTagTypeID": "1"
		}
	]
}
```

***

### Usage

#### On Apify Platform

1. Go to [Apify Console](https://console.apify.com/).
2. Create a new task using this actor.
3. Fill in the input fields as described above.
4. Run the actor and download results in your preferred format.

#### Locally via CLI

```bash
apify run
```

***

### Limitations & Notes

- Maximum 500 listings per URL.
- Use proxies for large-scale or repeated scraping to avoid blocks.

***

### Contact Me

If you need a custom web scraping solution or have any questions, feel free to [Contact me.](mailto://baqo271@gmail.com) Let’s discuss how I can help with your data needs!

***

### Support

For issues or feature requests, open an issue on this repository or contact the author via Apify.

***

### SEO Keywords

- realtor.ca scraper
- realtor.ca API
- real estate data crawler
- Canada property listings scraper
- real estate agent data extraction
- property listings API

***

**Start extracting Canadian real estate data from realtor.ca today!**

# Actor input Schema

## `startUrls` (type: `array`):

Add one or more URLs where the scraper should begin. These can be specific search pages, property listings, or location-based map views.

## `maxListings` (type: `integer`):

Set the maximum number of result  to scrape per url. Useful for limiting run time or testing. (0 to get all results)

## `numberOfWorkers` (type: `integer`):

Set the number of parallel workers to speed up scraping. Increasing this value can make the process faster, but may increase the risk of being blocked. Recommended range: 1–20.

## `getDetails` (type: `boolean`):

If enabled, the scraper will fetch and flatten additional nested information for each item. This makes the output more complete and easier to use in tables, CSV, or Excel exports.

## `simplifyOutput` (type: `boolean`):

Enable this option to convert nested data into a flat format, making it easier to view in tables or export as CSV/Excel.

## `Proxy config` (type: `object`):

Select proxies to be used by your crawler.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.realtor.ca/map#ZoomLevel=11&Center=43.708087%2C-79.376385&LatitudeMax=43.92955&LongitudeMax=-79.03306&LatitudeMin=43.48581&LongitudeMin=-79.71971&CurrentPage=2&Sort=6-D&PGeoIds=g30_dpz89rm7&GeoName=Toronto%2C%20ON&PropertyTypeGroupID=1&TransactionTypeId=2&PropertySearchTypeId=0&Currency=CAD"
    }
  ],
  "maxListings": 100,
  "numberOfWorkers": 5,
  "getDetails": false,
  "simplifyOutput": false,
  "Proxy config": {
    "useApifyProxy": false
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.realtor.ca/map#ZoomLevel=11&Center=43.708087%2C-79.376385&LatitudeMax=43.92955&LongitudeMax=-79.03306&LatitudeMin=43.48581&LongitudeMin=-79.71971&CurrentPage=2&Sort=6-D&PGeoIds=g30_dpz89rm7&GeoName=Toronto%2C%20ON&PropertyTypeGroupID=1&TransactionTypeId=2&PropertySearchTypeId=0&Currency=CAD"
        }
    ],
    "Proxy config": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapemind/realtor-ca-scraper-usage").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://www.realtor.ca/map#ZoomLevel=11&Center=43.708087%2C-79.376385&LatitudeMax=43.92955&LongitudeMax=-79.03306&LatitudeMin=43.48581&LongitudeMin=-79.71971&CurrentPage=2&Sort=6-D&PGeoIds=g30_dpz89rm7&GeoName=Toronto%2C%20ON&PropertyTypeGroupID=1&TransactionTypeId=2&PropertySearchTypeId=0&Currency=CAD" }],
    "Proxy config": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapemind/realtor-ca-scraper-usage").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.realtor.ca/map#ZoomLevel=11&Center=43.708087%2C-79.376385&LatitudeMax=43.92955&LongitudeMax=-79.03306&LatitudeMin=43.48581&LongitudeMin=-79.71971&CurrentPage=2&Sort=6-D&PGeoIds=g30_dpz89rm7&GeoName=Toronto%2C%20ON&PropertyTypeGroupID=1&TransactionTypeId=2&PropertySearchTypeId=0&Currency=CAD"
    }
  ],
  "Proxy config": {
    "useApifyProxy": false
  }
}' |
apify call scrapemind/realtor-ca-scraper-usage --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapemind/realtor-ca-scraper-usage",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Realtor Ca Scraper | Usage",
        "description": "Extract real estate listings, property details, and agent information from realtor.ca for any city or search. Download data as JSON, CSV, or Excel for research, lead generation, or analysis.",
        "version": "0.0",
        "x-build-id": "seBahhwv2E96oq9yl"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapemind~realtor-ca-scraper-usage/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapemind-realtor-ca-scraper-usage",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapemind~realtor-ca-scraper-usage/runs": {
            "post": {
                "operationId": "runs-sync-scrapemind-realtor-ca-scraper-usage",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapemind~realtor-ca-scraper-usage/run-sync": {
            "post": {
                "operationId": "run-sync-scrapemind-realtor-ca-scraper-usage",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "maxListings",
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Add one or more URLs where the scraper should begin. These can be specific search pages, property listings, or location-based map views.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxListings": {
                        "title": "Max Listings",
                        "type": "integer",
                        "description": "Set the maximum number of result  to scrape per url. Useful for limiting run time or testing. (0 to get all results)",
                        "default": 100
                    },
                    "numberOfWorkers": {
                        "title": "number of workers",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Set the number of parallel workers to speed up scraping. Increasing this value can make the process faster, but may increase the risk of being blocked. Recommended range: 1–20.",
                        "default": 5
                    },
                    "getDetails": {
                        "title": "Get Detailed Data",
                        "type": "boolean",
                        "description": "If enabled, the scraper will fetch and flatten additional nested information for each item. This makes the output more complete and easier to use in tables, CSV, or Excel exports.",
                        "default": false
                    },
                    "simplifyOutput": {
                        "title": "Simplify Output",
                        "type": "boolean",
                        "description": "Enable this option to convert nested data into a flat format, making it easier to view in tables or export as CSV/Excel.",
                        "default": false
                    },
                    "Proxy config": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Select proxies to be used by your crawler."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
