Realtor.com Search Cheap (Pay-Per-Result) avatar

Realtor.com Search Cheap (Pay-Per-Result)

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Realtor.com Search Cheap (Pay-Per-Result)

Realtor.com Search Cheap (Pay-Per-Result)

Property scraper that extracts Realtor.com listings, prices, and agent details so investors and agents can analyze market data and find deals affordably.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Kawsar

Kawsar

Maintained by Community

Actor stats

1

Bookmarked

1

Total users

1

Monthly active users

2 days ago

Last modified

Share

Realtor.com Scraper — Cheap Property Search API (Pay-Per-Result)

Realtor.com Search Cheap (Pay-Per-Result) — Scrape property listings, sold comps, rental data, agent details from Realtor.com

Scrape property listings from Realtor.com at a fraction of the cost of the official API. This Apify actor extracts real estate data including active for-sale listings, recently sold properties, rental listings, foreclosures, new construction, agent contact details, open house schedules, listing photos, GPS coordinates, and more.

No coding knowledge required. Just fill in the input fields and the actor handles everything — query construction, pagination, proxy rotation, and deduplication.


What Data Can You Scrape from Realtor.com?

  • Active for-sale listings with asking prices, bedroom/bathroom counts, square footage, lot size, and listing dates
  • Sold property comps with final sale prices and close dates for market analysis
  • Rental listings with monthly rent, pet policies, and availability
  • Foreclosure and distressed properties for investment screening
  • New construction listings from builders and developers
  • Agent and brokerage details including names, office names, and fulfillment IDs
  • Property photos including primary listing photo, up to 3 gallery photos, and street view URLs
  • GPS coordinates (latitude/longitude), county name, and FIPS codes
  • Open house schedules with start and end dates
  • Listing flags like coming soon, price reduced, pending, contingent, and more

Use Cases for Realtor.com Data

  • Real estate investors: Pull sold comps by ZIP code, city, or state to run CMA (Comparative Market Analysis) reports
  • Real estate agents: Generate leads by scraping for-sale listings with agent and brokerage contact details
  • Property managers: Monitor rental listings and track rent price trends across neighborhoods
  • Market researchers: Analyze inventory velocity, median prices, and days-on-market across regions
  • Wholesalers: Find foreclosures, contingent deals, and distressed properties before the competition
  • Developers: Track new construction activity and builder listings in target markets
  • Data analysts: Feed structured property data into BI tools, spreadsheets, or data warehouses

Input Parameters — Full Reference

Search Filters

ParameterTypeRequiredDefaultDescription
statusarrayYes["for_sale"]Listing status. Options: for_sale, sold, for_rent, ready_to_build, off_market, other, new_community. Example: ["for_sale"] or ["sold"].
postal_codestringNoUS ZIP code. Most precise location filter. Example: "90210" for Beverly Hills.
state_codestringNo2-letter US state code. Example: "TX" for Texas, "CA" for California.
citystringNoCity name. Combine with state_code to avoid ambiguity. Example: "Houston".
street_namestringNoStreet name filter. Example: "Sunset Blvd".
addressstringNoSpecific street address. Example: "123 Main St".

Property Filters

ParameterTypeDefaultDescription
propertyTypearrayProperty types to include. Options: single_family, condo_townhome, condo_townhome_rowhome_coop, condo, condos, apartment, multi_family, mobile, land, farm, other. Example: ["single_family", "condo_townhome"].
keywordsarrayFeature/amenity keywords. Options: pool, basement, central_air, carport, den, hardwood_floors, waterfront, ocean_view, fireplace, garage. Example: ["pool", "central_air"].
beds_min / beds_maxintegerBedroom range. Example: beds_min: 3, beds_max: 5.
baths_min / baths_maxintegerBathroom range (includes half-baths). Example: baths_min: 2.
sqft_min / sqft_maxintegerInterior square footage range. Example: sqft_min: 1500, sqft_max: 4000.
lot_sqft_min / lot_sqft_maxintegerLot size range in sq ft. Example: lot_sqft_min: 5000.
year_built_min / year_built_maxintegerYear built range. Example: year_built_min: 2010.

Price Filters

