DotProperty & Lamudi Real Estate icon

DotProperty & Lamudi Real Estate

Scrape Philippines property listings from dotproperty.com.ph and lamudi.com.ph with exact map-pin coordinates, price, beds, baths, areas, facilities,…

Start using this actor on Apify ↗Need a custom scraper?Contact us ↗

DotProperty & Lamudi Real Estate at a glance

DotProperty & Lamudi Real Estate is a ready-to-run Apify actor from abotapi for collecting real estate data. Its documented output includes id, portal, title, change (incremental) and price (php), which you can export as JSON, CSV or Excel or read through the Apify API. It costs $1.80 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Real Estate, Automation, Developer Tools
Region
Asia
Pricing
$1.80 per 1,000 results (Free plan), from $1.00 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
25 options

Scrape Philippines property listings from dotproperty.com.ph and lamudi.com.ph with exact map-pin coordinates, price, beds, baths, areas, facilities, full photo galleries, and agent contact details. Covers houses, condos, apartments, townhouses, villas, land, offices and commercial units, for.

What DotProperty & Lamudi Real Estate can do

  • Two portals, one dataset. DotProperty.com.ph and Lamudi.com.ph in the same run; every row carries a source field so you can always tell which portal it came from. Portals are walked one at a time and share the same Max listings budget in the order listed, so a small budget with both portals selected can return only the first portal's rows; raise Max listings if you want a real mix of both.
  • Exact map-pin coordinates. Latitude and longitude come from each listing's own detail page, not a rough city-level guess.
  • Full listing detail on demand. Price with currency and rent period, property type, bedrooms, bathrooms, usable and land area, floor, facilities, full description, complete photo gallery and agent contact details, switched on with one setting.
  • Three ways to start. Build a search from location, operation and property-type filters, paste search-result pages, or paste direct listing links from either portal; all three are auto-classified.
  • Built for recurring monitoring. Incremental mode tags every listing NEW, UPDATED, UNCHANGED, REAPPEARED or EXPIRED against your own saved baseline, so a scheduled run reports only what changed.
  • Resume without losing progress. Continue one interrupted run from a pasted run or dataset id; listings it already collected are skipped, not re-scraped and not billed again.

Choose what to collect

These inputs let you configure DotProperty & Lamudi Real Estate - Philippines Property Scraper. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredSearch mode = build search URLs from the filters below. URL mode = paste one or more dotproperty.com.ph or lamudi.com.ph URLs (search or listing pages); they are auto-classified and pagination advances forward from any ?page=N you provide.

Choices: search, url

sitesarrayWhich Philippines property portals to search. Both by default, every row carries a source field so you can tell them apart.
operationstringWhether to search rental listings or listings for sale.

Choices: sale, rent

propertyTypesarrayWhich property types to search. 'properties' means all types. (Townhouses and villas exist only on Dot Property; offices map to Lamudi's commercial category; land maps to land on both.)
locationsarrayLocation names or slugs, e.g. 'Metro Manila', 'Makati', 'Cebu', 'metro-manila/makati'. Case and spaces don't matter; they are slugified automatically. One search is built per (portal x property type x location).
minPriceintegerMinimum price in Philippine Pesos. Leave empty for no minimum.
maxPriceintegerMaximum price in Philippine Pesos. Leave empty for no maximum.
Show 18 more inputs
More input fields
InputWhat it controls
minBedroomsintegerMinimum number of bedrooms (0=studio).
minSqmintegerMinimum usable floor area in square meters. Applied by both sites.
sortstringSort order. Dot Property supports all four values. Lamudi honours only Newest first (sorting=newest); for the other values Lamudi keeps its default order.

Choices: newest, min_price, max_price, relevance

urlsarrayOne or more dotproperty.com.ph or lamudi.com.ph URLs. Paste search pages (e.g. /properties-for-sale/metro-manila/makati or /rent/metro-manila/makati/house/) or direct listing pages (/ads/{slug}_{id} or /property/{id}). Also accepted: agency and publisher pages, lamudi agent pages (/real-estate-agent/{id}), and ?page=N / filter / sort query strings. Left unedited, this field scrapes one example URL per supported page shape. Search URLs continue through all available results pages; a listing URL is collected once. In URL mode the search-mode fields above are ignored.
maxItemsintegerHard cap on the number of listings collected across all searches and URLs. This is the run's volume limit; leave Max pages below unlimited (empty).
maxPagesintegerOptional page cap per search URL. Leave empty for no page limit, the run stops at Max listings. Both portals show roughly 25-30 listings per page.
fetchDetailsbooleanWhen ON, results are enriched with exact map coordinates (lat/lng), facilities, the full photo gallery, description, and agent contact details. Adds a per-listing detail-enrichment charge. Default ON, the exact map-pin coordinates only exist in the full listing data.
resumeFromRunIdstringPaste a previous run ID or dataset ID to continue that ONE interrupted crawl - listings it already collected are skipped, not re-scraped. Unrelated to Incremental mode below, which tracks a recurring search across scheduled runs.
incrementalModebooleanWhen ON, this actor remembers the last run of this SAME search (via its own saved state, keyed on your filters or on State key below) and classifies every listing as NEW / UPDATED / REAPPEARED / EXPIRED. Unrelated to Resume from run/dataset ID above, which continues one specific interrupted run. Default OFF - normal runs return every matching listing every time.
stateKeystringOptional. Set this to a name of your choice to manually control which runs share incremental state (e.g. to deliberately merge two different searches into one monitoring campaign). Leave blank to auto-derive the key from your search filters - two different filter setups then never share a baseline.
emitUnchangedbooleanWhen ON, listings with no detected change are still returned (tagged changeType=UNCHANGED) instead of being suppressed. Off by default so a recurring run returns only what actually changed. Turning this ON returns - and bills, at the standard per-result rate - every listing scanned, not just the changed ones.
emitExpiredbooleanWhen ON, listings tracked by a previous incremental run that no longer appear are returned once, tagged changeType=EXPIRED. Only fires after a run that scans its search to a genuine natural end (no Max listings cap hit, no Resume) - a partial run leaves previous state untouched instead of guessing. Turning this ON returns - and bills, at the standard per-result rate - these extra rows.
monitoringModebooleanWhen ON, turns on Incremental mode and returns only listings not seen on previous runs of the same search (NEW or REAPPEARED). Updated listings are tracked silently. If Emit expired listings is also ON, listings that are no longer found are still returned (tagged EXPIRED) and billed at the standard per-result rate.
resetMonitoringStatebooleanWhen ON together with Incremental or Monitoring mode, this run discards the saved state for the search and starts a fresh baseline. Turn OFF again afterwards.
ignoreFieldsForChangesarrayOutput field names that should NOT make a listing count as UPDATED, even when they changed. These fields are always ignored already: posted_ago, agent_listing_count, scraped_at, posted_at, price_raw, specs_raw, description_html, location_text, agent_info_text and contact_email. The order of images, facilities, nearby places and breadcrumbs is also ignored. Add more names here, for example price_per_sqm. A name matches at any nesting depth. Ignored fields are still returned in the output.
mcpConnectorsarrayOptionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON, the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).
notionParentPageUrlstringURL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on items written to each connector per run. Does not affect the dataset.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

