Realtor.ca Property Search Scraper avatar

Realtor.ca Property Search Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Realtor.ca Property Search Scraper

Realtor.ca Property Search Scraper

Scrape comprehensive property listings from Realtor.ca, Canada's official real estate platform. Extract detailed MLS data including prices, photos, property features, and open house schedules. Essential for market analysis, investment research, and real estate intelligence across Canadian provinces.

Pricing

from $2.00 / 1,000 results

Rating

5.0

(1)

Developer

Stealth mode

Stealth mode

Maintained by Community

Actor stats

0

Bookmarked

37

Total users

1

Monthly active users

5 days ago

Last modified

Features

Limited permissions

Share

Realtor.ca Property Search Scraper: Extract Canadian Real Estate Listings Data

Why Realtor.ca Data Is Critical for Canadian Real Estate

Realtor.ca stands as Canada's most authoritative real estate platform, operated by the Canadian Real Estate Association (CREA). Unlike third-party listing aggregators, Realtor.ca provides direct access to MLS (Multiple Listing Service) data, making it the primary source of truth for property transactions across all Canadian provinces.

The platform hosts hundreds of thousands of active listings, from residential homes to commercial properties, spanning urban centers like Toronto and Vancouver to rural communities. This data represents real-time market conditions, pricing trends, and inventory dynamics that drive the Canadian housing market.

Manual extraction of this data is impractical at scale. Real estate investors, market analysts, appraisers, and developers need systematic access to property information across multiple regions. This scraper automates the collection process, transforming search results into structured datasets ready for analysis, visualization, or integration with business systems.

Scraper Capabilities and Target Users

The Realtor.ca Property Search Scraper extracts comprehensive listing data from property search pages. It captures both standard real estate information and Realtor.ca-specific metadata that provides deeper insights into each property's market position.

The tool handles various property types and transaction categories. Whether you're tracking residential sales, rental listings, or commercial properties, the scraper processes the complete dataset from search result pages. It navigates bilingual content (English and French), respects rate limits, and manages pagination to collect data from multiple result pages.

Real estate investors use this scraper to identify investment opportunities and track property valuations across target markets. Appraisers and brokers leverage the data for comparative market analysis and pricing strategies. Market researchers analyze trends in inventory levels, days-on-market, and geographic price variations. Property technology companies integrate this data into their platforms to provide market insights to end users.

Input Configuration and URL Structure

The scraper requires property search page URLs from Realtor.ca. These URLs are generated when you perform searches on the platform using filters like location, property type, price range, or transaction type (sale/rent).

Understanding Realtor.ca Search URLs

Search URLs contain encoded parameters that define your query. Here's what the key parameters mean:

  • GeoIds: Encoded geographic identifier for the search area (city, neighborhood, or region)
  • GeoName: Human-readable location name
  • PropertyTypeGroupID: Type of property (1=Residential, 2=Condo, 3=Commercial, etc.)
  • TransactionTypeId: Transaction type (1=Sale, 2=Rent)
  • CurrentPage: Pagination number for multi-page results
  • Sort: Sort order (6-D typically means newest listings first)
  • PriceMin/PriceMax: Price range filters (when specified)

Input Configuration Example

{
"proxy": {
"useApifyProxy": false
},
"max_items_per_url": 20,
"ignore_url_failures": true,
"urls": [
"https://www.realtor.ca/qc/longueuil/real-estate"
]
}

Example Screenshot:

Proxy Configuration: Using Canadian residential proxies (apifyProxyCountry: "CA") is recommended for optimal performance and to appear as local traffic. Residential proxies reduce the likelihood of bot detection since Realtor.ca implements protective measures.

max_items_per_url: Controls how many properties to extract per search URL. Setting this to 20 (as in the example) limits each URL to 20 listings, useful for testing or focused data collection. Increase this number for comprehensive market coverage, or remove the limit to extract all available results.

ignore_url_failures: When set to true, the scraper continues processing remaining URLs even if some fail. This is valuable when scraping multiple markets where some searches might return no results or encounter temporary issues.

URLs Array: Include multiple search URLs to scrape different geographic areas, property types, or price ranges in a single run. For example, combine searches for Toronto condos, Vancouver houses, and Montreal rentals to build a comprehensive multi-market dataset.

How to Generate Search URLs

  1. Navigate to Realtor.ca and use the search interface to filter properties by your criteria
  2. Select your desired location, property type, price range, and other filters
  3. Once results appear, copy the URL from your browser's address bar
  4. Add this URL to the urls array in your input configuration
  5. Repeat for additional markets or search criteria you want to track

Complete Output Structure and Field Definitions

The scraper returns JSON data with each property as an object containing detailed fields. Understanding field purposes enables effective analysis and application.

Listing Identification

