Property Finder Scraper | UAE Saudi Egypt Bahrain Qatar avatar

Property Finder Scraper | UAE Saudi Egypt Bahrain Qatar

Pricing

from $2.20 / 1,000 results

Go to Apify Store
Property Finder Scraper | UAE Saudi Egypt Bahrain Qatar

Property Finder Scraper | UAE Saudi Egypt Bahrain Qatar

Scrape Property Finder UAE, Saudi Arabia, Egypt, Bahrain & Qatar listings for sale or rent. Extract prices, beds, RERA, agents & images. Property Finder API alternative.

Pricing

from $2.20 / 1,000 results

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

3 days ago

Last modified

Share

Property Finder Scraper — UAE, Saudi, Egypt, Bahrain & Qatar

Scrape Property Finder sale and rent listings across the Middle East — then download structured real estate data as Excel, CSV, or JSON.

This Actor is a practical Property Finder API alternative for market research, investor screening, rental comps, and lead lists. Choose a market such as UAE or Saudi Arabia, pick Buy, Rent, or Commercial, and get listing rows with prices, beds, baths, area, RERA / permits, agents, brokers, amenities, and photos when present on the detail page.

  • Pull homes for sale and apartments for rent from Property Finder UAE, Saudi Arabia, Egypt, Bahrain, and Qatar
  • Enrich search results with detail-page fields (description, amenities, RERA, agent / broker, images)
  • Filter by property type (apartment, villa, office-space, …) — or paste known search / detail URLs
  • Export to Excel / CSV / JSON, or connect Make, n8n, Zapier, Python, or MCP
  • Pay per event — Actor start + each Dataset listing; no subscription

Worker URL is config, not code: the Actor reads WORKER_BASE_URL from Actor environment variables (plus optional per-run workerBaseUrl). If you migrate the worker to a new host, update WORKER_BASE_URL (and WORKER_AUTH if the API key changes) in Apify Console — no Actor code change required. Set WORKER_PROVIDES_PROXY=1 when the worker supplies its own PROXY_URL.

