Property Finder Scraper | UAE Saudi Egypt Bahrain Qatar avatar

Property Finder Scraper | UAE Saudi Egypt Bahrain Qatar

Pricing

from $2.20 / 1,000 listings

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 listings

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

4 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
Rows per runUp to 200Up to your maximum total charge

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 rows from the Property Finder JSON search API
  3. Optionally enriches rows with batched detail data
  4. Writes normalized records you can download or push into automations

Egress is supplied by the worker control plane and matched to the market; no Apify proxy configuration is used. Fetching uses the Property Finder JSON API.


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 adds detail fields with a batched properties?ids= request per result page. It is off by default.
  • Run time and request use increase with the number of rows and detail batches.

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. No proxy setup is required; the worker receives control-plane egress
  6. Click Start — open the Dataset tab when the run finishes

maxItems (also accepted as maxResults) is the most listing rows for each start URL, or for the configured search when startUrls is empty. It defaults to 70; larger values are collected in parts of at most 70. Markets and property types inside one configured search share that input's allowance. The whole run stops at your maximum total charge; free Apify plans allow 200 rows per run and 10 runs. Start with maxItems: 5–10 to verify the market, then scale up.


Markets covered

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

Use markets: ["BH", "QA"] or market: "all" for multi-country runs. Those markets share the configured search's maxItems allowance. 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 — Apify compute is billed to the user in addition to event charges. This Actor does not use an Apify proxy.

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 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 / maxPagesUp to 2,000 rows per start URL/configured search (default 70; collected in parts of at most 70) / 1–100 pages. The run stops at the maximum total charge; free plan: 200 rows/run.
scrapeDetailsAdd batched detail fields; off by default
startUrlsOptional SRP or LDP URLs (overrides market/channel/type)
proxyConfigurationLegacy saved-input field; ignored. Egress comes from the worker control plane.
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,
}
)
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 200 rows 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. The markets share the configured search's maxItems allowance.

How is network egress handled?

The worker control plane supplies market-matched egress. The Actor does not use Apify proxy products and no proxy input is required.

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