Realtor Property Scraper avatar

Realtor Property Scraper

Pricing

from $8.10 / 1,000 results

Go to Apify Store
Realtor Property Scraper

Realtor Property Scraper

Search Realtor.com property listings in the United States. Extract sale, rent, and sold listing data with prices, beds, baths, area, images, location details, agents, and source URLs.

Pricing

from $8.10 / 1,000 results

Rating

5.0

(2)

Developer

AgentX

AgentX

Maintained by Community

Actor stats

3

Bookmarked

40

Total users

6

Monthly active users

1.5 hours

Issues response

4 days ago

Last modified

Share

Realtor Property Scraper is a realtor.com property scraper that searches Realtor.com by location and returns 40 normalized, source-linked property fields. It is designed for real estate analysts and acquisition teams that need repeatable Dataset rows instead of manual copy-and-paste research.

Apify Users Apify Runs price capability API + MCP ready

  • 40 public Dataset fields cover identity, price, rooms, area, location, media, contacts, provenance, and processing time.
  • 7 public inputs with four required fields keep the request explicit while leaving optional filters unset unless supplied.
  • the United States coverage is routed through Realtor.com according to the verified source map.
  • Pay-per-event billing is $0.01000 per Actor Start plus one Result event for each row stored in the default Dataset.

The smallest useful test sets max_results to 1; at the FREE price it costs at most $0.01900 when one listing is stored.

Why Choose Realtor Property Scraper

Realtor Property Scraper turns a source-specific property search into a consistent record contract that downstream tools can validate and export.

  • Traceable research. Every accepted row can carry platform, source_url, processor, and processed_at, so a reviewer can return to the originating listing.
  • Comparable listing facts. Nested price, rooms, area, geo, building, and contact objects reduce source-specific column sprawl.
  • Bounded collection. max_results caps accepted listings, while required country, location, and listing_type state the intended market and transaction.
  • Optional filters stay optional. property_type, posted_since, and platforms remain present in every edition. Leaving an optional field empty does not invent a request filter; fixed routes document fields they cannot apply.
  • Export-ready output. Apify Datasets can be downloaded as JSON, CSV, Excel, XML, or RSS and consumed through the API.

The practical decision is whether Realtor.com and the United States match the project. Search results reflect the listings and fields Realtor.com exposes for the requested market at run time.

Quick Start Guide

The console already contains a verified working prefill, so a first run can be reduced to one result before increasing scope.

Open the Input tab. The current prefill is {"max_results": 10, "country": "United States", "location": "Chicago, IL", "listing_type": "for_sale"}. Set max_results to 1 for the smallest check and keep the country, location, and listing type explicit.

Step 2: Run the Actor

Start the run and inspect the log for the final returned-property count. A successful run can still store zero rows when the source has no matching public listing, the location cannot be resolved, or a requested filter is unsupported.

Step 3: Collect and verify

Open the default Dataset, inspect title, price, location, platform, and source_url, then export only after confirming that the sample supports the intended use.

Input Parameters

Realtor Property Scraper exposes 7 public inputs in the shared family order. max_results, country, location, and listing_type are required in every edition; property_type, posted_since, and platforms remain present and optional even when a fixed route requires them to be left empty.

ParameterTypeRequiredDescriptionExample
max_resultsintegerYesMaximum number of property listings to return from Realtor.com10
countrystring (1 schema option)YesFixed market for Realtor.com: United States.United States
locationstringYesCity, region, neighborhood, postal code, or address to search on Realtor.comChicago, IL
listing_typestring (3 schema options)YesTransaction types supported by Realtor.com: for_sale, for_rent, and sold.for_sale
property_typestring (8 schema options)NoOptional Realtor.com property-type filter: residential, house, apartment, condo, townhouse, land, new_development, and ready_to_build. Leave empty for no property-type restriction.optional
posted_sincestringNoOptional listing-age filter supported by the fixed Realtor.com route. Accepts YYYY-MM-DD or a relative value such as 7 days.optional
platformsarray (1 schema option)NoCompatibility selector retained across every property-family edition. This edition always uses Realtor.com; leave empty or select Realtor.com.optional

The effective console prefill is:

{
"max_results": 10,
"country": "United States",
"location": "Chicago, IL",
"listing_type": "for_sale"
}

The platforms field is intentionally retained with the singleton schema value Realtor.com. Runtime identity fixes this edition to Realtor.com; the field is not deleted merely to differentiate the product.

property_type and posted_since affect requests only when explicitly supplied with a value supported by this route.

Output Data Schema

Each Dataset row is one accepted property advertisement normalized into exactly 40 top-level fields; unavailable source values remain empty rather than being guessed.

