# Lamudi.com.ph Scraper | Philippines Real Estate Listings (`haketa/lamudi-scraper`) Actor

Scrape Lamudi.com.ph, the Philippines' top property portal. Houses, condos, land & commercial in Manila, Cebu & Davao. Price in PHP, PRC broker license, Clean Title status & barangay-level location.

- **URL**: https://apify.com/haketa/lamudi-scraper.md
- **Developed by:** [Haketa](https://apify.com/haketa) (community)
- **Categories:** Real estate, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 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/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

## Lamudi.com.ph Scraper — Philippines Real Estate

Scrape property listings from [Lamudi.com.ph](https://www.lamudi.com.ph/), the Philippines' leading real estate portal covering Metro Manila, Cebu, Davao and all regions nationwide.

### What does Lamudi.com.ph Scraper do?

This actor extracts structured real estate data from Lamudi Philippines including property details, pricing in PHP, location down to barangay level, agent contact information, PRC broker licenses and property amenities. It works with all property types: houses, condominiums, land, apartments and commercial.

### Why use this scraper?

The only other Lamudi scraper on Apify is **deprecated** (Selenium/BeautifulSoup, abandoned). This is the active replacement with modern Playwright automation and Philippines-specific data fields.

**Key advantages:**
- PRC broker license extraction for agent verification
- Barangay-level location parsing (city → barangay → subdivision)
- Title status detection (Clean Title, TCT, CCT)
- Philippine amenity parsing (pool, gym, CCTV, guard)
- Works with all Lamudi property categories and regions

### How much does it cost to scrape Lamudi?

| Records | Estimated cost | Time |
|---------|---------------|------|
| 100 listings | ~$0.40 | 2-3 min |
| 1,000 listings | ~$4.00 | 15-20 min |
| 5,000 listings | ~$20.00 | 60-90 min |
| 10,000 listings | ~$40.00 | 2-3 hours |

Platform usage costs (compute and proxy) are included. The actor uses Playwright browser automation.

### Input configuration

The actor accepts the following input parameters:

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `startUrls` | array | `[]` | Direct Lamudi search URLs. Overrides other filters when provided. |
| `listingType` | string | `"buy"` | Transaction type: `buy` or `rent`. |
| `propertyType` | string | `"all"` | Property type: `house`, `condominium`, `land`, `apartment`, `commercial` or `all`. |
| `location` | string | `""` | Location slug, e.g. `metro-manila`, `cebu`, `davao`, `quezon-city`. |
| `scrapeDetails` | boolean | `false` | Fetch full details for each listing (description, amenities, agent contact, PRC license). Uses more resources. |
| `maxRecords` | integer | `50` | Maximum listings to extract. Set `0` for unlimited. |
| `maxPages` | integer | `0` | Maximum search pages. Set `0` for unlimited. |
| `requestDelay` | integer | `2000` | Delay between requests in milliseconds. |
| `proxyConfiguration` | object | Apify Proxy | Proxy settings. Datacenter proxy works. |

#### Input example — houses for sale in Metro Manila

```json
{
    "listingType": "buy",
    "propertyType": "house",
    "location": "metro-manila",
    "maxRecords": 200,
    "scrapeDetails": true
}
````

#### Input example — condos for rent in Cebu

```json
{
    "listingType": "rent",
    "propertyType": "condominium",
    "location": "cebu",
    "maxRecords": 100
}
```

#### Input example — direct URL

```json
{
    "startUrls": [
        "https://www.lamudi.com.ph/buy/quezon-city/?page=1"
    ],
    "maxRecords": 50,
    "scrapeDetails": false
}
```

### Output data

Each listing includes the following fields:

| Field | Type | Description |
|-------|------|-------------|
| `listingId` | string | Lamudi listing ID |
| `title` | string | Property listing title |
| `propertyType` | string | House, Condominium, Lot, Apartment, Commercial |
| `listingType` | string | Buy or Rent |
| `price` | number | Price in PHP |
| `priceFormatted` | string | Formatted price, e.g. "₱12,500,000" |
| `bedrooms` | integer | Number of bedrooms |
| `bathrooms` | integer | Number of bathrooms |
| `floorArea` | number | Floor area in m² |
| `landArea` | number | Land area in m² |
| `city` | string | City name |
| `barangay` | string | Barangay (neighborhood) |
| `province` | string | Province |
| `agentName` | string | Listing agent name |
| `agencyName` | string | Real estate agency |
| `prcLicense` | string | PRC broker license number |
| `amenities` | array | List of amenities |
| `description` | string | Full listing description (with `scrapeDetails`) |
| `images` | array | Photo URLs |
| `listingUrl` | string | Direct Lamudi listing URL |
| `scrapedAt` | string | ISO 8601 timestamp |

#### Output example

```json
{
    "listingId": "38745621",
    "title": "3BR House and Lot in Quezon City",
    "propertyType": "House",
    "listingType": "Buy",
    "price": 12500000,
    "priceFormatted": "₱12,500,000",
    "bedrooms": 3,
    "bathrooms": 2,
    "floorArea": 120,
    "landArea": 150,
    "city": "Quezon City",
    "barangay": "Fairview",
    "province": "Metro Manila",
    "agentName": "Maria Santos",
    "agencyName": "RE/MAX Philippines",
    "prcLicense": "PRC-0012345",
    "amenities": ["Swimming Pool", "24/7 Security", "Parking"],
    "description": "Beautiful 3-bedroom house in a gated subdivision...",
    "images": ["https://static-ph.lamudi.com/..."],
    "listingUrl": "https://www.lamudi.com.ph/...",
    "scrapedAt": "2026-05-13T10:00:00Z"
}
```

### Tips and advanced usage

- **Start without details**: Run with `scrapeDetails: false` first to get listing URLs and basic data quickly. Enable details only when you need full descriptions and amenities.
- **Use location slugs**: Check Lamudi URLs for the correct location slug. For example, `makati` for Makati City or `metro-manila` for the whole metro area.
- **Rate limiting**: The default 2000ms delay works well. Increase to 3000-4000ms if you experience blocks.
- **Proxy**: Datacenter proxy (default Apify Proxy) works fine. Residential proxy is not required.

### Limitations

- The actor extracts publicly available listing data only.
- Some agent phone numbers may require visiting the Lamudi page directly.
- Listings are deduplicated by listing ID within each run.
- The actor processes one page at a time to respect the target site.

### Changelog

| Version | Date | Changes |
|---------|------|---------|
| 1.0.0 | 2026-05 | Initial release — Playwright, PRC license, barangay location, amenities, PHP pricing |

# Actor input Schema

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

Direct Lamudi search URLs. Overrides other filters. Example: 'https://www.lamudi.com.ph/makati/buy/condominium/'

## `listingType` (type: `string`):

Buy or rent.

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

Type of property.

## `cities` (type: `array`):

City or region slugs. Examples: 'metro-manila', 'makati', 'cebu', 'davao', 'quezon-city', 'taguig', 'pasig'. Leave empty for all Philippines.

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

Visit each listing for full description, amenities, coordinates, all images, agent phone and PRC license. Slower but much richer data.

## `maxRecords` (type: `integer`):

Maximum total listings. Set 0 for unlimited.

## `maxPages` (type: `integer`):

Maximum pages per search. ~30 listings per page. Set 0 for unlimited.

## `requestDelay` (type: `integer`):

Delay between page loads. 2000-4000ms recommended.

## `proxyConfiguration` (type: `object`):

Residential proxy recommended for large scrapes.

## Actor input object example

```json
{
  "startUrls": [],
  "listingType": "buy",
  "propertyType": "all",
  "cities": [],
  "scrapeDetails": false,
  "maxRecords": 50,
  "maxPages": 0,
  "requestDelay": 2500,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `listingId` (type: `string`):

No description

## `title` (type: `string`):

No description

## `listingType` (type: `string`):

No description

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

No description

## `price` (type: `string`):

No description

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

No description

## `floorArea` (type: `string`):

No description

## `city` (type: `string`):

No description

## `titleStatus` (type: `string`):

No description

## `agentName` (type: `string`):

No description

## `listingUrl` (type: `string`):

No description

## `scrapedAt` (type: `string`):

No description

# 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 = {
    "startUrls": [],
    "listingType": "buy",
    "propertyType": "all",
    "cities": [],
    "scrapeDetails": false,
    "maxRecords": 50,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("haketa/lamudi-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 = {
    "startUrls": [],
    "listingType": "buy",
    "propertyType": "all",
    "cities": [],
    "scrapeDetails": False,
    "maxRecords": 50,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("haketa/lamudi-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 '{
  "startUrls": [],
  "listingType": "buy",
  "propertyType": "all",
  "cities": [],
  "scrapeDetails": false,
  "maxRecords": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call haketa/lamudi-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Lamudi.com.ph Scraper | Philippines Real Estate Listings",
        "description": "Scrape Lamudi.com.ph, the Philippines' top property portal. Houses, condos, land & commercial in Manila, Cebu & Davao. Price in PHP, PRC broker license, Clean Title status & barangay-level location.",
        "version": "0.0",
        "x-build-id": "78btJkSadsYSU5DeX"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/haketa~lamudi-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-haketa-lamudi-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/haketa~lamudi-scraper/runs": {
            "post": {
                "operationId": "runs-sync-haketa-lamudi-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/haketa~lamudi-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-haketa-lamudi-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",
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Direct Lamudi search URLs. Overrides other filters. Example: 'https://www.lamudi.com.ph/makati/buy/condominium/'",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "listingType": {
                        "title": "Listing Type",
                        "enum": [
                            "buy",
                            "rent",
                            "all"
                        ],
                        "type": "string",
                        "description": "Buy or rent.",
                        "default": "buy"
                    },
                    "propertyType": {
                        "title": "Property Type",
                        "enum": [
                            "all",
                            "house",
                            "condominium",
                            "land",
                            "commercial",
                            "apartment",
                            "warehouse"
                        ],
                        "type": "string",
                        "description": "Type of property.",
                        "default": "all"
                    },
                    "cities": {
                        "title": "Cities / Regions",
                        "type": "array",
                        "description": "City or region slugs. Examples: 'metro-manila', 'makati', 'cebu', 'davao', 'quezon-city', 'taguig', 'pasig'. Leave empty for all Philippines.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "scrapeDetails": {
                        "title": "Scrape Detail Pages",
                        "type": "boolean",
                        "description": "Visit each listing for full description, amenities, coordinates, all images, agent phone and PRC license. Slower but much richer data.",
                        "default": false
                    },
                    "maxRecords": {
                        "title": "Max Records",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum total listings. Set 0 for unlimited.",
                        "default": 0
                    },
                    "maxPages": {
                        "title": "Max Pages",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum pages per search. ~30 listings per page. Set 0 for unlimited.",
                        "default": 0
                    },
                    "requestDelay": {
                        "title": "Request Delay (ms)",
                        "minimum": 1000,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Delay between page loads. 2000-4000ms recommended.",
                        "default": 2500
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Residential proxy recommended for large scrapes."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