ParameterTypeDefaultDescription
list_price_min / list_price_maxintegerActive asking price range in USD. Example: list_price_min: 200000, list_price_max: 800000.
sold_price_min / sold_price_maxintegerSold price range in USD. Only works with status: ["sold"]. Example: sold_price_max: 500000.
sold_date_min / sold_date_maxstringSold date range (YYYY-MM-DD). Example: sold_date_min: "2023-01-01".
hoa_fee_maxintegerMax monthly HOA fee. Example: hoa_fee_max: 300.
no_hoa_feebooleanfalseIf true, only show properties with zero HOA fees.

Listing Status Flags

ParameterTypeDefaultDescription
pendingbooleanfalseIf true, only return properties currently under contract (pending sale).
contingentbooleanfalseIf true, only return contingent listings (under contract but with conditions that must be met).
foreclosurebooleanfalseIf true, only return properties in active foreclosure proceedings.
new_constructionbooleanfalseIf true, only return newly built properties from developers/builders.

Media & Tour Filters

ParameterTypeDefaultDescription
has_tourbooleanfalseIf true, only return listings that have any type of virtual tour available.
matterportbooleanfalseIf true, only return listings with a Matterport 3D interactive walkthrough.

Rental Filters

ParameterTypeDefaultDescription
catsbooleanfalseIf true, only rental properties allowing cats. Use with status: ["for_rent"].
dogsbooleanfalseIf true, only rental properties allowing dogs. Use with status: ["for_rent"].

Open House Filters

ParameterTypeDefaultDescription
open_house_min / open_house_maxstringFilter by open house date range (YYYY-MM-DD). Example: open_house_min: "2024-06-01".

Sorting

ParameterTypeDefaultDescription
sort_fieldstringlist_dateSort by: list_date, list_price, sold_price, sold_date, beds, lot_sqft, photo_count, last_update_date.
sort_directionstringdescSort order: desc (newest/highest first) or asc (oldest/lowest first).

Agent & Listing ID Lookups

ParameterTypeDescription
agent_source_idstringFilter by a specific agent's source ID.
selling_agent_namestringFilter by selling agent's full name. Example: "John Doe".
source_listing_idstringLook up a specific MLS listing ID. Example: "12345678".
property_idstringLook up by Realtor.com's internal property ID. Example: "M12345-67890".
fulfillment_idstringFilter by agent fulfillment ID.

Pagination & Limits

ParameterTypeDefaultMaxDescription
limitinteger200200Properties fetched per API call. Realtor.com's maximum is 200.
offsetinteger0Starting position index. Use to resume a previous scrape.
maxItemsinteger50005000Total properties to scrape. The actor stops once this cap is hit.
timeoutSecsinteger3003600Overall run timeout in seconds.
requestTimeoutSecsinteger30120Per-request API timeout in seconds.

Proxy

ParameterTypeDefaultDescription
proxyConfigurationobjectUS DatacenterProxy settings. Default uses Apify's US datacenter proxies for reliable US-based requests.

Example Input — Full Search with All Major Filters

This example searches for active for-sale single-family homes and condos in Houston, TX with a pool, 3-6 bedrooms, priced $200K-$800K, built after 2005:

{
"status": ["for_sale"],
"state_code": "TX",
"city": "Houston",
"propertyType": ["single_family", "condo_townhome"],
"keywords": ["pool"],
"beds_min": 3,
"beds_max": 6,
"baths_min": 2,
"baths_max": 5,
"list_price_min": 200000,
"list_price_max": 800000,
"sqft_min": 1500,
"sqft_max": 5000,
"lot_sqft_min": 3000,
"lot_sqft_max": 30000,
"year_built_min": 2005,
"year_built_max": 2025,
"hoa_fee_max": 400,
"foreclosure": false,
"new_construction": false,
"pending": false,
"contingent": false,
"has_tour": false,
"matterport": false,
"sort_field": "list_date",
"sort_direction": "desc",
"limit": 200,
"maxItems": 500,
"timeoutSecs": 300,
"requestTimeoutSecs": 30,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyCountry": "US"
}
}

Example Input — Sold Comps in a ZIP Code

Pull recently sold properties in Beverly Hills for market analysis:

{
"status": ["sold"],
"postal_code": "90210",
"sold_price_min": 500000,
"sold_price_max": 3000000,
"sold_date_min": "2023-01-01",
"propertyType": ["single_family"],
"sort_field": "sold_date",
"sort_direction": "desc",
"maxItems": 200,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyCountry": "US"
}
}

The simplest possible search — just a status and a location:

{
"status": ["for_sale"],
"postal_code": "10022",
"maxItems": 100,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyCountry": "US"
}
}

