Realtor.com Scraper API — Listings, Prices & Agents avatar

Realtor.com Scraper API — Listings, Prices & Agents

Pricing

Pay per event

Go to Apify Store
Realtor.com Scraper API — Listings, Prices & Agents

Realtor.com Scraper API — Listings, Prices & Agents

Scrape Realtor.com property listings at $0.68 per 1,000 — undercuts every established Realtor.com listings scraper on Apify. Address, price, beds, baths, sqft, lot size, type, year built, status, days on market, agent, broker, photos and coordinates. Search by city, ZIP, county or URL.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Realtor.com Scraper API

Pulls property listings from Realtor.com as structured JSON: address, price, beds, baths, square footage, lot size, property type, year built, listing status, days on market, agent and broker, photo URLs and coordinates.

Give it a place — Austin, TX, 78704, Travis County, TX, Zilker, Austin, TX — or paste Realtor.com URLs. It reads the same JSON gateway the Realtor.com website uses, so there is no browser and no HTML parsing, and a page of 200 listings comes back in about a second.

What you get

One row per listing, 65 fields. A real row from a live run:

{
"propertyId": "8496361588",
"url": "https://www.realtor.com/realestateandhomes-detail/1606-Yoakum-St-254_Austin_TX_78748_M84963-61588",
"address": "1606 Yoakum St Unit 254",
"city": "Austin", "stateCode": "TX", "postalCode": "78748", "county": "Travis",
"latitude": 30.165248, "longitude": -97.825649,
"price": 365000, "pricePerSqft": 213,
"beds": 3, "baths": 3, "sqft": 1714, "lotSqft": 2178,
"propertyType": "single_family", "yearBuilt": 2007,
"listingStatus": "for_sale", "mlsStatus": "Active",
"listDate": "2026-08-08T19:44:34Z", "daysOnMarket": 0,
"agentName": "MIKE MINNS", "brokerName": "Atlas Realty",
"photoCount": 30, "primaryPhoto": "http://ap.rdcpix.com/...jpg"
}

Full field list: propertyId, listingId, url, address, addressWithheld, city, stateCode, state, postalCode, county, countyFips, latitude, longitude, price, priceMin, priceMax, pricePerSqft, priceReducedAmount, lastPriceChangeAmount, lastPriceChangeDate, lastSoldPrice, lastSoldDate, estimatedValue, hoaFee, beds, baths, bathsFull, bathsHalf, sqft, lotSqft, yearBuilt, propertyType, propertySubType, stories, garage, buildingName, listingStatus, mlsStatus, listDate, daysOnMarket, lastUpdateDate, isNewListing, isPending, isContingent, isForeclosure, isPriceReduced, isNewConstruction, agentName, agentEmail, agentMlsId, brokerName, brokerEmail, brokerPhone, mlsSourceId, mlsSourceType, photoCount, primaryPhoto, photos, virtualTourUrl, hasMatterport, openHouses, features, searchLocation, resolvedLocation, position, scrapedAt.

Turn on Include full property details to also get descriptionText, taxHistory, priceHistory, schools, neighborhoods, propertyDetails and valueEstimates. That costs one extra request per listing, so the run is slower. It adds fields, not rows, so it does not change what you are charged.

Input

FieldWhat it does
locationOne or more places. City, ST, a 5-digit ZIP, a county, a neighborhood, or a state code.
startUrlsRealtor.com search or property URLs. Filters in the URL (price-, beds-, type-, show-recently-sold) are honoured.
listingStatusfor_sale, for_rent, sold, off_market, ready_to_build.
propertyTypessingle_family, condos, townhomes, condo_townhome_rowhome_coop, multi_family, mobile, land, farm.
maxItemsHard cap on rows. You pay per row returned.
sortBynewest, oldest, price_low, price_high, sold_date, most_photos.
Filtersprice, beds, baths, sqft, lot size, year built, listed/sold within N days, open house, new construction, foreclosure, keywords.

