PropertyGuru Scraper [Only $0.85/1K💰] | SG/MY/TH | PSF | MRT avatar

PropertyGuru Scraper [Only $0.85/1K💰] | SG/MY/TH | PSF | MRT

Pricing

from $0.83 / 1,000 results

Go to Apify Store
PropertyGuru Scraper [Only $0.85/1K💰] | SG/MY/TH | PSF | MRT

PropertyGuru Scraper [Only $0.85/1K💰] | SG/MY/TH | PSF | MRT

Scrape PropertyGuru Group listings from propertyguru.com.sg, propertyguru.com.my and ddproperty.com: price, PSF, beds/baths, area, tenure, MRT, agent details and photos. Sale and rent across SG, MY and TH in one dataset, from $0.00085 per listing.

Pricing

from $0.83 / 1,000 results

Rating

0.0

(0)

Developer

Ahmed Jasarevic

Ahmed Jasarevic

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

3

Monthly active users

18 days ago

Last modified

Categories

Security

Limited permissions

Share

Propertyguru Scraper

Scrape property listings from PropertyGuru Group's Southeast Asia portals — propertyguru.com.sg (Singapore), propertyguru.com.my (Malaysia) and ddproperty.com (Thailand) — with price, PSF, beds/baths, floor and land area, tenure, MRT proximity, agent details, photos, description and coordinates. Sale and rent listings from all three markets merge into one dataset at $0.00085 per listing.

Built for SE Asia proptech teams, buyer agents, mortgage brokers, expat relocation services and price-trend researchers.

Main Use Cases

  • Singapore property data — build a clean database of SG sale and rental listings with price, PSF, tenure and MRT proximity
  • Thailand real estate data — Thai listings via ddproperty, with Thai titles and prices returned as correct Unicode
  • Malaysia property listings — KL-area condos, landed homes and new launches with agent and agency data
  • Property price monitoring — scheduled runs track price changes, new listings and delistings per district or project
  • Agent lead generation — collect agent name, agency, CEA licence number and profile URL for outreach
  • HDB resale and condo research — filter by property type (CONDO, HDB, LANDED, APARTMENT, COMMERCIAL) and district

How It Works

PropertyGuru Scraper workflow: from SG, MY and TH property searches to structured listing, price and agent records

Looking for a PropertyGuru scraper or a practical PropertyGuru API alternative? Search the Singapore, Malaysia and Thailand portals or paste listing URLs and get structured sale and rent records for price monitoring, agent lead generation and market research. Each record includes price, PSF, beds and baths, floor and land area, tenure, address, MRT proximity, agent details, photos and coordinates.

Use the dataset to compare districts, track price changes, build agent lists or feed a Southeast Asia property database. Export as JSON, CSV or Excel, or pull results through the Apify API. Start with a small run, then pay from $0.85 per 1,000 listings.

Build a Southeast Asia Property Database Without the PropertyGuru API

PropertyGuru does not publish a documented public listing API. This Actor turns public search results and listing pages into structured property records for Singapore, Malaysia and Thailand. Use it to build a comparable database without an API key or a separate data subscription.

Coordinates: detail pages publish lat/lng for all three portals; search results expose coordinates for Singapore map search. Paste individual listing URLs to get detail-page coordinates everywhere.

Thai text: Thai titles, prices and agent names are returned as correct Unicode.

Input

FieldTypeRequiredDefaultNotes
countriesarrayNo["th"]Portals to scrape: Thailand (ddproperty.com), Singapore (propertyguru.com.sg), Malaysia (propertyguru.com.my) — combine several in one run, results merge
startUrlsarrayNo[]Exact URLs to scrape (result pages or single listings, any of the three portals, mixed freely). Overrides countries and all filters below
listingTypeenumNosalesale or rent
freetextstringNo""Location / district / MRT / project search text, e.g. Orchard, Mont Kiara
propertyTypeenumNo""CONDO, HDB, LANDED, APARTMENT, COMMERCIAL
minPrice / maxPriceintegerNo0Price range in local currency (SGD / MYR / THB); 0 = no bound
bedroomsintegerNo-1Exact bedroom count (0 = studio, -1 = any)
useMapSearchbooleanNofalseSingapore only: return lat/lng for every listing via the map-search surface
maxItemsintegerNo50Max listings for the whole run (split evenly across selected portals); the run fetches as many pages as needed to reach it
requestDelayMsintegerNo1000Gap between requests. Lower is faster; higher is more conservative
maxBlockRetriesintegerNo12Retry limit for a failed request
blockRetryBudgetSecsintegerNo420Total seconds one failed request may wait between retries
proxyobjectNoRESIDENTIALResidential proxy recommended; each selected portal is matched to its market automatically