Example Input — Foreclosures Only

Find distressed properties across Florida:

{
"status": ["for_sale"],
"state_code": "FL",
"foreclosure": true,
"sort_field": "list_price",
"sort_direction": "asc",
"maxItems": 1000,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyCountry": "US"
}
}

Example Input — Rentals with Pet Policy

Find pet-friendly rentals in Austin:

{
"status": ["for_rent"],
"state_code": "TX",
"city": "Austin",
"cats": true,
"dogs": true,
"beds_min": 2,
"sort_field": "list_date",
"sort_direction": "desc",
"maxItems": 500,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyCountry": "US"
}
}

Output — Full Field Reference

Each scraped property is pushed as a flat JSON object. Here is the complete output schema with all 40+ fields:

{
"propertyId": "1234567890",
"listingId": "OC22183456",
"listPrice": 749000,
"soldPrice": null,
"soldDate": "",
"listingStatus": "for_sale",
"propertyName": "",
"propertyType": "single_family",
"propertySubType": null,
"beds": "3",
"bathsConsolidated": "2",
"sqft": 1850,
"lotSqft": 6500,
"addressLine": "123 Oak Street",
"addressCity": "Irvine",
"addressState": "California",
"addressStateCode": "CA",
"addressPostalCode": "92612",
"latitude": 33.684,
"longitude": -117.826,
"countyName": "Orange",
"countyFips": "06059",
"permalink": "123-Oak-St_Irvine_CA_92612/M12345-67890",
"primaryPhotoUrl": "https://ap.rdcpix.com/...",
"photoUrls": ["https://ap.rdcpix.com/..."],
"streetViewUrl": "https://maps.googleapis.com/...",
"hasMatterport": false,
"virtualTours": [],
"listDate": "2024-01-15T00:00:00Z",
"priceReducedAmount": null,
"isComingSoon": false,
"isNewListing": true,
"isPriceReduced": false,
"isForeclosure": false,
"isNewConstruction": false,
"isPending": false,
"isContingent": false,
"openHouses": [],
"agentName": "Jane Smith",
"agentFulfillmentId": "12345",
"officeName": "Berkshire Hathaway",
"brandingName": "Berkshire Hathaway HomeServices",
"brandingPhoto": "https://...",
"communityName": "",
"communityPermalink": "",
"sourceId": "SOCALMLS",
"sourceName": "CRMLS",
"scrapedAt": "2024-01-20T14:30:00.000000+00:00",
"error": null
}

Output Fields Explained

