# 🇸🇦 Property Finder Saudi Scraper | Property Listings (`misterkhan/propertyfinder-saudi-scraper`) Actor

From $0.75/1K. Extract property listings from Property Finder Saudi (propertyfinder.sa) across Riyadh, Jeddah & Makkah — prices in SAR, beds, area & photos.

- **URL**: https://apify.com/misterkhan/propertyfinder-saudi-scraper.md
- **Developed by:** [Khan](https://apify.com/misterkhan) (community)
- **Categories:** Real estate, AI, Automation
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.75 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### 🇸🇦 Property Finder Saudi Scraper

Extract structured real estate listings from Property Finder Saudi (propertyfinder.sa), the leading property marketplace across Riyadh, Jeddah, Makkah, Medina, and Khobar. Collect comprehensive property data including asking prices in SAR, bedrooms, bathrooms, living area (m²), property types, developer information, broker contact details, and direct listing links.

***

### What does Property Finder Saudi Scraper do?

Property Finder Saudi is the premier real estate portal across the Kingdom of Saudi Arabia, connecting buyers, tenants, and institutional investors with licensed brokers, major developers, and verified real estate companies.

This Actor extracts structured property listings directly from Property Finder Saudi search feeds:

- **Sale & Rental Properties**: Apartments, villas, duplexes, residential compounds, townhouses, lands, and commercial spaces.
- **Detailed Specifications**: Living area (m²), bedroom counts, bathroom counts, furnishing status, and property subtype.
- **Financial Details**: Sale prices and rental rates in SAR, price per square meter calculations, and payment schedules.
- **Agent & Broker Attribution**: Agent names, agency/broker company names, office phone numbers, WhatsApp contact links, and broker logos.
- **Geographic Precision**: Region, city, district, and administrative boundaries across Saudi Arabia.

***

### Why scrape Property Finder Saudi?

- **Saudi Real Estate Analytics**: Track residential price dynamics and rental yields across Riyadh (Al Malqa, Al Narjis, Al Olaya), Jeddah, and Makkah.
- **Vision 2030 Housing & Mega-Project Monitoring**: Track market supply, new compound deliveries, and developer inventory trends.
- **Broker & Lead Generation**: Discover active brokerage firms, licensed real estate agents, and agency contact details for commercial outreach.
- **PropTech & Valuation Models**: Ingest clean, structured Saudi real estate feeds for automated valuation models (AVMs) and investment analytics.

***

### How to scrape Property Finder Saudi listings

1. **Find your search URL on Property Finder Saudi**: Visit `https://www.propertyfinder.sa` and select your location, transaction type (buy or rent), and filters.
2. **Copy the search URL**: Copy the full URL from your browser address bar (e.g. `https://www.propertyfinder.sa/en/buy/properties-for-sale.html`).
3. **Configure the Actor**: Paste the search URL into the **Start URLs** field in the Apify Console.
4. **Set Max Results**: Specify the total number of property listings you want to collect.
5. **Run the Actor**: Click **Start**. The Actor streams live results into your default dataset in real time.
6. **Export your data**: Download your structured property listings in JSON, CSV, Excel, XML, or Parquet.

***

### Input Configuration

The Actor accepts the following input parameters:

**📍 `location`** — search city or region in Saudi Arabia (e.g. `Riyadh`). Optional when `startUrls` is provided <br>
**Start URLs** (`startUrls`):<br>
One or more Property Finder Saudi search or category URLs. Supports apartments, villas, and compounds for sale or rent across Riyadh, Jeddah, Makkah, and other provinces.<br>
*Default*: `https://www.propertyfinder.sa/en/buy/properties-for-sale.html`

**Max Results** (`maxItems`):<br>
The maximum number of property listings to extract during the run.<br>
*Default*: 40

***

### Input Examples

**Standard Saudi Properties for Sale Search**:

```json
{
  "startUrls": [
    {
      "url": "https://www.propertyfinder.sa/en/buy/properties-for-sale.html"
    }
  ],
  "maxItems": 100
}
```

**Riyadh Apartments for Rent Search**:

```json
{
  "startUrls": [
    {
      "url": "https://www.propertyfinder.sa/en/rent/apartments-for-rent.html"
    }
  ],
  "maxItems": 50
}
```

***

### Output Data & Sample Dataset

The Actor returns clean, normalized property listing objects directly to the Apify dataset:

```json
{
  "id": "51658945",
  "listing_id": "KC39CQG7G047GCMCD4PH5S2AC8",
  "property_id": "51658945",
  "title": "Apartment for sale in Al-Kaakiyah Makkah - 600,000",
  "price": 600000,
  "currency": "SAR",
  "bedrooms": "5",
  "bedrooms_value": 5,
  "bathrooms": "3",
  "bathrooms_value": 3,
  "area": 166,
  "area_sqm": 166,
  "address": "الكعكية, مكة المكرمة, Makkah Al Mukarramah",
  "location": "الكعكية, مكة المكرمة, Makkah Al Mukarramah",
  "property_type": "Apartment",
  "offering_type": "Residential for Sale",
  "description": "For Sale: A Distinctive Apartment in Al-Kaakiyah District, Makkah. Area: 166.4 sq m. Price: SAR 600,000. Specifications: Majlis, 2 Living Rooms, 3 Bedrooms, Kitchen, 3 Bathrooms, Maid's Room...",
  "broker": {
    "name": "شركة ستيم العربية للتطوير والاستثمار العقاري",
    "phone": "+966537443353",
    "email": "info@steam-realestate.com",
    "logo": "https://static.shared.propertyfinder.sa/media/images/client_logos/4669/cee22f2b-dc40-4bd8-840a-e58ae7923af5/260x200.jpg"
  },
  "agent": {
    "name": "فهد عبدالله"
  },
  "image_url": "https://static.shared.propertyfinder.sa/media/images/listing/KC39CQG7G047GCMCD4PH5S2AC8/7f4b1077-67d6-4574-a4d4-5079f8739357/668x452.jpg",
  "url": "https://www.propertyfinder.sa/en/plp/buy/apartment-for-sale-makkah-al-mukarramah-ar-%D9%85%D9%83%D8%A9-%D8%A7%D9%84%D9%85%D9%83%D8%B1%D9%85%D8%A9-%D8%A7%D9%84%D9%83%D8%B9%D9%83%D9%8A%D8%A9-51658945.html",
  "portal": "propertyfinder.sa",
  "country": "SA"
}
```

***

### Performance & Resource Utilization

- **Ultra-Lightweight Memory Footprint**: Runs on just 128 MB RAM, maximizing cost efficiency and throughput.
- **Asynchronous Pipeline**: Built with native async streaming, collecting records at high extraction rates.
- **Real-Time Data Streaming**: Listings are pushed to the Apify Dataset incrementally as pages are processed.
- **Resilient Transport Routing**: Features intelligent proxy management and automatic header emulation to ensure uninterrupted scraping.

***

### How much does it cost to scrape Property Finder Saudi?

This Actor uses transparent **Pay-Per-Event (Pay-Per-Result)** pricing with a **`$0.00` Actor run start fee**:

**🆓 Free Plan** — $0.005 per item ($5.00 / 1K) with up to 40 items per run <br>
**🥉 Bronze Plan** — $0.00135 per item ($1.35 / 1K) with unlimited scale <br>
**🥈 Silver Plan** — $0.00095 per item ($0.95 / 1K) with unlimited scale <br>
**🥇 Gold Plan** — $0.00075 per item ($0.75 / 1K) with highest priority execution <br>

You only pay for successful listings extracted. Failed runs or empty pages incur zero platform cost.

***

### Integrations & Export Options

- **Direct Export**: Download collected data in JSON, CSV, XLSX, XML, or NDJSON.
- **Apify API & Webhooks**: Trigger downstream webhooks upon run completion to sync new listings to external endpoints.
- **Cloud & Automation Workflows**: Connect directly with Zapier, Make, Google Sheets, Airtable, Amazon S3, and PostgreSQL.
- **Python & Node.js Clients**: Ingest property feeds directly into data science workflows using `apify-client`.

***

***

### Using 🇸🇦 Property Finder Saudi Scraper | Property Listings — Input with AI Agents and Apify MCP

This Actor is optimized as an on-demand tool for AI developer assistants, Claude Desktop, Cursor, and autonomous agent workflows connected via the official Apify MCP Server (`https://mcp.apify.com`).

**Example prompts for Claude Desktop and Cursor:** <br>
• Extract property listings in Riyadh and summarize pricing, bedrooms, and square meters. <br>
• Search the latest listings and identify high-yield investment opportunities. <br>
• Monitor new properties and compare square meter pricing. <br>

**Agent tool advantages:** <br>
• **Natural location input** — Pass simple city or region names (e.g. Riyadh) without constructing portal URLs. <br>
• **Sub-second Rust streaming** — Returns live listings in 3 to 4 seconds to prevent agent tool-call timeouts. <br>
• **Context-protective JSON** — Clean, normalized fields designed to fit efficiently inside LLM prompt context windows. <br>
• **Pay-Per-Event pricing** — Only pay per extracted property listing with zero platform start fees. <br>

### Frequently Asked Questions (FAQ)

**Can I scrape properties from across Saudi Arabia?**<br>
Yes. You can paste search URLs covering Riyadh, Jeddah, Makkah, Medina, Dammam, Khobar, or any other Saudi province.

**Does this scraper extract rental listings as well as sales?**<br>
Yes. Simply paste a Property Finder Saudi search URL filtered for rentals (/rent/) and the Actor will collect rental listings and annual rates.

**Are agent and broker phone numbers included?**<br>
Yes. When provided on the listing, broker company details, agent names, and phone/WhatsApp contact information are captured.

**How many listings can I collect in a single run?**<br>
You can configure `maxItems` to collect anywhere from a handful of records up to thousands across paginated search queries.

***

### Legal & Ethical Considerations

- The Actor only collects publicly accessible real estate listing data displayed on Propertyfinder.sa.
- Respect Property Finder's platform terms of service and avoid aggressive scraping rates.
- Adhere to applicable data privacy regulations when handling real estate broker and agent contact information.

***

### Support & Feedback

If you have feature requests, notice website layout changes, or need assistance configuring custom extraction workflows, open an issue in the Apify Console Actor Discussion tab.

***

### Additional Real Estate Scrapers

Explore related property and classified scrapers in the Crawlomatic ecosystem:

- **propertyfinder-scraper**: UAE leading property portal (propertyfinder.ae).
- **funda-nl-scraper**: Netherlands leading property portal (funda.nl).
- **immoweb-be-scraper**: Belgium leading property portal (immoweb.be).
- **zameen-pakistan-scraper**: Pakistan leading property portal (zameen.com).
- **housing-com-scraper**: India leading property portal (housing.com).

# Changelog

This Actor's version history is a separate document: https://apify.com/misterkhan/propertyfinder-saudi-scraper/changelog.md

# Actor input Schema

## `location` (type: `string`):

City, region, or municipality in Saudi Arabia (e.g. 'Riyadh'). Optional when startUrls is provided.

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

Paste one or more Property Finder Saudi (propertyfinder.sa) search or property URLs (e.g., `https://www.propertyfinder.sa/en/buy/properties-for-sale.html`).

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

Maximum number of property listings to collect (Free plan runs collect up to 40 results per run; paid plans support unlimited results).

## Actor input object example

```json
{
  "location": "Riyadh",
  "startUrls": [
    {
      "url": "https://www.propertyfinder.sa/en/buy/properties-for-sale.html"
    }
  ],
  "maxItems": 20
}
```

# Actor output Schema

## `results` (type: `string`):

All extracted property listings from Property Finder Saudi (propertyfinder.sa).

## `usage_summary` (type: `string`):

Execution telemetry and extraction summary stored in the default key-value store.

# 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 = {
    "location": "Riyadh",
    "startUrls": [
        {
            "url": "https://www.propertyfinder.sa/en/buy/properties-for-sale.html"
        }
    ],
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("misterkhan/propertyfinder-saudi-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 = {
    "location": "Riyadh",
    "startUrls": [{ "url": "https://www.propertyfinder.sa/en/buy/properties-for-sale.html" }],
    "maxItems": 20,
}

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

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

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

```

## CLI example

```bash
echo '{
  "location": "Riyadh",
  "startUrls": [
    {
      "url": "https://www.propertyfinder.sa/en/buy/properties-for-sale.html"
    }
  ],
  "maxItems": 20
}' |
apify call misterkhan/propertyfinder-saudi-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,misterkhan/propertyfinder-saudi-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/AEqxwcWRFQfDIQs6f/builds/Vb95ztFH1O8lV4dqf/openapi.json