Numbers from real runs

  • Austin, TX has 7,297 active for-sale listings and 126,304 recently sold. Both are reachable.
  • 200 listings per request is the API's hard ceiling; 201 is rejected outright.
  • 248 listings in 13.6 seconds (Austin, TX, for sale). A 5-row run finished in 2.3 seconds.
  • Duplicates are removed across pages, so asking for 250 can return 248. You are only charged for the rows you actually get.
  • No proxy is used. Realtor.com's JSON gateway answers plain datacenter addresses, so proxy cost is zero. You can still point the actor at your own proxy if you want a specific exit.

What this does not do

  • It cannot page deeper than 10,000 results in a single search. That is the API's limit, not a choice. A search matching more than that emits an uncharged RESULT_CAP diagnostic telling you so. Split the area by ZIP code, or add filters, to get the rest.
  • lastSoldPrice is empty in non-disclosure states. Sale prices are not public record in Texas, and a few other states. Measured on 20 sold listings per city: Miami 20/20 populated, Los Angeles 20/20, Phoenix 20/20, Chicago 20/20 — Austin 0/20. lastSoldDate is present everywhere. This is how the data is; no scraper can return a price the MLS does not publish.
  • agentEmail and brokerEmail are usually empty. Realtor.com rarely exposes them on listings. This is a listings scraper, not an agent-contact scraper.
  • Some listings withhold the street address. Realtor.com sends the literal text "Address Not Available" for those. The actor returns address: null and addressWithheld: true rather than passing that string off as an address. Everything else on the row is still real.
  • United States only. Realtor.com has no international inventory.
  • No Zillow, no Redfin, no Realtor.ca (that is Canada, a different company).
  • It does not log in, and it does not touch anything behind an account.

Pricing

$0.68 per 1,000 listings ($0.00068 each), plus $0.001 each time a run starts — the lowest per-listing price of any Realtor.com scraper on the Apify Store with an active user base; the next cheapest, solidcode/realtorcom-scraper (20 monthly users), is $0.80 per 1,000 even on its cheapest volume tier.

You are charged only for listings actually returned. Failed runs, blocked runs, empty searches and every diagnostic row carry no per-listing fee, so a run that returns no listings costs the $0.001 start fee and nothing more.

FAQ

How do I scrape Realtor.com listings for a city? Set location to Austin, TX and run it. Use maxItems to decide how many rows you want.

Can I scrape by ZIP code? Yes. Put the 5-digit ZIP in location, for example 78704. County (Travis County, TX) and neighborhood (Zilker, Austin, TX) also work.

Can I get recently sold homes? Yes. Set listingStatus to sold, and optionally soldWithinDays. Sort with sold_date to get the most recent sales first. Note the non-disclosure-state caveat above for the sale price itself.

Can I get rentals? Yes, set listingStatus to for_rent.

Does it return the listing agent and brokerage? Yes — agentName, agentMlsId, brokerName, and brokerPhone when Realtor.com publishes them. Email addresses are rarely published.

How many listings can I get from one search? Up to 10,000 per search. Beyond that, split by ZIP code or add filters — the actor tells you when you have hit the ceiling instead of quietly stopping.

Why did my property-type filter return nothing? Realtor.com's value is condos, plural. condo matches zero listings without raising an error. The actor validates the value and warns you instead of returning an empty result.

Do I need a proxy? No. None is used by default and none is needed.

What happens if the search returns nothing? You get one diagnostic row explaining why, and it carries no per-listing fee. The run still pays the $0.001 start fee, so an empty search costs $0.001.

Is this the official Realtor.com API? No. This is an independent scraper. It is not affiliated with or endorsed by Move, Inc. or the National Association of REALTORS®.

Realtor.com's robots.txt opens with a notice that scraping is unauthorized without written permission from Move Sales, Inc., and its Terms of Service say the same. robots.txt does not list the JSON gateway this actor uses, and it explicitly disallows deep pagination of the HTML search pages (/realestateandhomes-search/*/*/pg-). Listing data on Realtor.com originates from MLS feeds and is usually subject to IDX attribution and redistribution rules set by the individual MLS.

You are responsible for how you use the output. Check your own obligations — including MLS attribution, and privacy law where agent details are involved — before republishing or redistributing anything this returns.