FieldTypeDescription
propertyIdstringRealtor.com's permanent internal property identifier. Unique per property.
listingIdstringThe MLS (Multiple Listing Service) ID assigned by the local listing board.
listPriceintegerCurrent active asking price in USD. null if not listed for sale.
soldPriceintegerFinal sale price in USD. Only populated for sold listings.
soldDatestringDate the property was sold. Only populated for sold listings.
listingStatusstringCurrent lifecycle stage: for_sale, sold, for_rent, pending, contingent, etc.
propertyNamestringOptional property or community name (common for condos/apartments).
propertyTypestringClassification: single_family, condo_townhome, multi_family, apartment, land, farm, mobile.
propertySubTypestringMore granular classification when available.
bedsstringBedroom count (or range like "2-3" for multi-unit).
bathsConsolidatedstringTotal bathroom count including half-baths.
sqftintegerInterior living space in square feet.
lotSqftintegerTotal lot/land area in square feet.
addressLinestringStreet address line.
addressCitystringCity name.
addressStatestringFull state name (e.g., "California").
addressStateCodestring2-letter state code (e.g., "CA").
addressPostalCodestring5-digit ZIP code.
latitudenumberGPS latitude coordinate.
longitudenumberGPS longitude coordinate.
countyNamestringCounty name.
countyFipsstringFederal FIPS county code (useful for government/census data joins).
permalinkstringRealtor.com URL path to the listing (append to https://www.realtor.com/).
primaryPhotoUrlstringDirect URL to the main listing cover photo.
photoUrlsarrayUp to 3 additional listing photo URLs.
streetViewUrlstringGoogle Street View URL for the property location.
hasMatterportbooleanWhether the listing has a Matterport 3D tour.
virtualToursarrayVirtual tour objects with href and type fields.
listDatestringISO date when the property was first listed.
priceReducedAmountintegerDollar amount of the most recent price reduction. null if no reduction.
isComingSoonbooleanListing is in "Coming Soon" pre-market status.
isNewListingbooleanListed within the last 14 days.
isPriceReducedbooleanPrice was reduced within the last 30 days.
isForeclosurebooleanProperty is in foreclosure.
isNewConstructionbooleanNewly built property.
isPendingbooleanUnder contract, sale pending.
isContingentbooleanUnder contract with contingencies.
openHousesarrayScheduled open houses with start_date and end_date.
agentNamestringListing or selling agent's full name.
agentFulfillmentIdstringAgent's fulfillment ID for follow-up queries.
officeNamestringListing brokerage/office name.
brandingNamestringAgent or team branding name.
brandingPhotostringBranding logo or photo URL.
communityNamestringCommunity or development name (for planned communities).
communityPermalinkstringURL path to the community page.
sourceIdstringMLS source system ID (e.g., "SOCALMLS").
sourceNamestringMLS source name (e.g., "CRMLS").
scrapedAtstringISO 8601 timestamp of when this record was scraped.
errorstringError message if this record failed to parse. null on success.

How It Works

  1. Input Normalization: The actor validates and normalizes your inputs. Array fields like propertyType and keywords are automatically corrected even if you accidentally pass a comma-separated string instead of an array.
  2. Query Construction: Your flat input parameters are assembled into a properly structured API request — no manual payload construction needed.
  3. Paginated Extraction: The actor fetches up to 200 listings per API call and automatically paginates through all available results until your maxItems cap is reached or no more data exists.
  4. Smart Early Exit: If a page returns fewer than 200 results, the actor knows it has reached the end and stops immediately — no wasted requests.
  5. Deduplication: Every propertyId is tracked. If the same property appears across multiple pages (common with Realtor.com's overlapping pagination), duplicates are silently skipped.
  6. Proxy Rotation: Each page request uses a fresh US datacenter proxy IP to avoid rate limiting and blocking.
  7. Real-time Dataset Push: Results are pushed to your Apify dataset as they arrive. You can start downloading, exporting, or syncing via API/webhooks before the run completes.

Tips & Best Practices

  • Always include a location filter (postal_code, city + state_code, or state_code) alongside status to avoid scanning the entire national database.
  • Use maxItems to control costs. The default is 5000 but you can lower it to 100 or 500 for quick test runs.
  • Don't combine conflicting filters. For example, street_name + address + postal_code + city together will likely return zero results. Pick one or two location filters.
  • Boolean flags only activate when set to true. Setting foreclosure: false does NOT exclude foreclosures — it simply doesn't apply the filter. Set it to true to only show foreclosures.
  • Sold comps require status: ["sold"]. The sold_price_min/max and sold_date_min/max filters are ignored unless the status includes sold.
  • Pet filters are for rentals only. cats and dogs only apply when status includes for_rent.

Frequently Asked Questions

What is the minimum required input?
Only status is technically required (e.g., ["for_sale"]). However, you should always add a location filter to avoid impractically broad searches.

How many properties can I scrape per run?
Up to 5,000 per run. The actor paginates in batches of 200 (Realtor.com's API maximum) and stops when your maxItems cap is reached or when no more data is available.

Can I search for sold properties (comps)?
Yes. Set status to ["sold"] and use sold_price_min, sold_price_max, sold_date_min, and sold_date_max to narrow the results.

Will I get duplicate properties?
No. The actor tracks every propertyId it has pushed and automatically skips any duplicate that reappears during pagination.

What proxy settings should I use?
The default (US Datacenter) works reliably. Only switch to Residential proxies if you encounter persistent blocks.

Can I pass propertyType as a comma-separated string?
Yes. The actor automatically normalizes "single_family, condo" into ["single_family", "condo"]. The same applies to keywords and status.

What happens if the search has fewer results than maxItems?
The actor collects everything available and stops. You only pay for actual results, not the cap.


Integrations

Connect this Realtor.com scraper with other apps and services using Apify integrations:

  • Google Sheets — Auto-populate a spreadsheet with new listings
  • Slack — Get notified when foreclosures or price drops appear
  • Make (Integromat) — Build complex automation workflows
  • Zapier — Connect to 5,000+ apps with zero code
  • Airbyte — Stream property data into your data warehouse
  • GitHub — Trigger scrapes from CI/CD pipelines
  • Webhooks — Get instant HTTP callbacks when results are ready

Use the Apify API to trigger runs, fetch datasets, and integrate with any programming language.