# PropertyFinder Dubai & Abu Dhabi Scraper - Sale & Rental (`scrapesolutions/propertyfinder-dubai-abudhabi-scraper`) Actor

Extracts sale, rental, and commercial property listings from PropertyFinder.ae across Dubai and Abu Dhabi: price, beds, baths, size, location, agent contact and RERA permit. Supports zone selection or custom pasted search URLs.

- **URL**: https://apify.com/scrapesolutions/propertyfinder-dubai-abudhabi-scraper.md
- **Developed by:** [scrapesolutions](https://apify.com/scrapesolutions) (community)
- **Categories:** Real estate, Automation
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $2.50 / 1,000 listings

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 🏠 PropertyFinder Dubai & Abu Dhabi Scraper — Real Estate Data & Leads

Extract clean, structured property listings from [PropertyFinder.ae](https://www.propertyfinder.ae) — the UAE's leading real estate portal — in minutes. This PropertyFinder scraper is built for brokers, agencies, investment funds, and relocation teams who need reliable, up-to-date Dubai and Abu Dhabi market data without copy-pasting listings by hand.

✅ **5.0★ rated** · Validated against 976 live listings across 69 zones with zero failed runs · Pay-per-result, no subscription

### 👤 Who this is for

- **Independent brokers** tracking specific buildings or communities
- **Real estate agencies** monitoring multiple projects across Dubai and Abu Dhabi
- **Investment funds & PropTech teams** analyzing large volumes of PropertyFinder listings for market research
- **Relocation agencies** needing up-to-date rental inventory for corporate clients

### 🚀 Quick start

1. **Pick your areas** — choose from every Dubai and Abu Dhabi zone, or leave the default ("All zones") to cover the whole city.
2. **Filter** by sale/rent, residential/commercial, bedrooms, price range, and property size — all dropdowns, no coding required.
3. **Set a result limit** to control cost, and choose how results are sorted (newest first by default).
4. Optionally turn on **contact & RERA extraction** for agent/agency details on top of the listing data.
5. Run the Actor and export as JSON, CSV, Excel, or any format Apify supports.

Already built a search on propertyfinder.ae exactly how you want it? Skip the dropdowns — paste that URL into "Custom search URLs" and this Actor scrapes exactly that, same filters and all.

### 💡 Why use this PropertyFinder scraper

- 📞 **Direct contact, not just listings.** Agent name, phone, WhatsApp, agency details, and RERA permit number — everything you need to follow up on a lead, not just browse one.
- 💰 **Simple, honest pricing.** Pay per result, one flat rate — no hidden multipliers for proxies, contact details, or monitoring. Other Dubai property scrapers stack ×5 for residential proxies or ×2 for contact details; what you see here is what you pay.
- 🗺️ **Full coverage.** All 89 Dubai areas and 19 Abu Dhabi areas. Residential and commercial. Sale and rent.
- 🔗 **Your filters, respected.** Paste a pre-filtered propertyfinder.ae search URL and get exactly that — same price range, beds, and filters you set.
- ⚖️ **No pay-to-play bias.** Results default to newest listings first, not "Featured" — PropertyFinder's own default, which favors whoever paid for visibility.
- ✅ **Reliable.** Tested against the live site with 100% success across every run so far, including a 976-listing run spanning 69 different zones.

### 📊 What you get — one row per property

| Category | Fields |
|---|---|
| Essentials | Photo, listing URL, price (AED), title, property type, sale/rent, residential/commercial |
| Location | Zone, community, building, latitude & longitude |
| Specs | Bedrooms, bathrooms, size (sqft & sqm), price per sqft |
| Market signals | Listed date, days on market, verified status, completion status (ready/off-plan), amenities |
| Contact *(optional)* | Agent name, email, BRN, phone, WhatsApp, agency name & phone, agency license |
| Compliance *(optional)* | RERA permit number, RERA validation link |

35 fields per listing.

<details>
<summary>📄 Example output (click to expand)</summary>

```json
{
  "photo_url": "https://static.shared.propertyfinder.ae/media/images/listing/.../668x452.jpg",
  "url": "https://www.propertyfinder.ae/en/plp/rent/apartment-for-rent-dubai-jumeirah-village-circle-....html",
  "price_aed": 110000,
  "title": "Fully Furnished | Upgraded | Best Location",
  "property_type": "Apartment",
  "listing_type": "rent",
  "zone": "Jumeirah Village Circle",
  "community": "District 11",
  "building": "Binghatti Gardenia",
  "bedrooms": 1,
  "bathrooms": 1,
  "area_sqft": 645,
  "price_per_sqft": 170.5,
  "usage_type": "Residential",
  "furnished": "Yes",
  "is_verified": "Yes",
  "listed_date": "2026-08-01T19:01:47Z",
  "days_on_market": 1
}
```

*(Contact and RERA fields appear too when "Extract contact details" is on — omitted here for brevity.)*

</details>

### 💰 Pricing — no surprises

Pay only for the results you get — no subscription, no minimum spend, no proxy/detail multipliers.

| You need | You pay |
|---|---|
| 1,000 listings | $2.50 |
| 10,000 listings | $25.00 |
| 100,000 listings | $250.00 |

New users get a free trial credit to check PropertyFinder data quality before running a paid job.

### ❓ FAQ

**Do I need to know how to code?** No — pick areas and filters from dropdowns, or paste a search URL from the site. Export straight to JSON/CSV/Excel, or pull results via Apify's API if you do want to integrate it into your own system.

**How is this different from browsing PropertyFinder.ae myself?** This Actor turns hundreds or thousands of listings into a structured dataset in minutes, with fields (coordinates, days on market, price per sqft) that aren't visible on the site itself, and can re-run on a schedule so you always have current data.

**Can I track price changes over time?** Not yet built in — for now, re-run the Actor on a schedule (Apify supports scheduled runs) and compare exports between runs.

**What if PropertyFinder changes its site structure?** This Actor is actively maintained. Open a ticket on the Issues tab if you see missing or malformed data.

### 🛟 Support

Found an issue or have a feature request for this PropertyFinder scraper? Open a ticket on the Issues tab — this Actor is actively maintained.

***

**Ready to see your first results?** Run it now with your free trial credit — no commitment, no card charge until you're happy with the data.

# Actor input Schema

## `dubaiCoverage` (type: `string`):

All zones = scrape every Dubai area (default). None = skip Dubai entirely. Custom = pick specific areas below.

## `dubaiZones` (type: `array`):

Only used when Dubai coverage is set to Custom. Ignored if 'Custom search URLs' is filled in.

## `abuDhabiCoverage` (type: `string`):

All zones = scrape every Abu Dhabi area (default). None = skip Abu Dhabi entirely. Custom = pick specific areas below.

## `abuDhabiZones` (type: `array`):

Only used when Abu Dhabi coverage is set to Custom. Ignored if 'Custom search URLs' is filled in.

## `listingTypes` (type: `array`):

Whether to scrape sale listings, rental listings, or both.

## `usageTypes` (type: `array`):

Residential (apartments) and/or Commercial (offices) listings. Commercial is a separate PropertyFinder category, not a filter on residential -- it covers office space specifically, not the full commercial taxonomy (retail, warehouses, etc).

## `bedrooms` (type: `string`):

Optional. Filter to a specific bedroom count. Leave empty to scrape all bedroom counts (no filter applied). Ignored if 'Custom search URLs' is filled in.

## `minPrice` (type: `string`):

Optional. Minimum price in AED. Leave empty for no minimum. Ignored if 'Custom search URLs' is filled in.

## `maxPrice` (type: `string`):

Optional. Maximum price in AED. Leave empty for no maximum. Ignored if 'Custom search URLs' is filled in.

## `minArea` (type: `string`):

Optional. Minimum area in square feet. Leave empty for no minimum. Ignored if 'Custom search URLs' is filled in.

## `maxArea` (type: `string`):

Optional. Maximum area in square feet. Leave empty for no maximum. Ignored if 'Custom search URLs' is filled in.

## `startUrls` (type: `array`):

Optional. Paste PropertyFinder.ae search result URLs (with your own filters already applied) here. If provided, these are scraped instead of Zones/Listing types above.

## `sortBy` (type: `string`):

Order in which listings are extracted. 'Featured' is PropertyFinder's own default, which favors paid/boosted listings -- if maxItems cuts the run short, you'll mostly get whichever agencies paid for visibility. 'Newest' gives a more representative sample of the actual market.

## `maxItems` (type: `integer`):

Maximum number of listings to extract in this run. Controls run cost and is the hard cap for Pay-Per-Event charging. Set to 0 for unlimited.

## `useApifyProxy` (type: `boolean`):

Route requests through Apify residential proxies (recommended, required to avoid IP blocks in production).

## `scrapeDetails` (type: `boolean`):

Visit each listing's detail page to extract agent name/email, agency name/phone/license, direct phone, WhatsApp and RERA permit number. Slower and more expensive (one extra page load per listing) since this data isn't in the search results.

## `calculateRentalYield` (type: `boolean`):

Cross-matches sale listings against comparable rent listings (same building, bedrooms, similar size) scraped in the same run to estimate gross rental yield and how each listing's price per sqft compares to its zone average. Forces both Sale and Rent to be scraped regardless of the Listing types filter. Only sale listings that found a real rent comparable are returned -- typically a minority (around 1 in 4) of what was scraped, not the full set. Not supported together with Custom search URLs.

## Actor input object example

```json
{
  "dubaiCoverage": "All zones",
  "dubaiZones": [
    "Jumeirah Village Circle",
    "Business Bay",
    "Downtown Dubai",
    "Dubai Marina",
    "Dubai Land Residence Complex",
    "Arjan",
    "Dubai Hills Estate",
    "Dubai Islands",
    "Dubai Creek Harbour (The Lagoons)",
    "Mohammed Bin Rashid City",
    "Palm Jumeirah",
    "Dubai South (Dubai World Central)",
    "Majan",
    "Jumeirah Lake Towers",
    "Al Furjan",
    "Jumeirah Village Triangle",
    "Al Jaddaf",
    "Dubai Harbour",
    "Dubai Sports City",
    "Dubai Production City (IMPZ)",
    "Motor City",
    "Maritime City",
    "Meydan",
    "Dubai Science Park",
    "Town Square",
    "Bukadra",
    "Jumeirah Beach Residence",
    "Al Satwa",
    "Al Warsan",
    "City Walk",
    "Dubai Investment Park (DIP)",
    "Damac Hills",
    "Dubai Land",
    "Dubai Silicon Oasis",
    "Mina Rashid",
    "Downtown Jebel Ali",
    "Wasl Gate",
    "Nad Al Sheba",
    "Dubai Studio City",
    "DIFC",
    "Umm Suqeim",
    "Zabeel",
    "Ras Al Khor",
    "International City",
    "Damac Lagoons",
    "Liwan",
    "Jumeirah",
    "Expo City",
    "City of Arabia",
    "Damac Hills 2",
    "Bur Dubai",
    "Dubai Design District",
    "Al Wasl",
    "Jebel Ali",
    "Discovery Gardens",
    "Dubai Industrial City",
    "Sheikh Zayed Road",
    "Bluewaters",
    "Falcon City of Wonders",
    "Remraam",
    "The Views",
    "Jumeirah Islands",
    "Greens",
    "Dubai Media City",
    "Dubai Internet City",
    "Al Sufouh",
    "Barsha Heights (Tecom)",
    "Palm Jebel Ali",
    "Culture Village",
    "Living Legends",
    "Mirdif",
    "Al Barari",
    "Rukan",
    "Jumeirah Golf Estates",
    "Al Barsha",
    "Nadd Al Hammar",
    "Al Safa",
    "The Hills",
    "Dubai Festival City",
    "Al Muhaisnah",
    "The World Islands",
    "Al Quoz",
    "World Trade Center",
    "Mudon",
    "Dubai Waterfront",
    "Deira",
    "Sobha Sanctuary",
    "Al Qusais",
    "The Valley"
  ],
  "abuDhabiCoverage": "All zones",
  "listingTypes": [
    "sale",
    "rent"
  ],
  "usageTypes": [
    "Residential"
  ],
  "startUrls": [],
  "sortBy": "Newest",
  "maxItems": 200,
  "useApifyProxy": true,
  "scrapeDetails": false,
  "calculateRentalYield": false
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesolutions/propertyfinder-dubai-abudhabi-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("scrapesolutions/propertyfinder-dubai-abudhabi-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call scrapesolutions/propertyfinder-dubai-abudhabi-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapesolutions/propertyfinder-dubai-abudhabi-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/2bKgafcIoiQgbYRMn/builds/J8koGwtTG2tcniw1u/openapi.json