A pasted URL wins over the Portals dropdown — a .com.sg link scrapes Singapore even if Thailand is selected, and the run logs which portals went unused so the override is never silent. maxItems is a total for the run, split evenly between selected portals.

Output — Property Listing Records for Market Research

One dataset item per listing. Search-surface rows include:

FieldDescription
id, title, urlListing identity and direct detail URL
price, priceMin, priceMax, pricePretty, currency, priceQualifierPrice in local currency; range bounds for new-build projects; "Price on Ask" qualifier when no figure exists
pricePsfPrice per square foot, when published
floorArea, floorAreaValue, landArea, landAreaValueAreas as published and as bare numbers (land on detail pages; key for Thai listings)
bedrooms, bathrooms, tenure, buildYearRoom counts, freehold/leasehold code (F, L99), completion year
propertyType, propertyTypeCode, projectIdCondo/HDB/Landed/Apartment/Commercial + portal code + project grouping
fullAddress, shortAddress, districtCode, districtText, regionText, areaText, nearestMrtLocation tiers; Thai-only subdistrict; nearest MRT/BTS with distance (Singapore)
description, features, photoCount, imagesListing text, amenity tags, photo count and URLs
agentName, agentId, agentLicense, agentProfileUrl, agentVerifiedAgent identity, CEA registration, profile link
agencyName, agencyIdAgency identity
latitude, longitudeCoordinates on detail pages for every portal; SG map-search on the search surface
postedOn, updatedOn, recencyTextFirst-posted vs last-changed dates (an edited listing is not "new")
statusCode, isProjectListing, isPremiumProjectListing, projectListingSubType, isVerified, isOfficialListing, isDeveloperListingListing provenance flags. isProjectListing comes from the page; Singapore and Malaysia detail rows carry the portal's own isPremiumProjectListing and projectListingSubType instead
sourcePageUrlThe page the row came from

Example Input

{
"countries": ["sg", "my"],
"listingType": "sale",
"propertyType": "CONDO",
"freetext": "Mont Kiara",
"minPrice": 500000,
"maxItems": 200
}

Or paste listing URLs or a filtered result page directly (any portal):

{
"startUrls": [{ "url": "https://www.ddproperty.com/en/property/single-house-in-sriwilai-for-sale-10800011" }],
"maxItems": 10
}

Example Output — Listing Record (trimmed)

{
"id": 500249916,
"title": "The Tapestry",
"url": "https://www.propertyguru.com.sg/listing/for-sale-the-tapestry-50024991",
"country": "sg",
"portal": "propertyguru.com.sg",
"listingType": "sale",
"price": 860000,
"pricePretty": "S$ 860,000",
"currency": "SGD",
"pricePsf": "S$ 1,814.35 psf",
"floorArea": "474 sqft",
"bedrooms": 1,
"bathrooms": 1,
"tenure": "L99",
"buildYear": 2021,
"propertyType": "Condominium",
"fullAddress": "61 Tampines Street 86, Pasir Ris / Tampines",
"districtText": "Pasir Ris / Tampines",
"regionText": "Changi / Pasir Ris (D17-18)",
"nearestMrt": null,
"description": "High Floor Spacious 1 Bedder Plus Study with a Dual Pool View !",
"features": ["Pool", "Gym", "Security", "Aircon", "Balcony"],
"photoCount": 24,
"agentName": "Alton Nah",
"agentLicense": "R074064A",
"agencyName": "PROPNEX REALTY PTE. LTD.",
"latitude": null,
"longitude": null,
"postedOn": "26 Sep 2026",
"recencyText": "Listed on Sep 26, 2026 (3h ago)",
"isOfficialListing": true,
"sourcePageUrl": "https://www.propertyguru.com.sg/property-for-sale?isCommercial=false&listingType=sale&locale=en"
}

Detail-page rows (from pasted single-listing URLs) additionally carry landArea, latitude/longitude for every portal, the full image gallery, and both postedOn and updatedOn. Singapore and Malaysia detail rows also expose the project-listing flags; Thailand rows return the detail fields available on the listing page.

SE Asia Property Listings at $0.00085 Per Listing

