# Property Finder (propertyfinder.ae) Scraper (`one-api/propertyfinder-scraper`) Actor

Scrape Property Finder (propertyfinder.ae), the leading UAE property marketplace. Enriched property details by id/URL, search Buy/Rent by location, coordinates or URL, off-plan New Projects, a full agents + companies (brokerages) suite, and location autocomplete.

- **URL**: https://apify.com/one-api/propertyfinder-scraper.md
- **Developed by:** [ONE API](https://apify.com/one-api) (community)
- **Categories:** Lead generation, Real estate
- **Stats:** 3 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Property Finder (propertyfinder.ae) Scraper

Scrape **[Property Finder](https://www.propertyfinder.ae)** — the leading real-estate marketplace in the UAE (Dubai, Abu Dhabi, Sharjah and across the Gulf). Pull **Buy / Rent** listings, **off-plan New Projects**, fully-enriched **property details**, and a complete **agents + companies (brokerages)** directory, all as clean tabular rows you can sort, filter and export to CSV / Excel / JSON.

Every row also carries the full upstream JSON in the **`Raw`** column for power users.

***

### What you can scrape

Fill **any subset** of the input sections — each runs in parallel.

#### 🏠 Property Details (one per line)

Auto-detects each entry:

- A **numeric listing id** (e.g. `88748417`) → full property record
- A **propertyfinder.ae listing URL** → full property record
- An **off-plan project slug** `developer/project` (e.g. `emaar-properties/creek-haven`) or a `/new-projects/…` URL → full project record

A property record includes price, beds, baths, size, description, amenities, agent + company, permit / RERA reference, neighbourhood price insights and similar listings. A project record includes developer, payment plan, unit mix, handover date and amenities.

#### 🔎 Search Listings (one per line)

- An **area / community name** (e.g. `Dubai Marina`, `Downtown Dubai`, `Abu Dhabi`) → searches listings there
- A **propertyfinder.ae search URL** → replays that exact search

#### 📍 Search by Coordinates

`latitude,longitude` or `latitude,longitude,radiusKm` (radius in km, default 5) — e.g. `25.078,55.14,3`.

#### 🏗️ New Projects (Off-Plan)

An area name → off-plan / developer projects in that location.

#### 👤 Agents

- Area name → agents active there, or `name:<text>` → agents by name (`/agent/search`)
- Agent **id** → full agent profile **+** the properties that agent lists

#### 🏢 Companies (Agencies / Brokerages)

- Area name → companies active there, or `name:<text>` → companies by name (`/agency/search`)
- Company **id** → full company profile **+** the properties that company lists

#### 🔍 Location Autocomplete

Free text → Property Finder location records (id, name, type, coordinates).

***

### Search filters (apply to every search)

Listing type (Buy / Rent), property type, price range (`min:…,max:…`), area range (sqft), bedrooms, bathrooms, furnishing, completion status (Ready / Off-Plan), rent frequency, amenities, sort order, commercial toggle, verified-only toggle, pages and results-per-page.

***

### Output

One flat row per result. The `Type` column tells you what each row is: `property`, `project`, `agent`, `agency` or `location`. Common columns include Name, Property Type, Deal, Price, Beds, Baths, Size, Location, Agent, Company, Phone, Rating, Reviews, Cover Photo (thumbnail), Listing URL and the complete `Raw` JSON.

***

### Notes

- Coverage is the UAE (prices in **AED**, areas in **sqft**).
- “Sold” is not a Property Finder listing status (UAE sold transactions are a separate DLD dataset) — use **For Sale** / **For Rent**.
- This actor is a friendly wrapper over a hosted Property Finder API; you don't need any Property Finder account or key.

# Actor input Schema

## `property_inputs` (type: `array`):

Auto-detects each entry and calls the right endpoint:
• A numeric listing id (e.g. `88748417`) → `/details/byid`
• A `https://www.propertyfinder.ae/...` listing URL → `/details/byurl`
• An off-plan project slug `developer/project` (e.g. `emaar-properties/creek-haven`) or a `/new-projects/...` URL → `/details/project`

Each property row = one fully-enriched record (price, beds, baths, size, description, amenities, agent + company, permit/RERA, similar listings). Each project row = developer, payment plan, unit mix, handover date, amenities.

## `search_inputs` (type: `array`):

Auto-detects each entry and routes to the right `/search/*` endpoint:
• A propertyfinder.ae results URL (e.g. `https://www.propertyfinder.ae/en/search?c=1&l=50&t=1`) → `/search/byurl`
• Anything else (an area / community name, e.g. `Dubai Marina`, `Downtown Dubai`, `Abu Dhabi`) → `/search/bylocation`

The Search Filters below apply to every location search. Each hit returns one row per property listing.

## `coordinate_inputs` (type: `array`):

Radius search around a point via `/search/bycoordinates`. One point per line as `latitude,longitude` or `latitude,longitude,radiusKm` (radius in kilometres, default 5). Example: `25.078,55.14,3` searches 3 km around Dubai Marina. The Search Filters below also apply. One row per listing.

## `newproject_inputs` (type: `array`):

Search off-plan / developer projects in an area via `/search/newprojects` (Property Finder models these as a distinct category, separate from Buy/Rent). One area per line (e.g. `Dubai`, `Dubai Marina`, `Abu Dhabi`). Each row = one project (developer, starting price, bedrooms range, delivery date). Use a project's slug in the Property Details section to fetch its full record.

## `agent_search_inputs` (type: `array`):

Search individual real-estate agents (brokers) via `/agent/search`. Per line:
• An area / community name (e.g. `Dubai Marina`) → agents active in that location
• `name:<text>` (e.g. `name:Brooke`) → agents whose name matches the text

Each row = one agent (name, rating, review count, total properties, verified flag, photo).

## `agent_id_inputs` (type: `array`):

For each numeric agent id (e.g. `257163`) the actor fetches `/agent/details` (full profile: rating, reviews, contact phone/WhatsApp, claimed transactions) PLUS `/agent/listings` (the properties that agent currently lists, as property rows). Get ids from the Agent search above.

## `agency_search_inputs` (type: `array`):

Search companies / brokerages via `/agency/search`. Per line:
• An area / community name (e.g. `Dubai`) → companies active there
• `name:<text>` (e.g. `name:Elite`) → companies whose name matches

Each row = one company (name, phone, total agents, total properties, verified flag, logo).

## `agency_id_inputs` (type: `array`):

For each numeric company id (e.g. `4302`) the actor fetches `/agency/details` (full profile: license, agent count, property count, contact) PLUS `/agency/listings` (the properties that company currently lists, as property rows). Get ids from the Company search above.

## `autocomplete_inputs` (type: `array`):

Resolve a free-text place (city / community / tower) to the Property Finder location records used by Search, via `/autocomplete`. Each suggestion = one row (id, name, full name, type, slug, coordinates).

## `searchType` (type: `string`):

Buy or Rent. Applies to location/coordinate searches and to agent/company listings. (Off-plan projects use the dedicated New Projects section above.)

## `propertyType` (type: `string`):

Limit results to a property type. Leave as Any for all types. Applies to every search and to agent/company listings.

## `priceRange` (type: `string`):

Format: `min:1000000,max:5000000` — or just `min:1000000` / `max:5000000`. For rent, this is the price for the selected rent frequency.

## `areaRange` (type: `string`):

Built-up area in square feet, e.g. `min:800,max:2000` (or just one half).

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

Comma-separated bedroom counts to include, e.g. `1,2,3`. Use `0` (or `Studio`) for studios; `7` matches 7+.

## `bathrooms` (type: `string`):

Comma-separated bathroom counts to include, e.g. `2,3`.

## `furnishing` (type: `string`):

Filter by furnishing. Leave as Any for no filter.

## `completionStatus` (type: `string`):

Ready (completed) vs Off-Plan (under construction). Leave as Any for both.

## `rentFrequency` (type: `string`):

Only used for Rent searches; silently ignored for Buy. Sets the rent price period.

## `amenities` (type: `string`):

Comma-separated amenity names, e.g. `Balcony, Shared Pool, Covered Parking`. Supported: Central A/C, Maids Room, Balcony, Shared Pool, Shared Spa, Shared Gym, Concierge, Covered Parking, Water View, Landmark View, Pets Allowed, Study, Private Garden, Private Pool, Private Gym, Jacuzzi, Built-in Wardrobes, Walk-in Closet, Kitchen Appliances, Maid Service, Children's Play Area, Children's Pool, BBQ Area.

## `sortOrder` (type: `string`):

Result ordering for location/coordinate searches and listings.

## `commercial` (type: `boolean`):

Search commercial property (offices, shops, warehouses) instead of residential.

## `isVerified` (type: `boolean`):

Only return Property Finder TruCheck™-verified listings.

## `pages` (type: `integer`):

How many result pages to fetch for each location / coordinate / project / listings search (stops early when there are no more results).

## `resultCount` (type: `integer`):

Listings per page for every search (1–50).

## Actor input object example

```json
{
  "property_inputs": [
    "88748417",
    "https://www.propertyfinder.ae/en/plp/buy/apartment-for-sale-dubai-dubai-marina-princess-tower-96951153.html",
    "emaar-properties/creek-haven"
  ],
  "search_inputs": [
    "Dubai Marina"
  ],
  "coordinate_inputs": [
    "25.078,55.14,3"
  ],
  "newproject_inputs": [
    "Dubai"
  ],
  "agent_search_inputs": [
    "Dubai Marina"
  ],
  "agent_id_inputs": [
    "257163"
  ],
  "agency_search_inputs": [
    "Dubai"
  ],
  "agency_id_inputs": [
    "4302"
  ],
  "autocomplete_inputs": [
    "dubai marina"
  ],
  "searchType": "For_Sale",
  "propertyType": "",
  "priceRange": "",
  "areaRange": "",
  "bedrooms": "",
  "bathrooms": "",
  "furnishing": "All",
  "completionStatus": "Any",
  "rentFrequency": "Yearly",
  "amenities": "",
  "sortOrder": "Featured",
  "commercial": false,
  "isVerified": false,
  "pages": 1,
  "resultCount": 25
}
```

# 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 = {
    "property_inputs": [
        "88748417",
        "https://www.propertyfinder.ae/en/plp/buy/apartment-for-sale-dubai-dubai-marina-princess-tower-96951153.html",
        "emaar-properties/creek-haven"
    ],
    "search_inputs": [
        "Dubai Marina"
    ],
    "coordinate_inputs": [
        "25.078,55.14,3"
    ],
    "newproject_inputs": [
        "Dubai"
    ],
    "agent_search_inputs": [
        "Dubai Marina"
    ],
    "agent_id_inputs": [
        "257163"
    ],
    "agency_search_inputs": [
        "Dubai"
    ],
    "agency_id_inputs": [
        "4302"
    ],
    "autocomplete_inputs": [
        "dubai marina"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("one-api/propertyfinder-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 = {
    "property_inputs": [
        "88748417",
        "https://www.propertyfinder.ae/en/plp/buy/apartment-for-sale-dubai-dubai-marina-princess-tower-96951153.html",
        "emaar-properties/creek-haven",
    ],
    "search_inputs": ["Dubai Marina"],
    "coordinate_inputs": ["25.078,55.14,3"],
    "newproject_inputs": ["Dubai"],
    "agent_search_inputs": ["Dubai Marina"],
    "agent_id_inputs": ["257163"],
    "agency_search_inputs": ["Dubai"],
    "agency_id_inputs": ["4302"],
    "autocomplete_inputs": ["dubai marina"],
}

# Run the Actor and wait for it to finish
run = client.actor("one-api/propertyfinder-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 '{
  "property_inputs": [
    "88748417",
    "https://www.propertyfinder.ae/en/plp/buy/apartment-for-sale-dubai-dubai-marina-princess-tower-96951153.html",
    "emaar-properties/creek-haven"
  ],
  "search_inputs": [
    "Dubai Marina"
  ],
  "coordinate_inputs": [
    "25.078,55.14,3"
  ],
  "newproject_inputs": [
    "Dubai"
  ],
  "agent_search_inputs": [
    "Dubai Marina"
  ],
  "agent_id_inputs": [
    "257163"
  ],
  "agency_search_inputs": [
    "Dubai"
  ],
  "agency_id_inputs": [
    "4302"
  ],
  "autocomplete_inputs": [
    "dubai marina"
  ]
}' |
apify call one-api/propertyfinder-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/iFKod73X9NzeKh0js/builds/8vRSmxystFhWqKufw/openapi.json