ID: Unique identifier of the listing on Realtor.ca. Purpose: Database indexing, tracking specific listings over time, avoiding duplicates.

MLS Number: Multiple Listing Service number of the property. Purpose: Cross-referencing the listing with other portals, brokerage systems and MLS databases.

Listing URL: Direct link to the full listing on Realtor.ca. Purpose: Accessing complete details, sharing opportunities with clients, verification of scraped data.

Alternate URL: Alternative link to the listing, if provided (may be null). Purpose: Accessing the listing through another source.

Description: Public remarks written by the listing agent (may be empty). Purpose: Extracting extra details, keyword and sentiment analysis.

Pricing

Price: Asking price as a number. Purpose: Price comparison, market valuation, budget filtering.

Price Text: Price exactly as displayed on the listing. Purpose: Display and verification against the website.

Price Short: Abbreviated price label (e.g., 674K). Purpose: Compact display in dashboards and maps.

Currency: Currency of the listed price (CAD). Purpose: Correct financial interpretation when merging datasets from multiple markets.

Price Change Time: Time elapsed since the last price change (empty if unchanged). Purpose: Detecting recent price reductions or increases.

Price Change Date: Date of the last price change in UTC (empty if unchanged). Purpose: Price history tracking and motivated-seller identification.

Property Characteristics

Property Type: Property category (e.g., Single Family). Purpose: Segmenting the market by property class.

Building Type: Building style (e.g., House). Purpose: Fine-grained filtering by structure type.

Zoning Type: Land-use zoning of the property (e.g., Residential). Purpose: Identifying residential, commercial or mixed-use opportunities.

Bedrooms: Number of bedrooms, including basement bedrooms (e.g., "3 + 3"). Purpose: Matching properties to buyer requirements.

Bathrooms: Total number of bathrooms. Purpose: Comfort assessment, filtering by buyer needs.

Half Bathrooms: Number of half bathrooms. Purpose: Detailed comparison of bathroom configuration.

Stories Total: Number of floors in the building (may be empty). Purpose: Building structure analysis.

Interior Size: Interior living area in metric units. Purpose: Price-per-m² analysis, size-based filtering.

Floor Areas: List of label/value floor area measurements (e.g., Square Footage). Purpose: Comparing sizes across different measurement units and sources.

Land Size Total: Total lot size. Purpose: Price-per-m² analysis of land, comparing lot sizes.

Land Details: List of label/value land attributes (size, frontage, landscape features). Purpose: Evaluating lot quality and development potential. Content varies between listings.

Parking Spaces Total: Total number of parking spaces. Purpose: Assessing convenience and property value.

Parking Types: List of parking features (e.g., Heated Garage, Asphalt). Purpose: Filtering by parking requirements.

Business Details: List of label/value business attributes, mainly for commercial listings (empty for residential). Purpose: Commercial and business-sale analysis.

Location

Address: Full address of the property. Purpose: Display, verification and geocoding.

Street Address: Street number and name. Purpose: Precise location identification.

City: City of the property. Purpose: City-level market analysis and lead targeting.

Borough: Borough or sub-area of the city (may be null). Purpose: Micro-market analysis.

Province: Province of the property. Purpose: Regional market comparison and aggregation.

Postal Code: Canadian postal code. Purpose: Geographic grouping and postcode-level analysis.

Latitude: Geographic latitude of the property. Purpose: Map plotting, distance calculations, spatial analysis.

Longitude: Geographic longitude of the property. Purpose: Map plotting, distance calculations, spatial analysis.

Listing Activity

Time On Realtor: Time since the listing was published, as displayed (e.g., "6 hours ago"). Purpose: Measuring listing freshness.

Inserted At: Date the listing was inserted in UTC (may be null). Purpose: Time-series analysis of new listings.

Photo Changed At: Date the photos were last changed in UTC (may be null). Purpose: Detecting listing updates.

Tags: List of labels attached to the listing (e.g., "6 hours ago"). Purpose: Identifying listing status badges.

Open House: Open house information (may be null). Purpose: Planning viewings and lead engagement.

Agents

Agents: List of agents responsible for the listing. Each agent includes ID, name, position, agency, phones (label/value), websites, photos and profile URL. Purpose: Lead generation, direct outreach, tracking agent performance and competitor analysis.

Agencies

Agencies: List of unique agencies (brokerages) of the listing agents. Each agency includes ID, name, type, designation, address, phones (label/value), websites, logo and profile URL. Purpose: Market share analysis, business research and agency-level lead enrichment.

Media

Photo Count: Total number of photos in the listing. Purpose: Evaluating listing quality and completeness.

Photo URLs: List of high-resolution photo links in original order. Purpose: Downloading images, visual inspection, computer vision analysis.

Photos: List of photo objects with sequence, high/medium/low resolution URLs and last update time. Purpose: Choosing the right resolution and detecting photo updates.

