# PropertyFinder UAE Scraper (`crawlerbros/property-finder-scraper`) Actor

Scrape property listings from PropertyFinder.ae - UAE's leading real estate portal covering Dubai, Abu Dhabi, Sharjah and more. Extract sale and rental listings with prices, locations, images, agent info, and amenities.

- **URL**: https://apify.com/crawlerbros/property-finder-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Real estate, Automation, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 UAE Scraper

Scrape property listings from [PropertyFinder](https://www.propertyfinder.ae/) — the UAE's #1 real estate portal. Extract sale and rental listings from Dubai, Abu Dhabi, Sharjah, and all other emirates with full details including prices, images, agent info, amenities, and GPS coordinates.

### What data you can extract

- **Property ID, title, and full description**
- **Property type** (Apartment, Villa, Townhouse, Penthouse, Office, Shop, etc.)
- **Offering type** (sale or rent)
- **Price** in AED with rent period (yearly/monthly)
- **Bedrooms and bathrooms**
- **Area** in square feet
- **Furnishing status**
- **City/emirate, community, and full address**
- **GPS coordinates** (latitude/longitude)
- **Agent name and agency/broker name**
- **Property images** (multiple photos)
- **Amenities** (pool, gym, parking, etc.)
- **Listing URL** on PropertyFinder
- **Listed date**

### Scraping modes

| Mode | Description |
|---|---|
| `forSale` | Scrape properties for sale |
| `forRent` | Scrape properties for rent |
| `byUrl` | Scrape specific listing URLs directly |

### Input configuration

| Field | Type | Description |
|---|---|---|
| `mode` | Select | Scraping mode (forSale / forRent / byUrl) |
| `emirate` | Select | Filter by emirate (Dubai, Abu Dhabi, Sharjah, etc.) |
| `propertyType` | Select | Filter by property type (Apartment, Villa, Townhouse, etc.) |
| `minBedrooms` | Number | Minimum number of bedrooms (0 = studio) |
| `minPrice` | Number | Minimum price in AED |
| `maxPrice` | Number | Maximum price in AED |
| `furnished` | Select | Furnishing filter (Furnished / Unfurnished / Semi-Furnished) |
| `propertyUrls` | List | Direct listing URLs (for byUrl mode) |
| `maxItems` | Number | Maximum number of results (1–1000, default 50) |

### Supported emirates

Dubai, Abu Dhabi, Sharjah, Ajman, Ras Al Khaimah, Fujairah, Umm Al Quwain

### Example input

```json
{
  "mode": "forSale",
  "emirate": "dubai",
  "propertyType": "AP",
  "minBedrooms": 2,
  "maxPrice": 3000000,
  "maxItems": 50
}
````

### Example output

```json
{
  "propertyId": "12345678",
  "title": "Spacious 2BR Apartment in Downtown Dubai",
  "description": "Beautiful apartment with Burj Khalifa views.",
  "propertyType": "Apartment",
  "offeringType": "sale",
  "price": 2500000,
  "currency": "AED",
  "bedrooms": 2,
  "bathrooms": 2,
  "areaSqft": 1200.5,
  "furnished": "Furnished",
  "city": "Dubai",
  "community": "Downtown Dubai",
  "fullAddress": "Downtown Dubai, Dubai",
  "latitude": 25.1972,
  "longitude": 55.2796,
  "agentName": "Ahmed Al-Hassan",
  "brokerName": "Emaar Properties",
  "imageUrls": [
    "https://images.propertyfinder.ae/prop/12345678/img1.jpg"
  ],
  "amenities": ["Swimming Pool", "Gym", "Parking", "Security"],
  "listingUrl": "https://www.propertyfinder.ae/en/property/12345678",
  "listedDate": "2024-01-15",
  "recordType": "property",
  "sourceUrl": "https://www.propertyfinder.ae/en/search?c=1&l[]=2",
  "scrapedAt": "2026-06-01T12:00:00+00:00"
}
```

### Property types available

Apartment, Villa, Townhouse, Penthouse, Full Floor, Land/Plot, Bulk Units, Office, Shop, Warehouse/Storage, Farm, Hotel Apartment

### Use cases

- **UAE real estate market research** — track prices across all emirates and property types
- **Investment analysis** — identify undervalued areas and price trends in Dubai/Abu Dhabi
- **Rental yield calculation** — compare sale prices against rental rates for the same areas
- **Agent and broker benchmarking** — analyze listing volumes by agency
- **Expat relocation research** — find rental properties matching specific requirements
- **Portfolio monitoring** — track value of properties in specific communities

### FAQ

**Does it require login or API keys?**
No. All listing data is extracted from publicly rendered pages.

**How many listings are available?**
PropertyFinder has tens of thousands of active listings across the UAE. Dubai alone has 40,000+ active listings.

**Are prices in AED?**
Yes. All prices are in UAE Dirhams (AED). 1 AED ≈ 0.27 USD (rates vary).

**Can I filter by specific community (e.g., JBR, Business Bay)?**
Use the `byUrl` mode with a PropertyFinder search URL filtered to your target community, or filter results by `community` in the output.

**How current is the data?**
Listings are updated in real time on PropertyFinder. Run daily for fresh data.

**Does it cover off-plan projects?**
Yes — PropertyFinder includes both ready and off-plan properties.

# Actor input Schema

## `mode` (type: `string`):

Choose what to scrape: forSale (sale listings), forRent (rental listings), byUrl (scrape specific listing URLs).

## `emirate` (type: `string`):

Filter listings by emirate or major city. Leave empty for all UAE.

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

Filter by property type.

## `minBedrooms` (type: `integer`):

Minimum number of bedrooms (0 = studio).

## `minPrice` (type: `integer`):

Minimum listing price in AED.

## `maxPrice` (type: `integer`):

Maximum listing price in AED.

## `furnished` (type: `string`):

Filter by furnishing status.

## `propertyUrls` (type: `array`):

List of PropertyFinder property listing URLs to scrape directly.

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

Maximum number of listings to return (1–1000).

## Actor input object example

```json
{
  "mode": "forSale",
  "emirate": "dubai",
  "propertyType": "",
  "furnished": "",
  "maxItems": 20
}
```

# Actor output Schema

## `listings` (type: `string`):

Dataset containing all scraped property listing records.

# 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 = {
    "mode": "forSale",
    "emirate": "dubai",
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/property-finder-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 = {
    "mode": "forSale",
    "emirate": "dubai",
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/property-finder-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 '{
  "mode": "forSale",
  "emirate": "dubai",
  "maxItems": 20
}' |
apify call crawlerbros/property-finder-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "PropertyFinder UAE Scraper",
        "description": "Scrape property listings from PropertyFinder.ae - UAE's leading real estate portal covering Dubai, Abu Dhabi, Sharjah and more. Extract sale and rental listings with prices, locations, images, agent info, and amenities.",
        "version": "0.1",
        "x-build-id": "pVXQhNyKBr9FHDMkK"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~property-finder-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-property-finder-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crawlerbros~property-finder-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-property-finder-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crawlerbros~property-finder-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-property-finder-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Scraping Mode",
                        "enum": [
                            "forSale",
                            "forRent",
                            "byUrl"
                        ],
                        "type": "string",
                        "description": "Choose what to scrape: forSale (sale listings), forRent (rental listings), byUrl (scrape specific listing URLs).",
                        "default": "forSale"
                    },
                    "emirate": {
                        "title": "Emirate / City",
                        "enum": [
                            "",
                            "dubai",
                            "abu-dhabi",
                            "sharjah",
                            "ajman",
                            "ras-al-khaimah",
                            "fujairah",
                            "umm-al-quwain"
                        ],
                        "type": "string",
                        "description": "Filter listings by emirate or major city. Leave empty for all UAE.",
                        "default": "dubai"
                    },
                    "propertyType": {
                        "title": "Property Type",
                        "enum": [
                            "",
                            "AP",
                            "VH",
                            "TH",
                            "PH",
                            "FF",
                            "LP",
                            "BU",
                            "OF",
                            "SH",
                            "WB",
                            "FA",
                            "HO"
                        ],
                        "type": "string",
                        "description": "Filter by property type.",
                        "default": ""
                    },
                    "minBedrooms": {
                        "title": "Minimum Bedrooms",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Minimum number of bedrooms (0 = studio)."
                    },
                    "minPrice": {
                        "title": "Minimum Price (AED)",
                        "minimum": 0,
                        "maximum": 1000000000,
                        "type": "integer",
                        "description": "Minimum listing price in AED."
                    },
                    "maxPrice": {
                        "title": "Maximum Price (AED)",
                        "minimum": 0,
                        "maximum": 1000000000,
                        "type": "integer",
                        "description": "Maximum listing price in AED."
                    },
                    "furnished": {
                        "title": "Furnished",
                        "enum": [
                            "",
                            "furnished",
                            "unfurnished",
                            "semi-furnished"
                        ],
                        "type": "string",
                        "description": "Filter by furnishing status.",
                        "default": ""
                    },
                    "propertyUrls": {
                        "title": "Property URLs (for byUrl mode)",
                        "type": "array",
                        "description": "List of PropertyFinder property listing URLs to scrape directly.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Maximum Items",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of listings to return (1–1000).",
                        "default": 50
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
