Southeast Asia Property Listings by Country & Bedroom Count avatar

Southeast Asia Property Listings by Country & Bedroom Count

Pricing

from $0.49 / 1,000 results

Go to Apify Store
Southeast Asia Property Listings by Country & Bedroom Count

Southeast Asia Property Listings by Country & Bedroom Count

Search PropertyGuru for-sale and for-rent listings across Singapore, Malaysia, Thailand and Indonesia by property type, bedrooms and price, with agent details, area and photos per listing.

Pricing

from $0.49 / 1,000 results

Rating

0.0

(0)

Developer

Dataspryva

Dataspryva

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Security

Limited permissions

Share

PropertyGuru & DDProperty Listings Scraper

Collect property listings from Singapore and Malaysia on PropertyGuru and from Thailand on DDProperty. Search by keyword, property type, district, price, bedrooms, bathrooms, size, tenure, furnishing, floor level, availability, MRT distance and sort order, or paste search, listing and project URLs. Every record keeps the source's price label, area unit and contact details instead of flattening them.

What it does

  • Three live markets — Singapore (propertyguru.com.sg), Malaysia (propertyguru.com.my) and Thailand (ddproperty.com/en) with local currencies and area units.
  • Filter-first search — keyword or area, sale or rent, property type, Singapore district D01-D28, price, exact bedroom and bathroom chips, floor size, tenure, furnishing, floor level, move-in availability, MRT distance and eight sort orders.
  • Paste any URL — search-result URLs paginate, listing URLs return one detailed record, project URLs include the project's unit types. The market is inferred from the host.
  • Optional detail enrichment — opens each listing page for the description, agent mobile, licence, rating, agency, coordinates, nearby transit and schools, amenities, facilities, floor plans, videos and virtual tours.
  • Project and new-launch aware — reads unit-level prices, bedroom and bathroom counts, floor-area ranges and floor plans; development contact replaces agent contact where the source publishes a developer instead of an agent.
  • Deep pagination with deduplication — follows the site's own page count until your item or page limit, and removes repeated promoted cards.

Output per listing

GroupFields
IdentityrecordType, listingId, title, listingUrl, transactionType, country, sourceDomain, sourceUrl, sourcePage, statusCode, listerType, accountType
Priceprice, priceText, priceType, priceMin, priceMax, currency, pricePerSqft, pricePerSqm, pricePerArea, pricePerAreaUnit
PropertypropertyType, propertyTypeCode, propertyTypeGroup, bedrooms, bathrooms, floorArea, floorAreaUnit, floorAreaSqft, floorAreaSqm, landArea, landAreaUnit, landAreaSqft, landAreaSqm, tenure, tenureCode, completionYear, furnishing, floorLevel, availability, isNewProject, isVerified, isOfficialListing, isDeveloperListing
ProjectprojectName, projectId, projectUrl, developer, developerUrl, developerWhatsapp, unitTypes
Locationaddress, fullAddress, shortAddress, streetName, district, districtCode, region, regionCode, postalCode, latitude, longitude
NearbynearbyMrt, nearestTransit, nearbySchools
ContactagentId, agentName, agentProfileUrl, agentLicense, agentVerified, agentJobTitle, agentMobile, agentRating, agentReviewCount, agencyName, agencyId
MediaimageUrls, imageCount, thumbnailUrl, floorPlanUrls, videoUrls, virtualTourUrls
Detailheadline, description, amenities, facilities, highlights
DatespostedOn, postedOnUnix, recency, scrapedAt

Empty fields are omitted from each record instead of being returned as null. area is kept as an alias of floorArea for compatibility with older datasets.

Input

FieldTypeDefaultDescription
modeselect, requiredsearchSearch by filters, or scrape pasted URLs.
countryselectSGSG, MY or TH (mode=search).
listingTypeselectsaleSale or rent.
searchQuerytext–Area, project, station or keyword.
propertyTypeselectanyCondo, apartment, HDB, landed, bungalow, semi-detached, terrace, land or commercial.
districtselectanySingapore district D01-D28.
minPrice / maxPriceinteger–Price range in SGD, MYR or THB.
bedroomsmulti-select–Studio (0) through 5+.
bathroomsmulti-select–1 through 5+.
minSize / maxSizeinteger–Floor area in sqft (SG/MY) or sqm (TH).
tenureselectanyFreehold or leasehold (sale only).
furnishingselectanyUnfurnished, partially or fully furnished.
floorLevelselectanyGround, low, mid, high or penthouse.
availabilityselectanyImmediate to after three months (rent only).
maxDistanceToMrtselectany250 m to 1.5 km (SG/TH).
sortselectrecommendedNewest, price, price per area or size.
maxItemsinteger100Stop after this many listings.
maxPagesinteger50Stop after this many search pages.
includeDetailsbooleantrueEnrich each listing with detail-page fields.
startUrlsURL list–Search, listing or project URLs (mode=byUrl).

