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

Lamudi scraper & API for Philippines real estate: search property for sale and rent and export address, price, beds, baths, floor area, type, agent, amenities, photos and coordinates. Philippines property market data and lead generation — fast, no login.

- **URL**: https://apify.com/haketa/lamudi-scraper.md
- **Developed by:** [Haketa](https://apify.com/haketa) (community)
- **Categories:** Real estate, Developer tools, Automation
- **Stats:** 4 total users, 1 monthly users, 100.0% runs succeeded, 0 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/actors/running/actors-in-store.md#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

## Lamudi.com.ph Scraper — Philippines Real Estate Data Extractor for Condos, Houses, Land & Commercial Listings

> **The most complete Lamudi.com.ph data extraction tool on Apify.** Pull structured Philippine property listings — condos in Makati and BGC, house-and-lot in Quezon City, beachfront lots in Cebu, commercial space in Ortigas — straight from Lamudi.com.ph with PHP pricing, barangay-level location, PRC broker license, title status, and developer/project metadata. Built for OFW investor research, PH prop-tech, presale comps, BPO relocation, and mortgage broker workflows.

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-blue)](https://apify.com/haketa/lamudi-scraper)
[![Live Data](https://img.shields.io/badge/Data-Live%20at%20Run-orange)]()
[![Engine](https://img.shields.io/badge/Engine-Playwright-green)]()
[![Pay Per Event](https://img.shields.io/badge/Pricing-Pay%20Per%20Event-yellow)]()
[![Coverage](https://img.shields.io/badge/Coverage-All%20Philippines-purple)]()
[![Country](https://img.shields.io/badge/Country-Philippines-red)]()
[![No Auth](https://img.shields.io/badge/Authentication-None%20Required-success)]()
[![Currency](https://img.shields.io/badge/Currency-PHP-blueviolet)]()

***

### What This Actor Does

The **Lamudi.com.ph Scraper** is a production-ready Apify Actor that extracts the **full public property listing inventory** from [Lamudi.com.ph](https://www.lamudi.com.ph/) — the **Philippines' largest real estate portal**, founded in 2013 by Rocket Internet and now part of EMPG (Dubizzle Group). Lamudi aggregates tens of thousands of For-Sale and For-Rent listings from independent brokers, real estate agencies, and the country's largest developers — Ayala Land, Megaworld, SMDC (SM Development Corporation), DMCI Homes, Robinsons Land, Vista Land, Filinvest, and Federal Land — covering every major Philippine market from Metro Manila to Cebu, Davao, Cagayan de Oro, Iloilo, Baguio, and Tagaytay.

On each run, the actor returns **structured JSON** for every visible listing across these property categories:

- **Condominiums** — high-rise units in Makati CBD, BGC (Bonifacio Global City), Ortigas, Mandaluyong, Pasay, Quezon City, Cebu IT Park, and resort towers in Tagaytay and Cebu
- **House & Lot** — gated subdivision homes in Ayala Alabang, Greenhills, Loyola Heights, Acropolis, Filinvest East, Antipolo, and Davao
- **Land / Lots** — raw and titled lots in Tagaytay, Batangas, Bulacan, Cavite, Pampanga, Cebu province, and Palawan
- **Townhouses** — multi-storey row homes in Marikina, Parañaque, Las Piñas, Antipolo
- **Apartments** — rental units catering to OFW families and BPO employees
- **Commercial property** — office space, BPO floors, retail bays, mixed-use podiums in Makati, BGC, Ortigas Center, and Cebu Business Park
- **Warehouses & industrial** — logistics property in Laguna, Cavite, and Bulacan industrial parks

Each record exposes the **price in PHP**, **price per square metre**, **floor area / lot area**, **bedrooms / bathrooms**, **barangay → city → province** location parsing, **title status** (Clean Title, TCT, CCT, Tax Declaration), **furnishing level**, **subdivision / project name**, **developer name**, and where available the **listing agent**, **agency**, **PRC broker license number**, and **direct contact phone** — the same data fields a Philippine broker, valuer, or property analyst would manually copy off the site, delivered as clean JSON ready for Excel, Power BI, or a Postgres warehouse.

#### Why scrape Lamudi yourself when this exists?

Lamudi looks like a simple property site, but anyone who has tried to scrape it discovers the same headaches inside an afternoon:

- **Cloudflare WAF challenges** trigger on bare HTTP clients and any automation that looks "headless"
- **Next.js SSR + client hydration** means half the data isn't in the initial HTML — you need a real browser
- **Class names are hashed** (`snippet__abc123`) and rotate between deploys, breaking CSS selectors weekly
- **JSON-LD schema is inconsistent** — some listings expose `RealEstateListing`, others `Product`, others nothing
- **Address parsing is non-trivial** — `"Tower 2, BGC, Taguig City, Metro Manila"` has to be split into street / barangay / city / province
- **Mixed currencies** appear in luxury and serviced-apartment listings (USD, SGD) — naive `parseInt` produces junk numbers
- **PHP prices** are formatted with `₱`, `PHP`, `Php`, commas, decimals, and the dreaded "Price on Request" — your regex will break
- **Pagination caps** silently at page 50–100 depending on filters
- **Detail pages are slow** (3–6 seconds each) and trigger anti-bot if hit too fast
- **PRC broker license numbers** are buried in free-text agent bios — there is no structured field
- **Photos are lazy-loaded** behind `data-src` attributes that only resolve on scroll
- **Filipino location synonyms** (Quezon City = QC, Taguig = BGC, Muntinlupa = Alabang) need normalisation

This actor handles all of the above out of the box: Playwright with stealth patches, residential proxy rotation, JSON-LD + DOM dual-strategy extraction, PHP-aware price parsing, three-level location splitting, PRC license regex, lazy-image resolution, and graceful WAF backoff. You get a clean JSON dataset — no headless-Chromium plumbing, no Cloudflare debugging, no class-name archaeology.

***

### Quick Start

#### One-Click Run

1. Open the [Lamudi.com.ph Scraper](https://apify.com/haketa/lamudi-scraper) page on Apify Store
2. Click **"Try for free"** — defaults pull recent For-Sale listings nationwide
3. (Optional) Set `cities: ["makati", "taguig"]` and `propertyType: "condominium"` to target a niche
4. Hit **Start** — your dataset is ready in a few minutes; export as JSON, CSV, Excel, or push to Sheets/BigQuery via the Apify integrations panel

#### API Run (Python)

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run = client.actor("haketa/lamudi-scraper").call(run_input={
    "listingType":   "buy",
    "propertyType":  "condominium",
    "cities":        ["makati", "taguig", "pasig"],
    "scrapeDetails": True,
    "maxRecords":    500,
    "requestDelay":  2500,
})

for listing in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"₱{listing['price']:,.0f}  {listing['propertyType']:<12}  "
          f"{listing['bedrooms']}BR  {listing['floorArea']}sqm  "
          f"{listing['barangay']}, {listing['city']}")
```

#### API Run (Node.js / TypeScript)

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

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const run = await client.actor('haketa/lamudi-scraper').call({
    listingType:   'rent',
    propertyType:  'condominium',
    cities:        ['makati', 'taguig'],
    scrapeDetails: false,
    maxRecords:    200,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Pulled ${items.length} Makati/BGC condos for rent`);
items.slice(0, 5).forEach(l => console.log(`₱${l.price} — ${l.title}`));
```

#### API Run (cURL)

```bash
curl -X POST "https://api.apify.com/v2/acts/haketa~lamudi-scraper/runs?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "listingType":   "buy",
    "propertyType":  "house",
    "cities":        ["quezon-city", "antipolo", "marikina"],
    "scrapeDetails": true,
    "maxRecords":    300
  }'
```

#### Direct URL run (any Lamudi search)

```json
{
  "startUrls": [
    "https://www.lamudi.com.ph/metro-manila/buy/condominium/",
    "https://www.lamudi.com.ph/cebu/buy/house/",
    "https://www.lamudi.com.ph/davao-city/rent/"
  ],
  "scrapeDetails": true,
  "maxRecords": 1000
}
```

Paste any Lamudi search URL — filtered by price, bedrooms, amenities, developer, anything — and the actor follows the same pagination and parsing pipeline.

***

### How It Works

Lamudi.com.ph is a **Next.js / React** application with server-side rendering plus client-side hydration. The actor uses **Playwright with Chromium** to render the full page (so React components, lazy-loaded images, and the agent contact block all materialise), then runs a **dual-strategy extractor** — JSON-LD structured data first, DOM scraping as fallback.

#### URL pattern

```
https://www.lamudi.com.ph/{city-slug}/{buy|rent}/{property-type}/?page={n}
```

Examples:

| Search | URL |
|---|---|
| Condos for sale in Makati | `https://www.lamudi.com.ph/makati/buy/condominium/` |
| Houses for rent in Quezon City | `https://www.lamudi.com.ph/quezon-city/rent/house/` |
| All listings in Cebu | `https://www.lamudi.com.ph/cebu/` |
| BGC condos page 3 | `https://www.lamudi.com.ph/taguig/buy/condominium/?page=3` |
| Davao land for sale | `https://www.lamudi.com.ph/davao-city/buy/land/` |
| Commercial in Ortigas | `https://www.lamudi.com.ph/pasig/buy/commercial/` |

#### Engineering details

- **Playwright Chromium** with `--disable-blink-features=AutomationControlled`, `webdriver` masked, `chrome.runtime` shim
- **PH locale & timezone** — `locale: 'en-PH'`, `timezoneId: 'Asia/Manila'` for realistic browser fingerprint
- **Residential proxy** rotation via Apify proxy groups (one session per search URL, fresh IP per task) — datacenter works for light runs
- **Cloudflare WAF detection** with up to 6 retries at 5-second intervals when "Just a moment", "Checking", or "Access Denied" titles appear
- **Dual extraction**:
  1. **JSON-LD** — `script[type="application/ld+json"]` with `RealEstateListing`, `Product`, `Residence`, `House`, `Apartment` types plus `itemListElement` arrays
  2. **DOM fallback** — `a[href*="/property/"]` links, parent card containers, regex for price/beds/baths/area
- **PHP price parser** — strips `₱`, `PHP`, `Php`, commas; ignores values under ₱1,000 (filter for accidental matches)
- **Location parser** — splits free-text addresses into barangay → city → province, detecting street prefixes (`Street`, `Avenue`, `Road`, `Drive`, `Boulevard`)
- **Property-type normalisation** — `condo` / `condominium` → `Condominium`; `house and lot` → `House and Lot`; `lot` / `land` → `Land`
- **Detail-page enrichment** (optional, `scrapeDetails: true`) — opens each listing for description, amenities (`pool`, `gym`, `CCTV`, `guard`), agent name, agency name, contact phone, PRC license (`PRC#0012345`), subdivision, developer, project, year built, parking slots, storeys, GPS coordinates, full image gallery
- **Deduplication** by `listingId` (when present) or `listingUrl` — duplicates from overlapping searches are filtered automatically
- **Polite pacing** — randomised 2,500–4,000ms delay between page loads (configurable)

***

### Input Parameters

```json
{
  "startUrls": [],
  "listingType": "buy",
  "propertyType": "condominium",
  "cities": ["makati", "taguig", "pasig"],
  "scrapeDetails": true,
  "maxRecords": 500,
  "maxPages": 0,
  "requestDelay": 2500,
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
```

#### Parameter reference

| Parameter | Type | Default | Description |
|---|---|---|---|
| `startUrls` | `array<string>` | `[]` | Direct Lamudi search URLs. **Overrides** `listingType`, `propertyType`, and `cities` when provided. Paste any filtered Lamudi search page. |
| `listingType` | `string` | `buy` | `buy` (For Sale), `rent` (For Rent), or `all` (both). |
| `propertyType` | `string` | `all` | `all`, `house`, `condominium`, `land`, `commercial`, `apartment`, `warehouse`. |
| `cities` | `array<string>` | `[]` | City / region slugs. Examples: `metro-manila`, `makati`, `taguig`, `quezon-city`, `pasig`, `mandaluyong`, `pasay`, `paranaque`, `muntinlupa`, `cebu`, `cebu-city`, `mandaue`, `lapu-lapu`, `davao-city`, `cagayan-de-oro`, `iloilo-city`, `baguio`, `tagaytay`. Empty array = nationwide. |
| `scrapeDetails` | `boolean` | `false` | When `true`, the actor visits each listing detail page for full description, amenities, agent phone, PRC license, developer, GPS coordinates, full image gallery. Adds 3–6 seconds per listing. |
| `maxRecords` | `integer` | `0` | Cap total output. `0` = unlimited. |
| `maxPages` | `integer` | `0` | Cap pages per search (≈30 listings per page). `0` = follow pagination to the end. |
| `requestDelay` | `integer` | `2500` | Base delay (ms) between page loads. Randomised +0–1500ms. Increase to 3,500–4,500 for very large scrapes. |
| `proxyConfiguration` | `object` | RESIDENTIAL | Apify proxy settings. Residential is recommended for runs above a few hundred listings. Datacenter works for sampling. |

***

### Output Schema

Every record uses the same flat JSON shape so downstream warehouses, BI tools, and CRMs ingest the whole dataset without per-property-type branching.

#### Core listing fields

| Field | Type | Description |
|---|---|---|
| `listingId` | `string` | Lamudi listing ID (numeric or UUID) parsed from the property URL |
| `title` | `string` | Listing headline — e.g. `"3BR Condo in Park Triangle Residences, BGC"` |
| `listingType` | `string` | `For Sale` or `For Rent` |
| `propertyType` | `string` | Normalised: `Condominium`, `House`, `House and Lot`, `Townhouse`, `Land`, `Commercial`, `Apartment`, `Warehouse`, `Studio` |
| `price` | `number` | Price as a plain number, in PHP (`₱12,500,000` → `12500000`) |
| `currency` | `string` | Currency code — `PHP` for almost all listings |
| `pricePerSqm` | `number` | Computed when both price and floor area are available |
| `bedrooms` | `integer` | Bedroom count (`0` for studios) |
| `bathrooms` | `integer` | Bathroom count |
| `floorArea` | `number` | Floor area in m² |
| `lotArea` | `number` | Lot area in m² (House and Lot, Land) |

#### Location fields

| Field | Type | Description |
|---|---|---|
| `barangay` | `string` | Barangay name (Philippine sub-municipal unit) — `Bel-Air`, `Forbes Park`, `Loyola Heights`, etc. |
| `city` | `string` | City or municipality — `Makati`, `Taguig`, `Quezon City`, `Cebu City`, `Davao City` |
| `province` | `string` | Province or region — `Metro Manila`, `Cebu`, `Davao del Sur`, `Cavite`, `Batangas` |
| `subdivision` | `string` | Gated subdivision or village name (House and Lot listings) |

#### Property & project metadata

| Field | Type | Description |
|---|---|---|
| `titleStatus` | `string` | `Clean Title`, `TCT` (Transfer Certificate of Title), `CCT` (Condominium Certificate of Title), `Tax Declaration` |
| `furnishing` | `string` | `Fully Furnished`, `Semi-Furnished`, `Unfurnished` |
| `developerName` | `string` | Developer — `Ayala Land`, `Megaworld`, `SMDC`, `DMCI Homes`, `Robinsons Land`, `Vista Land`, `Filinvest`, `Federal Land`, `Century Properties` |
| `projectName` | `string` | Project / building name — `Park Triangle Residences`, `Uptown Parksuites`, `Greenbelt Parkplace`, `One Shangri-La Place` |

#### Agent & agency fields

| Field | Type | Description |
|---|---|---|
| `agentName` | `string` | Listing agent / broker name |
| `agentLicenseNo` | `string` | PRC (Professional Regulation Commission) broker / salesperson licence — formatted `PRC#0012345` |
| `agencyName` | `string` | Brokerage or agency name |
| `contactPhone` | `string` | Direct PH mobile or landline (with `scrapeDetails: true`) |

#### Content fields

| Field | Type | Description |
|---|---|---|
| `amenities` | `array<string>` | Building / unit amenities — `Swimming Pool`, `Gym`, `24/7 Security`, `CCTV`, `Function Room`, `Sky Lounge`, `Concierge`, `Parking`, `Children's Play Area` |
| `description` | `string` | Full free-text listing description (with `scrapeDetails: true`) |
| `images` | `array<string>` | All listing photo URLs from Lamudi's CDN |
| `listingUrl` | `string` | Direct URL back to the Lamudi listing page |
| `postedDate` | `string` | When the listing was posted (when surfaced by Lamudi) |
| `scrapedAt` | `string` | ISO-8601 extraction timestamp |

#### Example: Condo For Sale in BGC

```json
{
  "listingId": "47829163",
  "title": "Brand New 2BR Condo for Sale in Park Triangle Residences, BGC",
  "listingType": "For Sale",
  "propertyType": "Condominium",
  "price": 28500000,
  "currency": "PHP",
  "pricePerSqm": 311475,
  "bedrooms": 2,
  "bathrooms": 2,
  "floorArea": 91.5,
  "lotArea": null,
  "barangay": "Fort Bonifacio",
  "city": "Taguig",
  "province": "Metro Manila",
  "titleStatus": "CCT",
  "furnishing": "Semi-Furnished",
  "subdivision": null,
  "developerName": "Alveo Land",
  "projectName": "Park Triangle Residences",
  "agentName": "Maria Reyes",
  "agentLicenseNo": "PRC#0099999",
  "agencyName": "Leechiu Property Consultants",
  "contactPhone": "09171234567",
  "amenities": [
    "Swimming Pool", "Gym", "24/7 Security", "CCTV",
    "Function Room", "Sky Lounge", "Concierge", "Parking"
  ],
  "description": "Brand new bare-shell 2-bedroom corner unit in the heart of BGC. Floor-to-ceiling windows, full city and Manila Bay sunset views. One parking slot included. Walking distance to Bonifacio High Street, Mind Museum, and SM Aura.",
  "images": [
    "https://static-ph.lamudi.com/static/media/abc123.jpg",
    "https://static-ph.lamudi.com/static/media/def456.jpg"
  ],
  "listingUrl": "https://www.lamudi.com.ph/property/47829163.html",
  "postedDate": "2026-04-22",
  "scrapedAt": "2026-05-16T08:30:00.000Z"
}
```

#### Example: House & Lot in Quezon City

```json
{
  "listingId": "39112847",
  "title": "Brand New 4BR House and Lot in Loyola Heights, Quezon City",
  "listingType": "For Sale",
  "propertyType": "House and Lot",
  "price": 35000000,
  "currency": "PHP",
  "pricePerSqm": 145833,
  "bedrooms": 4,
  "bathrooms": 4,
  "floorArea": 240,
  "lotArea": 320,
  "barangay": "Loyola Heights",
  "city": "Quezon City",
  "province": "Metro Manila",
  "titleStatus": "Clean Title",
  "furnishing": "Unfurnished",
  "subdivision": "Loyola Grand Villas",
  "developerName": null,
  "projectName": null,
  "agentName": "Juan dela Cruz",
  "agentLicenseNo": "PRC#0088888",
  "agencyName": "RE/MAX Capital",
  "contactPhone": "09181234567",
  "amenities": ["24/7 Security", "Guard", "Clubhouse", "Pool", "Tennis Court"],
  "description": "Newly built 3-storey single attached house inside the exclusive Loyola Grand Villas. Five-minute drive to Ateneo, UP Diliman, and Katipunan.",
  "images": ["https://static-ph.lamudi.com/static/media/qc123.jpg"],
  "listingUrl": "https://www.lamudi.com.ph/property/39112847.html",
  "postedDate": "2026-05-02",
  "scrapedAt": "2026-05-16T08:32:14.000Z"
}
```

***

### Property Type Reference

| Lamudi Category | Output `propertyType` | Typical Filipino market context |
|---|---|---|
| Condominium | `Condominium` | Vertical living in Makati, BGC, Ortigas, Cebu IT Park — driven by SMDC, DMCI, Megaworld |
| House & Lot | `House and Lot` | Subdivision homes — Ayala Alabang, Loyola Heights, Antipolo, Greenhills |
| House (no lot) | `House` | Townhouse-like units without a separate lot title |
| Townhouse | `Townhouse` | Row homes — Parañaque, Las Piñas, Marikina |
| Apartment | `Apartment` | Walk-up rental units, common in QC and Manila |
| Land / Lot | `Land` | Vacant residential, agricultural, beachfront, commercial lots |
| Commercial | `Commercial` | Office space, BPO floors, retail, mixed-use podiums |
| Warehouse | `Warehouse` | Logistics property — Laguna, Cavite industrial parks |
| Studio | `Studio` | Small condos targeting OFW investors / BPO renters |

### Title Status Reference

| Status | Meaning |
|---|---|
| `Clean Title` | No liens, no encumbrances, original-owner title — buyer's preference |
| `TCT` | **Transfer Certificate of Title** — standard title for House & Lot |
| `CCT` | **Condominium Certificate of Title** — standard title for condo units |
| `Tax Declaration` | Untitled land, only tax-declared — common in provincial lots, lower price |

***

### Use Cases

#### OFW Investor Research

The Philippines has roughly 10 million Overseas Filipino Workers, and real-estate purchase is the single most common long-term investment. Diaspora investors and the family offices that serve them use this dataset to:

- **Track presale launches** by SMDC, DMCI, Megaworld, and Ayala Land for OFW deposit windows in Dubai, Riyadh, Hong Kong, and London
- **Build comparative pricing tables** across Makati / BGC / Ortigas / QC before committing to a downpayment
- **Filter for ready-for-occupancy (RFO) units only** vs. preselling, to match remittance timing
- **Monitor secondary-market resale** of older Ayala and Rockwell condos to time exits
- **Compare rental yields** city-by-city to project monthly returns

#### Philippine Prop-Tech & Listing Aggregators

PH-based prop-tech startups (rental marketplaces, AI valuation engines, mortgage marketplaces) use Lamudi as a backbone dataset to:

- **Bootstrap listing inventory** at launch without negotiating ten broker integrations
- **Train pricing models** on real Makati condo per-sqm prices and Cebu beachfront benchmarks
- **Enrich rental marketplaces** with full Lamudi metadata when brokers post short listings
- **Build comparable-sales (CMA) tools** for licensed Philippine brokers
- **Power "find my home" recommendation engines** with structured price/bedroom/barangay filters

#### Condo Presale Comps & Developer Intelligence

Real estate consultants serving Ayala, Megaworld, SMDC, Federal Land, Rockwell, and Robinsons Land use the data to:

- **Benchmark presale prices per sqm** in BGC, Makati, Ortigas, and Cebu IT Park against the competition
- **Track absorption velocity** by comparing weekly listing counts per project
- **Monitor competitor pricing changes** mid-launch (early-bird vs. full launch)
- **Identify gaps in the market** — for example studio inventory by barangay
- **Brief developer sales teams** with weekly market intelligence reports

#### BPO Relocation & Employee Housing

The Philippines is the world's #2 BPO hub. HR and facilities teams at major BPOs (Accenture, Concentrix, TaskUs, TDCX, Sutherland) and shared-services centres use this data to:

- **Source bulk rental inventory** within walking distance of Makati, Eastwood, Ortigas, Cebu IT Park, and Iloilo Plaza Independencia
- **Provide relocation packages** for senior hires with structured price/amenity data
- **Build internal housing portals** for new-grad agents during onboarding
- **Negotiate corporate leases** with comparable-market data in hand
- **Coordinate dorm-style accommodation** near 24/7 BPO sites

#### Mortgage Brokers & Bank Property Intelligence

PH banks (BDO, BPI, Metrobank, Security Bank, RCBC) and mortgage brokerages use Lamudi data for:

- **Loan-to-value reasonability checks** — does the borrower's purchase price match market for that barangay?
- **Branch-pipeline lead generation** — call agents listing properties under ₱10M with no posted bank-financing partner
- **Foreclosure asset comparable sales** — verify ROPA disposal pricing against active market
- **Pre-approval marketing** — target brokers handling high-value developer projects
- **Borrower property verification** — confirm the listing matches the loan application

#### Foreign Direct Investment & Embassy Research

Foreign chambers of commerce, embassies, expat consultancies, and relocation firms covering the Philippines use the dataset to:

- **Build expat housing guides** with current rent levels in Makati, BGC, and Salcedo Village
- **Brief corporate clients on cost-of-living** for relocation packages
- **Map foreign-friendly buildings** by amenity (gym, pool, concierge) and price band
- **Track foreign-investor restrictions** by property type (condos OK, land restricted)
- **Support international school catchment analysis** with nearby inventory

#### Real Estate Journalism & Data Reporting

Business journalists at Inquirer, BusinessWorld, Manila Bulletin, ABS-CBN, GMA, and Rappler use Lamudi data to:

- **Report on Manila price-per-sqm trends** with hard quarterly numbers
- **Cover post-typhoon market shifts** in affected provinces
- **Investigate luxury market dynamics** (₱100M+ Forbes Park listings)
- **Track POGO-pullout impact** on Pasay, Parañaque, and BGC condo vacancy and rent
- **Document affordable housing gaps** in Metro Manila and Cebu

#### Insurance Underwriting & Property Valuation

Non-life insurers (Pioneer, Malayan, FPG, Standard) and appraisal firms use the data to:

- **Underwrite homeowner / condo coverage** with verified replacement-cost benchmarks
- **Estimate flood-zone property values** in low-lying Marikina, Malabon, Navotas
- **Build catastrophe-modelling inputs** with structured price per barangay
- **Calibrate professional indemnity policies** for PRC-licensed brokers

#### Academic & Public-Policy Research

Universities (Ateneo, UP, La Salle, UST) and policy think tanks use the data to:

- **Study housing affordability** for the Philippine middle class
- **Map gentrification patterns** in QC, Cubao, Cubao-Araneta, Poblacion Makati
- **Quantify rental burden** vs. minimum wage in Metro Manila and Cebu
- **Inform DHSUD (Department of Human Settlements and Urban Development) policy** with empirical data
- **Cross-reference census data** with current housing supply

***

### Sample Queries & Recipes

#### Recipe 1: BGC and Makati condos for sale, ₱10M–₱30M segment

```json
{
  "listingType": "buy",
  "propertyType": "condominium",
  "cities": ["taguig", "makati"],
  "scrapeDetails": true,
  "maxRecords": 500
}
```

Post-filter on `price` between 10000000 and 30000000 downstream.

#### Recipe 2: Cebu beachfront and resort lots

```json
{
  "listingType": "buy",
  "propertyType": "land",
  "cities": ["cebu", "lapu-lapu", "mactan", "moalboal"],
  "scrapeDetails": true,
  "maxRecords": 300
}
```

#### Recipe 3: Quezon City house-and-lot family homes

```json
{
  "listingType": "buy",
  "propertyType": "house",
  "cities": ["quezon-city", "marikina", "antipolo"],
  "scrapeDetails": true,
  "maxRecords": 400
}
```

#### Recipe 4: Studio condos for rent (OFW investor leaseback)

```json
{
  "listingType": "rent",
  "propertyType": "condominium",
  "cities": ["makati", "taguig", "pasig", "mandaluyong", "quezon-city"],
  "maxRecords": 1000
}
```

Post-filter on `bedrooms == 0` for studios.

#### Recipe 5: Davao and CDO regional inventory snapshot

```json
{
  "listingType": "all",
  "propertyType": "all",
  "cities": ["davao-city", "cagayan-de-oro"],
  "scrapeDetails": false,
  "maxRecords": 600
}
```

#### Recipe 6: Tagaytay weekend-home + Batangas beach sample

```json
{
  "listingType": "buy",
  "propertyType": "house",
  "cities": ["tagaytay", "batangas", "nasugbu", "calatagan"],
  "scrapeDetails": true,
  "maxRecords": 250
}
```

#### Recipe 7: Commercial office space in Ortigas & Makati CBD

```json
{
  "listingType": "rent",
  "propertyType": "commercial",
  "cities": ["pasig", "makati", "taguig"],
  "scrapeDetails": true,
  "maxRecords": 200
}
```

#### Recipe 8: Quick sample — 50 records to validate before a large scrape

```json
{
  "listingType": "buy",
  "propertyType": "condominium",
  "cities": ["makati"],
  "maxRecords": 50,
  "maxPages": 2
}
```

***

### Integration Examples

#### Google Sheets (via Apify Integration)

1. Schedule the actor daily at 7:00 AM Philippine Time
2. Add the **"Export to Google Sheets"** integration to the schedule
3. Each morning the Sheet refreshes with the latest Lamudi inventory for your watch list

#### Make.com / Zapier / n8n

Use the **Apify** connector. Common automations:

- **New-listing alerts** — diff today's run vs. yesterday's, push fresh listings to Slack `#bgc-condo-watch`
- **Price-drop alerts** — flag any listing whose `price` dropped by more than 5%
- **Lead routing** — when a Forbes Park or Bel-Air listing appears, send to the luxury sales pod in Salesforce
- **Agency CRM enrichment** — when a PRC-licensed broker posts new inventory, enrich the broker record in HubSpot

#### Power BI / Tableau / Looker / Metabase

Connect the Apify REST API as a data source. Refresh on the actor schedule. Build dashboards covering:

- Median **PHP price per sqm** by barangay / city
- **Inventory by developer** (SMDC, Ayala, Megaworld, DMCI, Robinsons)
- **Rent vs. sale** gross-yield map of Metro Manila
- **Listing aging** — how long inventory sits before delisting
- **Furnishing mix** across condo segments

#### Postgres / Snowflake / BigQuery / Databricks

Use the [Apify webhook integration](https://docs.apify.com/platform/integrations/webhooks) to POST run datasets to your warehouse ingestion endpoint after every scheduled run. The flat JSON schema maps cleanly to a single `lamudi_listings` table — `listingId` is your natural key.

#### Salesforce / HubSpot / Pipedrive CRM

Enrich Account / Contact records for PRC-licensed brokers. When an agent's listing count or price band changes materially, fire a Task to your business-development rep. Use `agentLicenseNo` as the join key.

#### Slack / Microsoft Teams

Pipe new-listing alerts directly to channels: `#bgc-pre-sale-watch`, `#cebu-beach-lots`, `#qc-family-home`, `#commercial-makati`.

***

### Major Philippine Markets at a Glance

| Market | Region | Property mix | Notable for |
|---|---|---|---|
| **Makati CBD** | Metro Manila | Premium condos, offices | Salcedo & Legaspi Village, Ayala-developed CBD, oldest financial district |
| **BGC (Taguig)** | Metro Manila | New-build condos, offices, retail | Bonifacio Global City — masterplanned by Ayala; Park Triangle, Uptown, Grand Hyatt |
| **Ortigas (Pasig & Mandaluyong)** | Metro Manila | Condos, offices, mid-range | Megaworld and Robinsons Land territory, BPO hub |
| **Quezon City** | Metro Manila | House & lot, mid-range condos | Largest LGU by population; Loyola Heights, Greenhills, Cubao |
| **Alabang / Muntinlupa** | Metro Manila | Premium subdivisions, mid-rise | Ayala Alabang, Filinvest City, BPO south corridor |
| **Pasay & Parañaque** | Metro Manila | Bayfront condos, mixed-use | Entertainment City (PAGCOR), MOA complex, near NAIA |
| **Mandaluyong** | Metro Manila | Mid-range condos | EDSA-Shaw corridor, mid-rise inventory |
| **Cebu City & Mactan** | Visayas | Resort condos, beachfront | Cebu IT Park, Cebu Business Park, Mactan beach resorts |
| **Davao City** | Mindanao | House & lot, mid-range condos | Largest city by land area; Megaworld Davao, growing BPO |
| **Cagayan de Oro** | Mindanao | Mid-range condos, lots | Northern Mindanao hub |
| **Iloilo City** | Visayas | Condos, BPO-driven rentals | Megaworld Iloilo Business Park |
| **Baguio** | Cordillera (Luzon) | Vacation condos, cool-climate homes | Summer capital, high tourism |
| **Tagaytay** | Cavite | Vacation condos & lots | Weekend-home market for Metro Manila |
| **Batangas (Nasugbu, Calatagan)** | Calabarzon | Beachfront houses, resorts | Premium beach property near Manila |
| **Cavite & Laguna** | Calabarzon | Affordable subdivisions, industrial | Bedroom communities, industrial parks |
| **Bulacan & Pampanga** | Central Luzon | Lots, mid-market homes | New Manila International Airport, Clark corridor |

***

### Cost & Performance

| Metric | Value |
|---|---|
| Engine | Playwright Chromium with stealth patches |
| Runtime (50 listings, no details) | 2–4 minutes |
| Runtime (500 listings, with details) | 30–50 minutes |
| Runtime (5,000 listings, no details) | ~1.5 hours |
| Pricing model | Pay-per-event (per started run + per dataset item) |
| Data freshness | Live — Lamudi listings at request time |
| Auth required | None |
| Proxy required | Apify residential recommended for >500 records |
| Concurrency | Safe to run multiple parallel city/property-type configurations |
| Memory footprint | 1024 MB recommended (configurable up to 4096 MB) |

***

### Compliance, Privacy & Legal Notes

- **Public data only** — every field exposed by this actor is publicly visible to any logged-out visitor of [lamudi.com.ph](https://www.lamudi.com.ph/)
- **No login / no scraping behind authentication** — the actor never requests credentials and does not access private listings, message inboxes, or saved-search dashboards
- **No personal data beyond public contact** — agent name, agency, PRC licence, and the contact phone number the broker chose to publish for solicitations are the only person-level fields; no buyer/lead data, no payment info, no government IDs
- **PRC licence numbers are public** under the Professional Regulation Modernization Act of 2000 and are routinely published by brokers themselves on listing pages
- **Defer to Lamudi's robots.txt and Terms of Use** — Lamudi expects automated traffic to be polite (this actor uses 2.5-second base delays and honours Cloudflare WAF challenges); for high-volume commercial republishing seek a direct data partnership with Lamudi
- **Data Privacy Act of 2012 (RA 10173)** compliance is the responsibility of the data consumer when using broker contact information for marketing — provide an opt-out, do not enrol agents in unsolicited mass campaigns without lawful basis
- **No PII / no PHI / no payment data** — this is property listing metadata
- **GDPR / CCPA** caveats apply only if you process the data for EU / California residents; consult your DPO

> **Important:** Listings may not be used for unlawful purposes including fraud, deceptive marketing, or harassment of brokers. Always cite Lamudi as the source when republishing aggregate data.

***

### Frequently Asked Questions

#### How fresh is the data?

**Live at run time.** Lamudi listings change as brokers post, edit, or delist; this actor scrapes the current state of search results when you trigger a run. Schedule the actor daily, hourly, or on any cron expression for a continuously updated feed.

#### How many records will I get?

Lamudi's nationwide inventory runs in the **tens of thousands of active listings** at any moment. A single unfiltered nationwide run is bounded by `maxRecords` (defaults to unlimited) and pagination depth (~30 listings per page). Use city + property-type filters to scope your run.

#### Does this require a Lamudi account or API key?

No. Lamudi listing data is fully public. You only need an Apify account to run the actor.

#### Does Lamudi block scrapers?

Lamudi sits behind Cloudflare. The actor includes stealth patches (webdriver mask, locale `en-PH`, Asia/Manila timezone), residential proxy rotation, polite request pacing, and an explicit "Just a moment..." challenge handler. For sustained large-volume scraping use the default `RESIDENTIAL` proxy group.

#### Can I filter by price range, bedroom count, or amenity?

The actor scrapes whatever search URL you point it at. Either:

1. Set filters on Lamudi.com.ph yourself, copy the URL, and pass it via `startUrls`, or
2. Post-filter the JSON output in your stack (SQL `WHERE`, pandas, Sheets filter)

The second approach is more flexible and lets you store a complete dataset and slice it many ways later.

#### Are agent phone numbers and PRC licences always returned?

Only with `scrapeDetails: true`. The list-page view does not expose phone numbers; the detail page does. PRC licences appear when the broker has chosen to publish them in their listing bio (most professional brokers do).

#### Does it work in Cebu, Davao, and provincial cities?

Yes. Pass the city slug: `cebu`, `cebu-city`, `lapu-lapu`, `mandaue`, `davao-city`, `cagayan-de-oro`, `iloilo-city`, `bacolod`, `baguio`, `tagaytay`, `batangas`. Empty `cities` returns nationwide inventory.

#### Does it support For-Rent listings?

Yes. Set `listingType: "rent"`. Set `"all"` to capture both Buy and Rent in one run.

#### Can I get historical price snapshots?

Not directly from Lamudi — they don't expose listing price history. Build your own by scheduling the actor daily and archiving each dataset; Apify retains datasets indefinitely on most plans, so you can diff price changes over time.

#### Does it parse the barangay separately from the city?

Yes — the actor splits `"Bel-Air, Makati City, Metro Manila"` into `barangay: "Bel-Air"`, `city: "Makati"`, `province: "Metro Manila"`. Detail-page enrichment also tries to read an explicit `Barangay:` field when present.

#### How is the price normalised?

Prices are stripped of `₱`, `PHP`, `Php`, commas, and currency suffixes, then parsed to a plain number in **PHP**. Listings priced in USD or SGD (rare, mostly luxury) retain `currency` as the source code.

#### Does it deduplicate?

Yes. Within a single run, duplicate listings (same `listingId` or URL) are filtered. Across runs you can dedup on `listingId` in your warehouse.

#### Does this actor work on the Apify Free Plan?

Yes — full functionality. A 100-listing run with details typically costs cents.

#### Can I run this on a schedule?

Yes — Apify's built-in Scheduler supports hourly, daily, weekly, or any cron expression. Combine with webhook output for full automation.

#### What export formats are supported?

JSON, JSON Lines, CSV, Excel (XLSX), HTML, XML, and RSS — directly from the Apify dataset view or REST API.

#### What if a run hits a Cloudflare challenge?

The actor's WAF detector retries up to six times with 5-second backoffs. For repeated challenges, increase `requestDelay` to 3,500–4,500 ms and ensure `RESIDENTIAL` proxy group is selected.

#### Can I scrape a single listing detail?

Pass the listing URL via `startUrls` with `scrapeDetails: true`. The actor will treat it as a single-item search.

#### Is there a sister actor for other Southeast Asian / emerging markets?

Yes — see the Related Actors section for Cambodia (Realestate.com.kh), Pakistan (Zameen), Brazil (VivaReal, ZAP Imóveis), Vietnam (Chợ Tốt), Malaysia (Lelong marketplace), Belgium (Immoweb), Australia (Domain), and Canada (Realtor.ca).

#### Does this replace the Lamudi API?

Lamudi does not publish a public API for listings — this actor is the practical **Lamudi API alternative** for structured access.

***

### Related Apify Actors by Haketa

Building a multi-country property dataset or pairing PH listings with Southeast Asian classifieds? These sibling actors share schema conventions:

- [Realestate.com.kh Cambodia Scraper](https://apify.com/haketa/realestate-com-kh-scraper) — Phnom Penh, Sihanoukville, Siem Reap real estate
- [Zameen.com Pakistan Real Estate Scraper](https://apify.com/haketa/zameen-scraper) — Karachi, Lahore, Islamabad property
- [VivaReal Brazil Real Estate Scraper](https://apify.com/haketa/vivareal-scraper) — São Paulo, Rio, Belo Horizonte listings
- [ZAP Imóveis Brazil Scraper](https://apify.com/haketa/zapimoveis-scraper) — Brazil's largest property portal
- [Realtor.ca Canadian Real Estate Scraper](https://apify.com/haketa/realtor-ca-scraper) — full CREA-feed Canadian inventory
- [Domain.com.au Property Scraper](https://apify.com/haketa/domain-com-au-scraper) — Sydney, Melbourne, Brisbane, Perth
- [Immoweb.be Belgium Real Estate Scraper](https://apify.com/haketa/immoweb-scraper) — Brussels, Antwerp, Ghent, Liège
- [Apartments.com Scraper (US)](https://apify.com/haketa/apartments-com-scraper) — US rental inventory
- [Rent.com Scraper (US)](https://apify.com/haketa/rent-com-scraper) — US rental marketplace
- [Chotot.com Vietnam Scraper](https://apify.com/haketa/chotot-scraper) — Vietnam's largest classifieds, incl. property
- [Lelong.my Scraper (Malaysia)](https://apify.com/haketa/lelong-my-scraper) — Malaysia's veteran online marketplace (electronics, fashion, auto parts)
- [Mourjan MENA Classifieds Scraper](https://apify.com/haketa/mourjan-scraper) — GCC and Levant classifieds

***

### Comparison vs. Alternatives

| Approach | Setup time | Data freshness | Cost (1,000 listings) | Schema normalisation | Cloudflare-safe |
|---|---|---|---|---|---|
| **This actor** | < 5 minutes | Live at run | ~$4 | Built-in | Yes |
| Manual copy-paste from Lamudi | Days | Stale | Free + labour | None | n/a |
| DIY Python + Playwright | 2–4 weeks dev | Live | Free + infra + proxy bill | DIY | DIY (high risk) |
| Hiring a freelance scraper | Days | Live initially | $500–$2,000 + maintenance | Variable | Variable |
| Buying a private data feed | Weeks of contracts | Daily | $1k–$10k / month | Yes | n/a |
| The deprecated legacy Lamudi actor | n/a | Broken | n/a | No | No |

***

### Why Pay-Per-Event Pricing?

This actor uses **pay-per-event** pricing — you only pay when the actor runs, scaled to the data you actually consume:

- Only pay when the actor runs — no monthly fees, no minimums
- Charges scale with how many listings you actually pull
- Transparent line-item billing in the Apify console
- Free to evaluate — sample with `maxRecords: 25` for pennies
- Predictable unit economics for production pipelines

***

### Changelog

**Last updated:** 2026-07-02 — Actor verified and maintained. Data pipeline tested for quality, structure and freshness; selectors/endpoints confirmed against the live site.

- 2026-07-02 — Maintenance pass: verified data pipeline, confirmed selectors/endpoints against the live site, checked output quality and freshness.

| Version | Date | Notes |
|---|---|---|
| 1.0.0 | 2026-05 | Initial public release — Playwright stealth, JSON-LD + DOM dual extraction, PHP price parser, barangay-level location split, PRC licence regex, detail-page enrichment, 7 property types, all PH cities |

***

### Keywords

Lamudi scraper · Lamudi.com.ph scraper · Lamudi.com.ph data · Lamudi API alternative · Philippines real estate scraper · Philippines real estate data · Philippines property data · PH property scraper · Manila condo scraper · Manila real estate data · Metro Manila property listings · Makati condo scraper · BGC condo data · Bonifacio Global City listings · Taguig real estate scraper · Quezon City house and lot scraper · Ortigas commercial property data · Pasig property listings · Mandaluyong condo data · Pasay bayfront condo · Alabang Muntinlupa real estate · Cebu real estate scraper · Cebu City property data · Mactan beachfront lots · Davao property scraper · Cagayan de Oro listings · Iloilo property data · Baguio condo data · Tagaytay vacation home scraper · Batangas beach property · Philippines condo presale data · PH condo presale comparables · Makati BGC property data · Cebu Davao property listings · PHP price per sqm · Philippines real estate API · PRC broker licence lookup · Clean Title TCT CCT verification · Ayala SMDC Megaworld DMCI Robinsons inventory · OFW investor research data · BPO relocation housing data · Philippines mortgage broker data · Apify Lamudi actor

***

### Support

- **Bug reports:** Use the **Issues** tab on the [Apify Store page](https://apify.com/haketa/lamudi-scraper)
- **Feature requests:** Same place — please describe your use case so we can prioritise
- **Direct contact:** Through the Apify developer profile

If this actor saves your team time on Philippine real estate research, a **5-star rating** on the Apify Store helps other PH prop-tech, OFW investor, and BPO relocation teams discover it. Salamat!

# Actor input Schema

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

Show properties For Sale, For Rent, or both.

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

Which kind of property to collect.

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

Pick one or more locations from the list. Leave empty to search the whole Philippines.

## `customCities` (type: `array`):

Optional. Add extra Lamudi location slugs not in the dropdown above, e.g. 'general-santos' or 'subic'. Most users can leave this empty.

## `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 to collect. Set 0 for unlimited.

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

Maximum pages to load per location (~30 listings per page). Set 0 for unlimited.

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

Delay between page loads. 2000-4000ms recommended for smooth, complete runs.

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

Optional. Paste ready-made Lamudi search page URLs to scrape them directly. Overrides the filters above. Most users can leave this empty.

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

Residential proxy is recommended for reliable, complete results.

## Actor input object example

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

# Actor output Schema

## `dataset` (type: `string`):

All scraped Lamudi.com.ph property listings. Open, filter and export as JSON, CSV or Excel.

## `overview` (type: `string`):

Table view of the most valuable fields for each listing.

## `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 = {
    "listingType": "buy",
    "propertyType": "all",
    "cities": [],
    "customCities": [],
    "scrapeDetails": false,
    "maxRecords": 100,
    "startUrls": [],
    "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 = {
    "listingType": "buy",
    "propertyType": "all",
    "cities": [],
    "customCities": [],
    "scrapeDetails": False,
    "maxRecords": 100,
    "startUrls": [],
    "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(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 '{
  "listingType": "buy",
  "propertyType": "all",
  "cities": [],
  "customCities": [],
  "scrapeDetails": false,
  "maxRecords": 100,
  "startUrls": [],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call haketa/lamudi-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,haketa/lamudi-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/EVqT1Q3FqRNJbvPDK/builds/P6DpP4F3ZBTnwsRka/openapi.json