idID (text)
sourcePortal (text)
titleTitle (text)
changeTypeChange (incremental) (text)
pricePrice (PHP) (number)
bedroomsBeds (number)
bathroomsBaths (number)
usable_area_sqmArea (sqm) (number)
regionRegion (text)
cityCity (text)
urlURL (link)
changedFieldsChanged fields (array)
Show 36 more fields
firstSeenAtFirst seen (date)
lastSeenAtLast seen (date)
latitudeLat (number)
longitudeLng (number)
addressaddress
agent_nameAgent (text)
agent_phonePhone (text)
agent_urlAgent profile (link)
agent_listing_countListings (number)
agent_verifiedVerified (text)
operationOperation (text)
property_typeProperty type (text)
currencyCurrency (text)
price_periodPrice period (text)
price_per_sqmPrice per sqm (text)
areaArea (text)
land_area_sqmLand area sqm (text)
floorFloor (text)
floorsFloors (text)
car_parksCar parks (text)
facilitiesFacilities (text)
nearby_poisNearby pois (text)
descriptionDescription (text)
imagesImages (text)
image_countImage count (text)
og_imageOg image (text)
posted_agoPosted ago (text)
listing_idListing id (text)
location_sourceLocation source (text)
breadcrumbsBreadcrumbs (text)
contract_durationContract duration (text)
posted_atPosted at (text)
scraped_atScraped at (text)
price_rawPrice raw (text)
location_textLocation text (text)
contact_emailContact email (text)

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "id": "example-0000-1111-2222-000000000001",
  "listing_id": "example-0000-1111-2222-000000000001",
  "source": "dotproperty",
  "url": "https://www.dotproperty.com.ph/ads/example-condo-for-sale-in-example-city_example-0000-1111-2222-000000000001",
  "title": "2 Bedroom Condo for Sale in Example City",
  "price": 6500000,
  "currency": "PHP",
  "price_per_sqm": 130000,
  "bedrooms": 2,
  "bathrooms": 2,
  "usable_area_sqm": 50,
  "floor": 12,
  "latitude": 14.5547,
  "longitude": 121.0244,
  "location_source": "detail_page",
  "breadcrumbs": [
    "Philippines",
    "Metro Manila",
    "Example City"
  ],
  "facilities": [
    "Swimming pool",
    "Gym",
    "24-hour security",
    "Function room"
  ],
  "images": [
    "https://img.example.com/listing/1.jpg",
    "https://img.example.com/listing/2.jpg"
  ],
  "image_count": 2,
  "og_image": "https://img.example.com/listing/1.jpg",
  "description": "Bright 2 bedroom unit with balcony and city view, close to Example City's main business district.",
  "listing_id_text": "EX-000123",
  "agent_name": "Example Realty Group",
  "agent_phone": "+63 900 000 0000",
  "agent_url": "https://www.dotproperty.com.ph/agency/example-realty-group",
  "agent_listing_count": 42,
  "agent_verified": true
}

Ways to use this data

  • Real estate investment research: track prices, price per square meter and unit availability for condos, houses and land across Metro Manila, Cebu and other cities.
  • Broker and agency lead generation: collect agent names, phone numbers and profile links attached to active listings in a target area.
  • Rental market monitoring: schedule recurring runs with Incremental mode to catch new listings and price changes on a rent-focused search.
  • Map-based property tools: feed the exact latitude and longitude from listing detail pages into your own map, comparables or valuation tool.
  • Competitive monitoring for developers and agencies: watch a development's or area's listings for new units, price changes, and units marked EXPIRED when withdrawn.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does DotProperty & Lamudi Real Estate return?

The documented output for DotProperty & Lamudi Real Estate includes id, portal, title, change (incremental), price (php), beds, baths and area (sqm). Availability of each field depends on the source page and the selected mode.

How much does DotProperty & Lamudi Real Estate cost?

It costs $1.80 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

Can I get only new or changed listings on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Unchanged listings are then suppressed and not billed unless you turn on Emit unchanged listings, and withdrawn listings are only reported once a run completes a full, uncapped scan with Emit expired listings on.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.

Ready to collect with DotProperty & Lamudi Real Estate?

Run it on Apify with your own input and export the results as JSON, CSV or Excel.