The Actor bills $0.00085 per listing plus the standard $0.00005 actor start. Listings read from a pasted single-listing URL carry a detail-listing event once per row. Search-result pages return many listings per page, so runs based on search, MRT or district URLs stay at the flat per-result rate. The Actor de-duplicates by listing ID, so overlapping pages never duplicate rows. Proxy usage is billed separately by Apify.

Integrations & Automation

  • API — run and fetch via the Apify REST API, or call it from AI agents through the Apify MCP server
  • Scheduling — daily/weekly runs for price-change tracking per district or project
  • Webhooks — push new listings or price drops to your app, Sheets or Slack
  • Export — JSON, CSV, Excel, HTML

Recommended schedule: daily for price monitoring and new-listing alerts; weekly for full-market database refreshes and research datasets.

This actor covers all three portals (SG + MY + TH) in a single run, at $0.00085/listing.

FAQ

Why use this Actor instead of the official PropertyGuru API?

PropertyGuru does not publish a documented public listing API. This Actor turns public search results and listing pages into structured property records for Singapore, Malaysia and Thailand.

What are alternatives to this Actor for Southeast Asia property data?

SG-focused Store actors cover part of the market. This Actor covers Singapore, Malaysia and Thailand in a single run.

Why is my run returning an empty dataset?

Check that the proxy is enabled, then retry with a smaller maxItems. Large runs can also be split by portal or district.

Why are coordinates null in my run?

Coordinates are published on detail pages for all three portals. On search results they are available for Singapore map search. Paste individual listing URLs for detail-page coordinates everywhere.

Why is a price missing on some listings?

New-build projects may be advertised as a range or as "Price on Ask". Ranges land in priceMin/priceMax; "Price on Ask" leaves price empty with a priceQualifier.

Can I scrape by district or MRT station?

Yes. Use freetext for areas, districts, MRT/BTS stations and project names, or paste a filtered result URL.

For AI Agents & LLM Apps

  • Purpose: given portals, filters or direct URLs, returns one structured row per property listing (price, PSF, rooms, tenure, location, MRT, agent, photos, and coordinates on detail pages) from PropertyGuru's SG/MY/TH portals.
  • Minimal working input:
{ "countries": ["sg"], "listingType": "sale", "maxItems": 50 }
  • Variant inputs — direct URL: { "startUrls": [{ "url": "https://www.propertyguru.com.sg/listing/..." }] }; rent: { "countries": ["my"], "listingType": "rent", "freetext": "Mont Kiara", "maxItems": 100 }.
  • Output fields: id, title, url, country, portal, listingType, price, priceMin, priceMax, pricePretty, priceQualifier, currency, pricePsf, floorArea, floorAreaValue, landArea, landAreaValue, bedrooms, bathrooms, tenure, buildYear, propertyType, propertyTypeCode, projectId, fullAddress, shortAddress, districtCode, districtText, regionText, areaText, nearestMrt, description, features, photoCount, images, agentName, agentId, agentLicense, agentProfileUrl, agentAvatar, agentVerified, agencyName, agencyId, latitude, longitude, postedOn, postedUnix, updatedOn, updatedUnix, recencyText, statusCode, isProjectListing, isVerified, isOfficialListing, isDeveloperListing, isPreLaunched, sourcePageUrl.
  • Behaviors: startUrls overrides countries and filters. maxItems is split between selected portals. Pasted listing URLs carry land area and coordinates for every portal; search rows return coordinates for Singapore map search. tenure is a code (F, L99). price is empty with priceQualifier: "Price on Ask" when no figure exists. postedOn is first-posted; updatedOn records edits.
  • Billing: $0.00085 per listing plus the standard $0.00005 actor start; pasted single-listing URLs add a detail-listing event per row. Proxy traffic is billed separately by Apify.

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by PropertyGuru Group, PropertyGuru Pte Ltd, DDproperty, or any of their affiliates. It reads only publicly available property information. It does not log in, bypass paywalls or access private data beyond what the portals publish on listing pages. Users are responsible for their own compliance with each portal's Terms of Service and applicable law. The actor is intended for legitimate market research, price monitoring and competitive analysis.

SEO Keywords

propertyguru scraper, singapore property data, malaysia property listings, thailand real estate data, ddproperty scraper, sg property for sale, hdb resale data, condo price psf, propertyguru api alternative, southeast asia property, rental market data, property listing database, mrt station property, freehold leasehold data, bangkok property listings, kuala lumpur property, singapore condo rental, property price monitoring, agent lead generation, property market research