Free Apify plan limits (set by this Actor's developer)

LimitFree Apify planPaid Apify plan
Runs of this Actor10 totalUnlimited
Results per runUp to 1,000 (maxItems)Up to schema max (2,000)

These limits are set by the Actor developer, not Apify. Hitting the run cap finishes with a clear status message — it is not a platform bug. Upgrade to a paid Apify plan for unlimited runs.


Need a dedicated scraper for one website?

This Actor is the general tool for protected public pages. If you already have one specific site and a field list, a dedicated scraper is faster and more stable: listing + detail, your export format, delivered to your Apify account or as a standalone runnable client.

I confirm the tier before you pay. The clock starts after that confirmation.

Start here: Submit a custom scraper request

Starter $50Dedicated $100Hard target $200–999
Site1 simple anti-bot public site1 medium anti-bot public siteCloudflare / aggressive anti-bot / custom parser
ScopeFull listing + detail fieldsListing + detail + pagination, your field listAgreed fields, repeatable runs
DeliveryCSV/JSON · Apify Actor or standalone runnable client (script/CLI)Same, plus a sample run and short instructionsFeasibility first, then build
Time24 hours after we confirm the URL is in scope48 hours after confirmationQuoted after feasibility
Fixes30 days for small public-layout changes30 daysScoped in the quote

Hard-target sites are not a 100% uptime promise. You get a dedicated parser that can be re-run on the agreed fields. If the URL is not feasible, you get a refund or pay an assessment fee only — you will know before the build starts.

Not in Starter/Dedicated: login-walled data, native APK / Windows installer / full web apps, or two-year maintenance. Those are a separate quote.


What does the Property Finder Scraper do?

It turns a Property Finder search into a clean Apify Dataset of property listings across five MENA markets.

Under the hood, the Actor:

  1. Builds the Property Finder search URL for your market, channel, and property type
  2. Collects listing cards from the search results page (#__NEXT_DATA__)
  3. Opens detail pages to enrich each row with description, amenities, RERA, and media
  4. Writes normalized records you can download or push into automations

Residential proxy matched to the market is recommended (prefilled). Fetching uses curl_cffi TLS impersonation with Playwright Chromium fallback — plain requests / bare curl are blocked by CloudFront.


What data can you extract from Property Finder?

Data pointBuy / RentCommercial
Title & listing URL
List price or rent + period
Beds / baths / size (sqft)
Plot size & plot dimensions
Payment methods / cheques / service fee
Property details map (type, age, …)
Property type & channel
Address / location tree
GPS coordinates (when shown)
Agent email & phone
Broker email & phone
Contact options (email / phone / WhatsApp)
RERA / permit fields
Amenities & photo gallery
Platform tags (verified, featured, …)
Completion / furnished

Every Dataset row also includes scrapedAt and source = propertyfinder. Top-level convenience fields: agentEmail, agentPhone, brokerEmail, brokerPhone. An OUTPUT / RUN_SUMMARY record in the key-value store reports counts and warnings.

Out of scope: Turkey (zingat.com), login walls, map APIs, lead-form submits, Partner API — see TECH_DEBT.md.

Fetching uses curl_cffi TLS impersonation with optional Playwright browser fallback when CloudFront blocks.


Lead & contact fields

Every listing item includes the following structured lead/contact fields (additive to the listing columns above). These keys follow a uniform lead-output schema so they can be consumed across actors.

FieldTypeMeaning
phones[{value, type, e164?}] or nullAgent and broker phone numbers plus WhatsApp numbers from contact_options (phone, whatsapp). Property Finder exposes these already-visible in the __NEXT_DATA__ hydration JSON on both SRP and LDP. Sample: +971551307057.
emails[{value, type}] or nullAgent and broker email addresses from agent.email, broker.email, and contact_options[email]. Sample: adam@edenharbour.com.
address{full, street, unit, locality, region, postalCode, country} or nullBroker office address parsed from broker.address (e.g. "Office 2, Building 1, Business Bay, 3, Dubai, PO Box 0"). unit (门牌/apartment number) is 本站无 — Property Finder never publishes a door/unit number, only area-level location (building/community/city).
geo{lat, lng} or nullListing coordinates from location.coordinates in the hydration JSON (e.g. 25.0987, 55.1400). Supplements the address, not a replacement.
person{name, role?} or nullAgent name (e.g. "Adam Eden"). role (agent position, e.g. "Founder") is populated on LDP/Agent pages but 未验证 on SRP-only items.
org{name, id, license?} or nullBrokerage name (e.g. "EDEN HARBOUR REAL ESTATE L.L.C"), broker id, and RERA license number.
web{website, socials[]} or nullBroker website and agent social links (LinkedIn). socials is 未验证 on SRP/LDP — LinkedIn only appears on the Agent profile page and is sparsely filled (~1 in 5 agents).
leadSourceenum: search|detail|entity|contact|reveal-xhrOrigin surface for the lead data. SRP-only items → search; items enriched from the detail page (scrapeDetails: true) → detail.
leadRevealenum: visible|click|xhr|gated|image|absentHow the lead was obtained. Property Finder has no click-reveal controls — all contact data is already-visible. Every item is visible.
leadAbsencesobject/map or nullSub-field absence reasons. For Property Finder: address.unit = 本站无 (door numbers never published), web.socials = 未验证 (LinkedIn only on Agent page, sparsely filled), person.role = 未验证 (SRP-only items lack agent position).

Reveal cost

Property Finder exposes all contact information (phone, WhatsApp, email, address, geo, agent, broker) already-visible in the __NEXT_DATA__ hydration JSON on both the search results page (SRP) and the listing detail page (LDP). There are no "show phone" / "reveal email" click-reveal controls site-wide.

  • No extra HTTP requests are needed to reveal contact data — it is present in the initial page fetch.
  • No click simulation or XHR-after-click is required.
  • Enabling scrapeDetails: true opens the LDP for each listing (one additional GET per item) to supplement SRP data with description, amenities, RERA/permit fields, agent ratings, and JSON-LD PostalAddress/telephone. This is the only per-item cost beyond the SRP fetch.
  • Run time scales linearly with maxItems × scrapeDetails (one extra request per detail page). Proxy usage is proportional to the number of pages fetched.

Honest limitations

The following lead sub-fields are not available or not verified on Property Finder, and the reasons are recorded in each item's leadAbsences:

Sub-fieldStatusReason
address.unit (门牌/door number)本站无Property Finder never publishes apartment/unit/door numbers — only building, community, and city-level location. This is a site design choice, not a gate.
web.socials (agent LinkedIn/social)未验证LinkedIn links appear only on the Agent profile page (agent.linkedinAddress), not on SRP or LDP. ~1 in 5 agents fill this field. The mission smoke did not scrape Agent pages, so socials are not verified in dataset output.
person.role (agent position)未验证 (SRP-only)Agent position (e.g. "Founder") is available on LDP/Agent pages but absent from SRP-only items. Items enriched with scrapeDetails: true include role.
SA/EG/QA/BH detail surfaces未验证The coverage matrix marks these markets' detail pages as 未验证 — they share the same Next.js codebase and are presumed isomorphic, but the mission smoke only verified AE detail pages.
Login-gated dataN/AProperty Finder has no login wall for listing contact data; all leads are guest-accessible. Login-gated fields do not exist for this site.
Lead-form submitsOut of scopeCall/WhatsApp/Email lead forms are never clicked or submitted (mission Chrome discipline).

What you can do with it

1. Scrape apartments for sale in the UAE

Set market to AE, channel to BUY, and propertyType to apartment. Get structured rows with price, beds, baths, size, address, and a direct listing URL — ready for comps or investor shortlists.

2. Scrape rental villas and apartments

Set channel to RENT. Rows include rent amount, pricePeriod (yearly / monthly), beds/baths, and furnished status when present.

3. Scrape commercial offices and warehouses

Set channel to COMMERCIAL_BUY or COMMERCIAL_RENT, and propertyType to office-space, warehouse, retail, or shop.

4. Enrich known Property Finder detail URLs

Paste one or more Property Finder detail URLs into Start URLs to skip search and fetch full LDP propertyResult directly.

5. Feed real estate data into automations

Schedule the Actor and send the Dataset to Sheets, Slack, CRM, Make, n8n, Zapier, or an AI agent via Apify MCP / API.


More Actors like this

Looking for another property portal, or a scraper outside real estate? Use a specialized Actor when one exists — structured fields, better coverage, usually lower cost. Use this Actor for Property Finder buy / rent / commercial search and detail pages across AE / SA / EG / BH / QA.

Similar real estate Actors

Prefer another specialized scraper?

Jobs & Freelance

E-commerce

Travel & Stays

Social & Content

Ads Intelligence

Local & Maps

General Tools

→ See the full catalog in Related Actors below, or browse apify.com/lentic_clockss.


How to scrape Property Finder (no code required)

  1. Click Try for free
  2. Choose a market (AE / SA / EG / BH / QA)
  3. Choose a channel (Buy, Rent, Commercial buy, Commercial rent)
  4. Optionally set property type, max listings, and whether to open detail pages
  5. Keep Apify RESIDENTIAL proxy enabled (country matched to the market)
  6. Click Start — open the Dataset tab when the run finishes

Start with maxItems: 5–10 to verify the market, then scale up.


Markets covered

CodeSiteCurrencyProxy country
AEpropertyfinder.aeAEDAE
SApropertyfinder.saSARSA
EGpropertyfinder.egEGPEG
BHpropertyfinder.bhBHDBH
QApropertyfinder.qaQARQA

Use markets: ["BH", "QA"] or market: "all" for multi-country runs (maxItems is fair-split). Turkey (zingat.com) is out of scope.


Pricing — how much does it cost to scrape Property Finder?

Pay per event. No subscription.

EventPriceWhen charged
apify-actor-start$0.005When a normal run starts (scaled by allocated memory GB)
apify-default-dataset-item (result)$2.50 / 1,000 ($0.0025 each)Each listing written to the default Dataset

User pays platform usage costs: Yes — compute, residential proxy, and other platform usage are billed to the user in addition to event charges.

Example product charges (events only):

ScenarioApprox. event charge
Canary: 10 listings$0.005 + 10 × $0.0025 = $0.030
City scan: 100 listings$0.005 + $0.25 = $0.255
1,000 listings$0.005 + $2.50 = $2.505

Platform usage (especially residential proxy) is separate and depends on run duration and memory.


Input

FieldDescription
market / marketsAE, SA, EG, BH, QA, or all
channelBUY, RENT, COMMERCIAL_BUY, COMMERCIAL_RENT
propertyType / propertyTypese.g. apartment, villa, office-space (all = every type in channel)
locationIdOptional Property Finder l id; omit for national search
maxItems / maxPagesCaps (1–2000 / 1–100; free users capped at 1,000 maxItems/run)
scrapeDetailsEnrich each card from the listing detail page
startUrlsOptional SRP or LDP URLs (overrides market/channel/type)
proxyConfigurationApify RESIDENTIAL when Actor mints proxy; ignored if WORKER_PROVIDES_PROXY=1
workerBaseUrlOptional per-run worker origin override (Advanced)

Open the Input tab in Console for the full form and tooltips.


Output example

You can download the Dataset as JSON, CSV, Excel, or HTML.

{
"id": "116374983",
"url": "https://www.propertyfinder.ae/en/plp/buy/apartment-for-sale-abu-dhabi-masdar-city-oasis-residences-oasis-2-116374983.html",
"source": "propertyfinder",
"market": "AE",
"channel": "BUY",
"category": "apartment",
"title": "Bright & Spacious | Prime Location | Stables View",
"price": "AED 1,310,000",
"priceAmount": 1310000,
"currency": "AED",
"numBedrooms": 2,
"numBathrooms": 2,
"size": 1200,
"sizeUnit": "sqft",
"propertyType": "Apartment",
"address": "Oasis 2, Oasis Residences, Masdar City, Abu Dhabi",
"sourceLayer": "srp+ldp",
"scrapedAt": "2026-07-19T02:00:00+00:00"
}

Core fields include id, url, market, channel, category, title, price / priceAmount / currency, beds/baths/size, address, agent, broker, rera, amenities, images, plus scrapedAt and source.


Live View endpoints

When Standby / Live View is enabled, the Actor exposes a small OpenAPI surface for readiness and discovery:

EndpointPurpose
GET /Readiness / service info
GET /healthHealth check
GET /input-exampleLow-cost example input
GET /openapi.jsonDeployed OpenAPI document

Scraping still runs through a normal Actor run — Live View does not scrape Property Finder by itself.


Connect from code

Actor ID: lentic_clockss/property-finder-uae-scraper

from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("lentic_clockss/property-finder-uae-scraper").call(
run_input={
"market": "AE",
"channel": "BUY",
"propertyType": "apartment",
"maxItems": 10,
"proxyConfiguration": {
"useApifyProxy": True,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "AE",
},
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item.get("title"), item.get("priceAmount"), item.get("url"))

Use the same Actor ID in Make, n8n, Zapier, or Apify MCP for AI-agent workflows.


FAQ

Why did my free-plan run stop after 10 runs?

Free Apify plan users get 10 runs of this Actor and up to 1,000 results per run. These limits are set by the Actor developer (not Apify). When you hit the run cap, the run finishes with a clear status message — it is not a platform bug. Upgrade to a paid Apify plan for unlimited runs.

Is there a free Property Finder API?

Property Finder does not offer a simple public listing API for bulk export. This Actor gives you structured sale and rent data through Apify runs, Dataset exports, and integrations.

Can I scrape both residential and commercial listings?

Yes. Use channel BUY / RENT for residential, or COMMERCIAL_BUY / COMMERCIAL_RENT for commercial. Run twice (or schedule two tasks) if you need both in one pipeline.

Can I scrape Bahrain and Qatar in one run?

Yes. Set markets: ["BH", "QA"] with a shared channel and property type. maxItems is fair-split across search URLs.

Property Finder sits behind CloudFront / AWS WAF. Automation-style clients often get 403. Apify RESIDENTIAL with a country matched to the market (AE / SA / EG / BH / QA) is recommended for reliable cloud runs.

Can I schedule daily Property Finder scrapes?

Yes. Create an Apify schedule with the same input and send the Dataset to Sheets, Slack, a CRM, or your pipeline.

Use this Actor for legitimate research and analysis only. Respect Property Finder terms of use and applicable law. Results may include publicly displayed listing information; do not use personal data without a lawful basis. Call / WhatsApp / Email lead forms are not clicked.


All 77 public Actors from [lentic_clockss]. Click a name to open the Store detail page.

Jobs & Freelance

Real Estate

E-commerce

Travel & Stays

Social & Content

Ads Intelligence

Local & Maps

General Tools

→ Browse the full profile: apify.com/lentic_clockss