Property Listing Scraper avatar

Property Listing Scraper

Pricing

from $0.10 / 1,000 property listings

Go to Apify Store
Property Listing Scraper

Property Listing Scraper

Extract structured data from any real estate listing. Works with Zillow, Rightmove, Imobiliare, Idealista and more. Gets price, photos, bedrooms, area, coordinates, and agent details from any property page.

Pricing

from $0.10 / 1,000 property listings

Rating

0.0

(0)

Developer

Oaida Adrian

Oaida Adrian

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

7 days ago

Last modified

Categories

Share

Property Listing Scraper — Universal Real Estate Data Extractor

Extract clean, structured real estate data from any property website — Zillow, Rightmove, Idealista, Imobiliare, Realtor, Domain, or a local agency site you found this morning. Point it at a single listing or a whole search-results page and get back one tidy JSON item per property: price, location, size, rooms, and images.

No per-site templates to maintain. The scraper reads the structured data that modern property sites already embed (JSON-LD, microdata, OpenGraph) and falls back to smart HTML parsing, so it keeps working when a site changes its layout.

Why this Actor?

  • Works everywhere — one Actor for every portal instead of one brittle scraper per site.
  • Search-page aware — give it a search URL and it discovers and follows the individual listing links for you (up to maxListings).
  • Structured, null-tolerant output — every field is always present; missing values come back as null rather than breaking your pipeline.
  • Fast — up to 5 listings scraped concurrently.

Who is this for?

  • Investors & analysts — build price-per-m² datasets across neighbourhoods and portals.
  • PropTech & aggregators — feed a normalised listing stream into your own app.
  • Agents & valuers — pull comparables from any market on demand.
  • Data / RAG pipelines — clean, typed property records ready for a database or LLM.

Input

{
"startUrls": [
{ "url": "https://www.rightmove.co.uk/property-for-sale/find.html?searchLocation=London" },
{ "url": "https://www.zillow.com/homedetails/123-Main-St/12345_zpid/" }
],
"maxListings": 50
}
FieldTypeDefaultDescription
startUrlsarrayrequiredListing pages or search-results pages
maxListingsint50Max listings to follow from each search page

Residential proxy is enabled by default to reach geo-restricted portals reliably.

Output (one item per property)

{
"id": "12345_zpid",
"title": "3-Bed Terraced House, Camden",
"price": 725000,
"currency": "GBP",
"address": "42 Example Road, London NW1",
"propertyType": "House",
"areaSqm": 96,
"bedrooms": 3,
"bathrooms": 2,
"images": ["https://.../photo1.jpg", "https://.../photo2.jpg"]
}

Run it on a schedule or from your app

curl -X POST "https://api.apify.com/v2/acts/darknezz~property-listing-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "startUrls": [{ "url": "https://www.idealista.com/venta-viviendas/madrid-madrid/" }], "maxListings": 100 }'

Schedule a daily run in the Apify Console to keep a market snapshot fresh, and pull new items from the dataset via the API.

Pricing

Pay per event — a small fee per property extracted. No subscription, no minimums: scrape one comparable or ten thousand listings and pay only for what you pull.

FAQ

Which sites are supported? Any property site that embeds standard structured data — that covers virtually every major portal (Zillow, Rightmove, Idealista, Realtor, Domain, Imobiliare, and thousands of regional sites). Unknown fields return null rather than a wrong guess.

Can I give it a search page instead of individual listings? Yes. The Actor detects search-results pages, follows the listing links, and scrapes each one up to your maxListings limit.

Do I need my own proxies? No. Residential proxy is configured by default so geo-restricted and bot-protected portals load reliably.

What if a listing is missing the price or area? The field comes back as null. Every output field is always present, so your downstream schema never breaks.