GroupFields
Identity, media, and classificationcover_image, image_urls, title, description, listing_id, mls_id, listing_type, availability, market_type, property_type, subtype, category, business_type
Price and sizeprice, rooms, area, land
Place and timinglocation, address, geo, country, building, dates, posted_time
Listing detailfees, media, open_houses, features, amenities, details, reviews, policies, units, nearby
Contact and provenancecontact, platform, source_url, official_url
Processingprocessor, processed_at

The following item is abbreviated; a real row follows the full 40-field schema and may contain additional nested values or empty fields:

{
"title": "Illustrative Chicago, IL property listing",
"listing_id": "source-12345",
"listing_type": "for_sale",
"property_type": "apartment",
"price": {
"value": 750000,
"text": "750,000",
"currency": "USD"
},
"rooms": {
"beds": 2,
"baths": 2
},
"location": "Chicago, IL",
"country": "United States",
"platform": "realtor",
"source_url": "https://example.com/property/source-12345",
"processed_at": "2026-08-10T12:00:00.000Z"
}

Use JSON when nested objects must stay intact, CSV or Excel for tabular review, and the Dataset API for incremental downstream processing. Always retain source_url when results will be reviewed later.

Integration Examples

Use Actor ID eou9sUeDcGLZomwXL or the name form agentx/realtor-property-scraper to call Realtor Property Scraper from HTTP, an SDK, automation tools, or MCP.

Actor ID

eou9sUeDcGLZomwXL

The name form agentx/realtor-property-scraper is also accepted by Apify clients.

HTTP

curl -X POST "https://api.apify.com/v2/acts/eou9sUeDcGLZomwXL/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"max_results": 1, "country": "United States", "location": "Chicago, IL", "listing_type": "for_sale"}'

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("eou9sUeDcGLZomwXL").call(run_input={"max_results": 1, "country": "United States", "location": "Chicago, IL", "listing_type": "for_sale"})
items = client.dataset(run["defaultDatasetId"]).list_items().items

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('eou9sUeDcGLZomwXL').call({"max_results": 1, "country": "United States", "location": "Chicago, IL", "listing_type": "for_sale"});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Make.com

Use the Apify Run an Actor module, paste eou9sUeDcGLZomwXL, map the one-result JSON input, wait for completion, and pass the default Dataset items to the next module.

n8n

Use an HTTP Request node with POST https://api.apify.com/v2/acts/eou9sUeDcGLZomwXL/runs, authenticate with an Apify token, and send the same JSON body. Read defaultDatasetId from the completed run before requesting items.

MCP

Connect the official Apify MCP server, choose Actor eou9sUeDcGLZomwXL, and provide max_results, country, location, and listing_type from the one-result scenario. The live API page contains generated endpoint and SDK references.

Pricing

Realtor Property Scraper costs $0.00900 per Result on the FREE tier, plus a $0.01000 Actor Start; a one-result test totals at most $0.01900.

Plan tierPrice per Result
FREE$0.00900
BRONZE$0.00810
SILVER$0.00720
GOLD$0.00675
PLATINUM$0.00675
DIAMOND$0.00675

One Result event is charged for each listing stored in the default Dataset. Actor Start is a one-time run event under the current 1 GB configuration; platform accounting can scale that start event with memory. A 10-result FREE-tier run costs $0.01000 + 10 × $0.00900 = $0.10000 when all ten rows are stored. Empty searches do not create Result events, although Actor Start still applies.

Prices can change; confirm the live pricing page before a production run.

Use Cases

Realtor Property Scraper fits bounded workflows where source-linked listing rows are more useful than an opaque aggregate.

  • Comparable-property review. Use price, rooms, area, location, and source_url to assemble a review queue for assemble a Chicago sale-listing review queue.
  • Inventory monitoring. Schedule the same required inputs and compare listing_id, price, availability, and processed_at between Datasets.
  • Lead research. Review contact, official_url, and source_url only when the source exposes them and the intended outreach is lawful.
  • Regional snapshots. Group geo, country, property_type, and listing_type to describe visible public inventory without claiming full-market coverage.
  • Data-quality sampling. Measure which of the 40 fields are populated for a location before designing a larger integration.

The reverse fit matters: Choose a licensed listing feed when you need permissioned bulk redistribution, service levels, or complete MLS coverage.

Alternatives