Media Links: List of label/value external media or document links (e.g., feature sheet). Purpose: Accessing brochures, feature sheets and other supporting material.

Raw Data

Raw Data: Complete original JSON object of the listing as scraped, without modification. Purpose: Auditing, debugging, accessing fields not included in the cleaned output, and reprocessing without re-scraping.

Example Output

{
"id": "30492886",
"mls_number": "14640129",
"listing_url": "https://www.realtor.ca//real-estate/30492886",
"alternate_url": null,
"description": "",
"price": 674000,
"price_text": "$674,000",
"price_short": "674K",
"currency": "CAD",
"price_change_time": "",
"price_change_date": "",
"property_type": "Single Family",
"building_type": "House",
"zoning_type": "Residential",
"bedrooms": "3 + 3",
"bathrooms": "3",
"half_bathrooms": "0",
"stories_total": "",
"interior_size": "132.7 m2",
"floor_areas": [
{
"label": "Square Footage",
"value": "1428 sqft"
}
],
"land_size_total": "527.6 m2",
"land_details": [
{
"label": "Size Total",
"value": "527.6 m2"
},
{
"label": "Size Frontage",
"value": "34.74 m"
},
{
"label": "Landscape Features",
"value": "No rear neighbours, Level"
}
],
"parking_spaces_total": "5",
"parking_types": [
"Asphalt",
"Double width or more",
"Heated Garage",
"Integrated Garage",
"Single width"
],
"business_details": [],
"address": "1130 Rue Georges-Dor, Longueuil (Le Vieux-Longueuil), Quebec J4K1E7",
"street_address": "1130 Rue Georges-Dor",
"city": "Longueuil",
"borough": "Le Vieux-Longueuil",
"province": "Quebec",
"postal_code": "J4K1E7",
"latitude": "45.522138",
"longitude": "-73.510791",
"time_on_realtor": "6 hours ago",
"inserted_at": null,
"photo_changed_at": null,
"tags": [
"6 hours ago"
],
"open_house": null,
"agents": [
{
"id": 1893151,
"name": "Jocelyn Langlois",
"first_name": "Jocelyn",
"last_name": "Langlois",
"position": "Residential and Commercial Real Estate Broker",
"agency_id": 54205,
"agency_name": "RE/MAX ROYAL (JORDAN) INC. - VAUDREUIL/DORION",
"phones": [
{
"label": "Telephone",
"value": "514-916-3310"
}
],
"websites": [
"https://seguinlanglois.com/"
],
"photo_url": "https://cdn.realtor.ca/individuals/TS638920980600000000/lowres/1212695.jpg",
"photo_high_res_url": "https://cdn.realtor.ca/individuals/TS638920980600000000/highres/1212695.jpg",
"profile_url": "https://www.realtor.ca//agent/1893151/jocelyn-langlois-100-21-boul-cite-des-jeunes-e-vaudreuil-dorion-quebec-j7v0n3"
},
{
"id": 1672146,
"name": "Véronique Séguin",
"first_name": "Véronique",
"last_name": "Séguin",
"position": "Residential and Commercial Real Estate Broker",
"agency_id": 54205,
"agency_name": "RE/MAX ROYAL (JORDAN) INC. - VAUDREUIL/DORION",
"phones": [
{
"label": "Telephone",
"value": "514-434-3310"
}
],
"websites": [
"https://seguinlanglois.com/"
],
"photo_url": "https://cdn.realtor.ca/individuals/TS638962356600000000/lowres/1170616.jpg",
"photo_high_res_url": "https://cdn.realtor.ca/individuals/TS638962356600000000/highres/1170616.jpg",
"profile_url": "https://www.realtor.ca//agent/1672146/veronique-seguin-100-21-boul-cite-des-jeunes-e-vaudreuil-dorion-quebec-j7v0n3"
}
],
"agencies": [
{
"id": 54205,
"name": "RE/MAX ROYAL (JORDAN) INC. - VAUDREUIL/DORION",
"type": "Firm",
"designation": "Real Estate Agency",
"address": "100 - 21 boul. Cité des Jeunes E., Vaudreuil-Dorion, Quebec J7V0N3",
"phones": [
{
"label": "Telephone",
"value": "450-455-5747"
},
{
"label": "Fax",
"value": "450-455-8741"
}
],
"websites": [
"http://www.royaljordan.com"
],
"logo_url": "https://cdn.realtor.ca/organizations/en-CA/TS639117670200000000/lowres/1007971.jpg",
"profile_url": "https://www.realtor.ca//office/firm/54205/remax-royal-jordan-inc-vaudreuildorion-100-21-boul-cite-des-jeunes-e-vaudreuil-dorion-quebec-j7v0n3"
}
],
"photo_count": 1,
"photo_urls": [
"https://cdn.realtor.ca/listings/TS639297744711530000/reb5/highres/9/14640129_1.jpg"
],
"photos": [
{
"sequence": "1",
"high_res_url": "https://cdn.realtor.ca/listings/TS639297744711530000/reb5/highres/9/14640129_1.jpg",
"med_res_url": "https://cdn.realtor.ca/listings/TS639297744711530000/reb5/medres/9/14640129_1.jpg",
"low_res_url": "https://cdn.realtor.ca/listings/TS639297744711530000/reb5/lowres/9/14640129_1.jpg",
"last_updated": "2026-11-08 10:41:11 PM"
}
],
"media_links": [
{
"label": "AlternateFeatureSheetWebsite",
"value": "https://passerelle.centris.ca/redirect.aspx?NoMLS=14640129&Lang=E"
}
],
"raw_data": null,
"from_url": "https://www.realtor.ca/qc/longueuil/real-estate"
}