Example: two-bedroom condos in Singapore District 20

{
"mode": "search",
"country": "SG",
"listingType": "sale",
"propertyType": "condo",
"district": "D20",
"bedrooms": ["2"],
"maxItems": 20,
"includeDetails": true
}

Example: rentals in Kuala Lumpur

{
"mode": "search",
"country": "MY",
"listingType": "rent",
"searchQuery": "Mont Kiara",
"minPrice": 2000,
"maxPrice": 6000,
"furnishing": "fully",
"maxItems": 30
}

Example: Bangkok condos near the MRT

{
"mode": "search",
"country": "TH",
"listingType": "sale",
"propertyType": "condo",
"searchQuery": "Sukhumvit",
"maxDistanceToMrt": "500m",
"sort": "priceAsc",
"maxItems": 20
}

Example: paste a search page and a project page

{
"mode": "byUrl",
"startUrls": [
{ "url": "https://www.propertyguru.com.sg/property-for-sale?district_code=D09" },
{ "url": "https://www.propertyguru.com.my/property-listing/project/enlace-suite-ii-for-sale-by-amona-development-sdn-bhd-501086101" }
],
"maxItems": 50
}

Use cases

  • Market comparison — compare asking prices and price per area across Singapore, Malaysia and Thailand in one dataset.
  • Lead research — collect the public agent name, mobile, licence and agency for non-project listings, or the developer contact for project listings.
  • Investment screening — combine district, price, size, tenure and MRT filters to shortlist candidates.
  • New-launch tracking — follow project pages with unit-level prices, layouts and floor plans.
  • Listing audits — re-scrape a saved set of URLs to spot price or availability changes.

Notes and limitations

  • Indonesia is not available. The PropertyGuru Indonesia marketplace closed on 2023-11-30, so the actor reports that closure instead of returning empty data.
  • Thailand uses DDProperty's English site. That is the live Thai marketplace for this listing data; the old PropertyGuru Thailand domain no longer serves listings.
  • Agent email is not published. The actor returns the public agent mobile, licence, profile and rating where the source shows them; it does not invent an email address.
  • Project pricing is a range or a "from" price. When the source only gives unit ranges, the record carries priceMin and priceMax plus the source label rather than a made-up single price.
  • Short links are not supported. Paste canonical search, listing or project URLs.
  • Pasted detail pages can be protected. If a Thai listing or project page is blocked but the same id still appears in search, the record is rebuilt from search-card data. Detail-only fields such as the description, amenities and coordinates are then omitted, and the run status reports how many records used this fallback.

FAQ

Is this affiliated with PropertyGuru or DDProperty? No. This is an independent, third-party actor that reads publicly visible listing pages. It is not operated by or affiliated with either marketplace.

Do I need an account, cookie or API key? No. The actor works without credentials or a proxy setup.

Why is the agent mobile missing on some records? Mobile numbers are only published on some listing pages. Project and new-launch listings usually show a developer contact instead, so those records carry developer fields rather than agent fields. Email addresses are not published at all.

Why does one listing have price and another only priceMin/priceMax? A fixed asking price becomes price; a range or a project with several unit prices becomes priceMin/priceMax. priceText always keeps the label shown by the source, including "Price on ask" or "Starting From".

Why is floorAreaUnit sometimes sqft and sometimes sqm? Singapore and Malaysia publish square feet; Thailand publishes square metres. Both floorAreaSqft and floorAreaSqm are provided so records from different markets can be compared directly.

What happens when a filter is not available in a market? The actor ignores that filter and says so in the run's status message. Singapore districts, for example, do not apply to Malaysia or Thailand.

How many requests does a run make? One request per search page. With detail enrichment on, it also makes one request per emitted listing. Turning enrichment off gives the fastest and smallest run.

Can I scrape more than a few thousand listings? Yes. Pagination follows the site's own last page and stops at maxItems or maxPages; duplicate promoted cards are removed. Very large runs take longer because pages are read at a polite pace.

Are images and media links usable? Yes. Image, floor-plan, video and virtual-tour URLs are absolute links to the source's public media host.

Who is responsible for how the contact data is used? Agent and developer contact details are personal or business data. You are responsible for using them lawfully in your jurisdiction and for respecting the marketplace's terms.