The best alternative depends on scale, rights, and the decision the data must support.

  • Manual source search is reasonable for a handful of listings that a person can verify immediately; it stops being efficient when the same fields must be compared or refreshed repeatedly.
  • The source's own search experience is best for interactive browsing, saved searches, maps, and consumer decisions. Realtor.com documents the source behavior relevant to this route: Realtor.com's official sitemap distinguishes homes for sale, rentals, new construction, foreclosures, and recently sold homes.
  • An official or licensed feed is the better path for contractual rights, service levels, or complete inventory. This Actor does not turn public pages into a licensed feed.
  • A valuation or analytics product is better when the deliverable is an appraisal, forecast, or modeled market estimate rather than source-attributed advertisements.

Choose something else if the project cannot tolerate nullable fields, requires a guaranteed refresh interval, or lacks permission for the planned access and reuse.

Limits and Troubleshooting

Source conditions determine what a run can return, so troubleshoot with the smallest one-result input first.

  • Zero rows → no public match or unresolved place → retry the exact Chicago, IL scenario, verify spelling and country, then loosen only one optional filter.
  • Requested filter skipped → source route does not support it → remove the optional property_type or posted_since value and rerun; do not assume every schema-wide option works on every marketplace.
  • Fewer rows than max_results → source inventory or detail acceptance ended first → treat max_results as a ceiling, not a promise.
  • Empty nested values → the advertisement did not expose them → keep null handling in downstream code and verify material facts through source_url.
  • Intermittent source response → public pages or anti-automation controls changed → rerun the one-result case and report the run ID if the same input remains reproducible.

For a reproducible defect, open the Issues page and include the run ID, sanitized input, expected result, actual result, and UTC timestamp.

Trust and Reliability

Trust comes from a checkable contract: Apify isolates each run, the Actor bills stored rows as Result events, and the Dataset schema names 40 public fields.

The Actor does not fabricate absent listing facts. It normalizes values exposed by the source, preserves a source URL when available, and timestamps processing. A stable schema makes downstream validation possible, but it does not guarantee that every source fills every field.

Use max_results=1 as a release check for a critical workflow. Confirm the returned platform, listing type, location, price currency, and source URL before increasing the result ceiling or scheduling recurring runs.

Public data scope. The Actor processes publicly reachable property advertisements; it does not grant access rights, ownership, or a license to reuse source content.

Platform rules. Review the source's terms, robots controls, and applicable database or copyright rules before collection. Realtor.com documents the source behavior relevant to this route: Realtor.com's official sitemap distinguishes homes for sale, rentals, new construction, foreclosures, and recently sold homes.

Privacy and decisions. Minimize personal contact data, set retention limits, secure exports, and do not use an advertisement alone for housing, lending, legal, or investment decisions. Verify important facts with the source and qualified professionals.

Frequently Asked Questions

How do I scrape realtor.com property listings?

Set country, location, listing_type, and max_results, leave unsupported optional filters empty, and start with one result. The Chicago, IL scenario is a verified bounded example for this Actor.

Can I export realtor.com listings to csv?

Yes. Run Realtor Property Scraper, keep source_url and platform, and export the default Dataset as CSV, Excel, or JSON. The output is a normalized listing dataset, not an official source API response.

Is there a free property listings API?

Apify accounts can test Actors within their available platform credits, but this Actor charges $0.01000 for Actor Start and $0.00900 per stored Result on the FREE pricing tier. Check the live pricing page and account limits before running.

Can I schedule runs to monitor property listings over time?

Yes. Apify Schedules can repeat the same explicit input. Store each Dataset snapshot and compare listing_id, price, availability, and processed_at; the Actor itself does not maintain a historical database or send listing-change alerts.

Why are some of the 40 fields empty?

Each public advertisement exposes a different set of details. Empty values mean the source record did not provide a reliable value or the detail page was unavailable; downstream code should treat nullable fields as expected.

Does max_results guarantee that many listings?

No. It is an upper bound. The Actor can return fewer rows when inventory is limited, filters exclude candidates, a location cannot be resolved, or the source does not expose enough acceptable details.

Is Realtor Property Scraper affiliated with Realtor.com?

No. Realtor Property Scraper is an independent AgentX Actor. It does not represent, endorse, or replace Realtor.com, and users remain responsible for permission and compliant reuse.

AgentX currently has 77 Actor repositories; this section lists the three closest choices first, followed by the complete generated catalog.

Closest to this Actor:

Business and Market Intelligence

Jobs and Hiring

Social Media

Video, Transcripts and Downloads

E-Commerce and Retail

Classifieds and Automotive

Real Estate

Support and Community

Ask about Realtor.com search inputs, nullable property fields, and Dataset integrations in the AgentX community on Telegram; for a reproducible bug, open an Issue with the run ID and the exact input.

AgentX is an Arcyton brand — arcyton.com.

Last Updated: August 10, 2026