Step-by-Step Usage Guide

  1. Create and configure your Apify account with appropriate credit allocation for your scraping volume.

  2. Identify target markets by manually searching Realtor.ca for your areas of interest. Apply relevant filters (location, price, property type) and copy the resulting search URLs.

  3. Configure your input JSON with collected URLs, proxy settings, and item limits. Start with max_items_per_url: 20 for testing, then increase or remove this limit for production runs.

  4. Launch the scraper and monitor execution in the Apify console. For 100 properties, expect 5-10 minutes runtime depending on proxy speed and platform load.

  5. Review data quality in the dataset preview. Verify that key fields (price, bedrooms, location) are populated correctly. If you notice missing data, check that your search URLs are correctly formatted and return results on Realtor.ca directly.

  6. Export your data in JSON for database integration, CSV for spreadsheet analysis, or Excel for formatted reporting. JSON preserves nested structures (like media arrays), while CSV flattens the data for simpler analysis.

  7. Set up scheduled runs for ongoing market monitoring. Daily scrapes capture new listings immediately, while weekly runs suffice for trend analysis without excessive data volume.

Troubleshooting Common Issues

No results returned: Verify your search URL returns listings when accessed directly in a browser. Some geographic areas have limited inventory.

Partial data fields: Realtor.ca doesn't require all fields for every listing. Missing bathroom counts or square footage is common for older listings.

Rate limiting errors: Reduce concurrent requests or increase delays between requests. Canadian residential proxies help avoid detection.

Practical Applications Across Use Cases

Real Estate Investment Analysis

Build proprietary deal flow by identifying undervalued properties through automated monitoring. Calculate price-per-square-foot metrics across neighborhoods to spot arbitrage opportunities. Track days-on-market to identify motivated sellers. Analyze rental yield by comparing sale prices against rental comps in the same area.

Market Research and Reporting

Generate market reports showing inventory trends, median prices, and absorption rates by geography and property type. Track new construction velocity by monitoring building age distributions. Identify emerging neighborhoods by analyzing listing growth and price appreciation rates.

Comparative Market Analysis (CMA)

Appraisers and agents can automate comparable property searches by filtering the dataset for similar properties (bedrooms, bathrooms, square footage, location). Historical price data enables price adjustment calculations for time and condition differences.

Property Technology Integration

PropTech platforms can integrate this data to power features like automated valuation models (AVMs), investment calculators, or neighborhood analytics. Real-time listing feeds keep user-facing applications current without manual updates.

Competitive Intelligence for Brokerages

Track competitor listing activity by monitoring "uploaded by" fields or analyzing listing descriptions for brokerage mentions. Identify top-performing agents by volume and analyze their pricing strategies or marketing approaches.

Data Enrichment and Best Practices

Combine with census data: Merge scraped listings with Statistics Canada demographic data using postal codes. This enriches property data with income levels, population growth, and household characteristics.

Geocode for spatial analysis: Convert postal codes or boundaries to precise coordinates using geocoding APIs. This enables heatmap visualizations, distance calculations to amenities, and clustering analysis.

Track changes over time: Store snapshots from regular scrapes to build longitudinal datasets. Monitor individual properties to detect price changes, status updates, or relisting events.

Validate data quality: Implement checks for reasonable price ranges, valid postal codes, and complete address information. Flag outliers for manual review to catch data entry errors or exceptional properties.

Respect scraping ethics: Limit request frequency to avoid overwhelming Realtor.ca's servers. Use residential proxies and randomize request timing to distribute load. This sustainable approach ensures continued data access.

Conclusion

The Realtor.ca Property Search Scraper provides systematic access to Canada's authoritative real estate data. Whether you're analyzing market dynamics, sourcing investment opportunities, or building property technology solutions, this tool transforms manual research into automated intelligence. Start extracting actionable insights from Canada's housing market today.