PropertyFinder UAE Property Scraper avatar

PropertyFinder UAE Property Scraper

Pricing

Pay per event

Go to Apify Store
PropertyFinder UAE Property Scraper

PropertyFinder UAE Property Scraper

Scrape property listings from PropertyFinder.ae, the UAE's leading property portal. Get clean price, bed/bath, size, location, and agent data per listing while we handle blocks and fingerprint rotation for you.

Pricing

Pay per event

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

Categories

Share


🎯 What this scrapes

PropertyFinder.ae is the UAE's leading property portal, sitting in the deepest demand cluster in this fleet — property-portal scrapers of the PropertyFinder/Bayut/Dubizzle shape post 6,748 runs and 182 users a month across 56 rival Store actors. This Actor pulls listing cards straight from PropertyFinder's own search-results page, parsed from the page's embedded __NEXT_DATA__ JSON blob rather than fragile DOM selectors, so you get every field the page actually knows about a listing — price, bedrooms, bathrooms, size, location hierarchy, agent, and agency — normalized into one clean row per listing.

🔥 What we handle for you

  • 🛡️ Browser fingerprint rotation — curl-cffi impersonates real Chrome and Firefox TLS handshakes, rotated across requests, so the target sees a browser, not Python.
  • 🌐 Proxy session rotation via Apify Proxy — fresh session and exit IP on every block, always pinned to a UAE (AE) residential exit so you never get wrong-currency or wrong-inventory data silently.
  • 🔁 Retries with exponential backoff on 408 / 429 / 5xx — up to 5 attempts per page, Retry-After honoured.
  • 🧱 Page- and row-level fault isolation — one blocked page or one bad listing is skipped and logged, never crashes the run.
  • 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, numeric price/size fields with an explicit currency and unit instead of one rendered blob.
  • 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge.

💡 Use cases

  • Property investment research — pull current for-sale listings for a UAE area, price and size included, to compare communities fast.
  • Rental market benchmarking — track for-rent listing prices and size across Dubai, Abu Dhabi, Sharjah, and other emirates in one run.
  • PropTech and real-estate analytics — feed a clean, structured listings dataset into a pricing or valuation model.
  • Agency competitor tracking — monitor a rival agency's live inventory, pricing, and listing velocity.

⚙️ How to use it

  1. Click Try for free at the top of the page.
  2. Pick a category, purpose (for-sale/for-rent), and optional filters — location, price range, bedrooms.
  3. Click Start. Output streams into the run's dataset.
  4. Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.

📥 Input

FieldTypeRequiredDefaultNotes
categorystringnoresidentialProperty category (maps to the c= search param).
purposestringnofor-salefor-sale or for-rent.
locationstringno—Area/community — Dubai, Abu Dhabi, Sharjah, etc.
minPriceintegerno—Minimum price in AED.
maxPriceintegerno—Maximum price in AED.
bedroomsintegerno—Bedroom filter. 0 = studio.
maxPagesintegerno10Search-result pages to walk.
maxResultsintegerno50Hard cap on rows emitted; stops early once hit.
proxyConfigurationobjectyesRESIDENTIAL groupThe Actor pins apifyProxyCountry="AE" internally whenever a proxy is used (never user-configurable).

Example input

{
"category": "residential",
"purpose": "for-sale",
"location": "Dubai Marina",
"minPrice": 500000,
"maxPrice": 3000000,
"bedrooms": 2,
"maxPages": 5,
"maxResults": 200,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

📤 Output

Every row is one dataset item.

FieldTypeNotes
listing_idstringListing object ID from PropertyFinder's __NEXT_DATA__ blob.
titlestringListing title.
price_amount['number', 'null']Numeric price.
price_currencystringPrice currency, e.g. AED.
property_type['string', 'null']e.g. "Apartment", "Villa".
bedrooms['integer', 'null']Bedroom count. 0 = studio.
bathrooms['integer', 'null']Bathroom count.
size_value['number', 'null']Numeric floor area.
size_unit['string', 'null']sqft or sqm as displayed.
location['string', 'null']Flattened display string.
location_hierarchyarrayCity > community > sub-community, if present.
agent_name['string', 'null']Listing agent's name.
agency_name['string', 'null']Listing agency's name.
listing_urlstringCanonical detail-page URL.
image_urlsarrayGallery photo URLs (empty OK).
posted_at['string', 'null']ISO-8601, if present in the source JSON.
updated_at['string', 'null']ISO-8601, if present in the source JSON.
latitude['number', 'null']WGS-84 latitude, if present.
longitude['number', 'null']WGS-84 longitude, if present.
scraped_atstringISO 8601 UTC row-creation timestamp.

Example output

{
"listing_id": "12345678",
"title": "Luxury 2BR Apartment | Marina View",
"price_amount": 2100000,
"price_currency": "AED",
"property_type": "Apartment",
"bedrooms": 2,
"bathrooms": 3,
"size_value": 1350.0,
"size_unit": "sqft",
"location": "Dubai Marina, Dubai",
"location_hierarchy": ["Dubai", "Dubai Marina"],
"agent_name": "John Smith",
"agency_name": "Example Realty",
"listing_url": "https://www.propertyfinder.ae/en/plp/buy/apartment-for-sale-dubai-marina-12345678.html",
"image_urls": ["https://example.cdn/img1.jpg"],
"posted_at": "2026-09-20T10:00:00+00:00",
"updated_at": null,
"latitude": 25.0805,
"longitude": 55.1403,
"scraped_at": "2026-09-25T05:45:00+00:00"
}

💰 Pricing

Pay-Per-Event — you pay only when these events fire:

EventUSDWhat it is
actor-start$0.20One-off warm-up charge per run
result-row$0.008Per listing row written to the dataset

Example: 1 000 results at the rates above ≈ $8.20. No subscription, no minimum, no card to start — Apify gives every new account free credit to try. Rates shown are a proposal from this Actor's spec; final pricing is confirmed at publish time.

🚧 Limitations

v1 is search-results only — no detail-page enrichment, so fields only the detail page carries (full description text, amenities list, floor plan) are out of scope for v1. location_hierarchy, latitude/longitude, and agency_name are null when PropertyFinder's own JSON doesn't carry them for a given listing. Non-UAE PropertyFinder sites (PropertyFinder operates other country portals under different domains) are out of scope.

❓ FAQ

Do I need a PropertyFinder account or API key?

No. This Actor scrapes PropertyFinder.ae's own publicly listed property data — no login, no API key.

Can I filter by price and bedrooms?

Yes — set minPrice, maxPrice, and bedrooms in the input; leave them out to get every listing matching category/purpose/location.

Why is the proxy country locked to AE?

A geo-random exit is known to return wrong-currency or wrong-inventory data on this target, so the Actor always pins a UAE residential exit internally regardless of your proxy settings.

Do you scrape individual listing detail pages?

Not in v1 — the search-results page's own JSON already carries rich structured data per listing; detail-page enrichment is a candidate for a future version.

💬 Your feedback

Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.