Pricing
from $5.00 / 1,000 results
PropertyGuru Singapore Scraper
Scrape sale and rental listings from propertyguru.com.sg โ price, size, bedrooms, location, agent contact, photos, MRT distances, and more. Returns clean structured JSON / CSV / Excel.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
Actor stats
1
Bookmarked
23
Total users
11
Monthly active users
2.3 hours
Issues response
22 days ago
Last modified
Categories
Share
๐ PropertyGuru Singapore Scraper
Get every public listing on propertyguru.com.sg as clean structured data โ price, size, bedrooms, location, agent contact, photos, MRT distances, descriptions, more. Returns JSON, CSV, or Excel.
๐ Apify
๐ Python
๐ Output
โก๏ธ ~0.7 s per listing, 256 MB RAM, no browser. Built on PropertyGuru's own
__NEXT_DATA__payload โ same data the site renders to itself.
โจ Why this scraper
- ๐ฏ Every monetizable field โ price, PSF, bedrooms, floor & land area, tenure, district, lat/lon, agent name + CEA license + mobile, agency, 19+ photos, floor plans, MRT walk times, full description.
- ๐ Fast and cheap โ pure HTTP with browser TLS fingerprinting. 5ร the throughput of a Playwright-based scraper at 1/8th the memory.
- ๐ Incremental friendly โ pass a
sincetimestamp and the actor skips listings posted before it, so daily refresh runs only pay for what's new. - ๐งฉ No glue code needed โ push the output straight into BigQuery, Postgres, Notion, Make, n8n, Sheets โ every field is typed and the dataset table view is pre-configured.
๐ Quick start
- Click Try for free above.
- Pick
searchType: saleorrent, optionally narrow by district / price / bedrooms. - Hit Start.
- Download as JSON, CSV, or Excel from the Output tab.
That's it. No accounts, no proxies, no anti-bot tinkering.
๐๏ธ Input
| Field | Type | What it does |
|---|---|---|
searchType | sale | rent | Choose properties for sale or for rent. Default: sale. |
freetext | string | Search by project / street / area name (e.g. "Tanjong Pagar"). |
districts | string list | Restrict to specific SG districts (D09, D10, โฆ). |
propertyTypeCodes | string list | Restrict by type โ APT, CONDO, HDB, SEMI, TERR, BUNG, EXEC, LAND. |
minPrice / maxPrice | int | Price bounds in SGD. For rentals, monthly rent. |
bedrooms | string list | Bedroom counts to include ("2", "3"; use "0" for studio). |
sortBy | enum | default (relevance), price_low, price_high. |
since | datetime | Only listings posted after this moment โ for incremental refreshes. |
scrapeDetails | bool | Off = URL-only mode (~10ร cheaper, fast diff runs). On (default) = full record. |
maxItems | int | Cap on records. 0 = unlimited. Default: 50. |
concurrency | int | Parallel detail fetches. Default: 5. Max: 25. |
startUrls | URL list | Advanced override: feed your own already-built PG search URLs. |
๐ฆ Sample output (one listing)
{"url":"https://www.propertyguru.com.sg/listing/for-sale-the-lakeshore-500140099","id":"500140099","scraped_at":"2026-05-15T08:34:46+00:00","listingType":"SALE","propertyType":"Condominium","propertyTypeCode":"CONDO","propertyTypeGroup":"N","title":"The Lakeshore","headline":"Lakeshore 3-Bedroom ยท Pool View ยท Vacant","description":"Spacious 1,109 sqft 3-bedroom unit with unobstructed pool views...","price":1688000,"pricePretty":"S$ 1,688,000","currency":"SGD","bedrooms":3,"bathrooms":2,"floorArea":1109,"floorAreaPsf":1522.09,"landArea":null,"landAreaPsf":null,"tenure":"L99","tenureText":"99-year Leasehold","isVerified":true,"qualityScore":98,"statusCode":"ACT","datePosted":"2026-05-13T09:21:04","dateCreated":"2026-04-22T11:08:30","dateExpires":"2026-07-21T23:59:59","address":{"streetName":"Lakeshore Drive","fullAddress":"1 Lakeshore Drive","postcode":"648292","districtCode":"D22","districtText":"Boon Lay / Jurong / Tuas","lat":1.3411,"lon":103.7129},"agent":{"id":88012,"name":"Keith Low","license":"R047251D","mobile":"+6593690168","jobTitle":"Senior Marketing Director","profileUrl":"https://www.propertyguru.com.sg/agent/keith-low-88012","avatar":"https://sg1-cdn.pgimgs.com/agent/88012/APHO.../V120B.png"},"agency":{"id":4619,"name":"ERA REALTY NETWORK PTE LTD","license":"L3002382K"},"images":[{"src":"https://sg1-cdn.pgimgs.com/listing/500140099/.../V800/...jpg","caption":"Living Room"}],"floorPlans":[],"virtualTours":[],"mainImage":"https://sg1-cdn.pgimgs.com/listing/500140099/.../V800/...jpg","poiMrt":[{"name":"EW27 Boon Lay MRT Station","distanceKm":0.41,"walkingDistanceKm":0.45,"walkingDurationMins":6}],"poiSchool":[]}
๐ผ Use cases
| Who | What they do with it |
|---|---|
| ๐ข Investors & buyers | Build a daily refresh feed of new listings in target districts; flag underpriced units by PSF percentile. |
| ๐ค Property agents | Track competitor listings, monitor agent activity, scout co-broking opportunities. |
| ๐๏ธ PropTech & analytics | Power dashboards, AVMs (automated valuation models), heat maps, market reports. |
| ๐ง ML / data science | Train pricing models, location-embedding models, agent-fraud classifiers on real SG transaction data. |
| ๐ Market research | Quarterly reports on price/PSF trends by district, by property type, by tenure. |
๐ก Tips & tricks
- Daily refresh: set
sinceto yesterday's date โ the actor short-circuits at the search page and you only pay for genuinely new listings. - Index mode:
scrapeDetails: falsereturns just URLs + IDs โ perfect for diff-only runs to detect what's been added or de-listed. - Pricing buckets: run 3 separate runs with different
minPrice/maxPricewindows in parallel for faster total scrape times. - Districts D09 / D10 / D11 (Orchard, Tanglin, Newton) account for ~40% of all luxury SG sale listings โ narrow there for premium segments.
โ FAQ
How fresh is the data? Live. Each request hits PropertyGuru's production servers at the moment of your run.
Will my dataset have duplicates? No. The actor de-dupes by listing ID at queue time and again at push time.
What about listings posted in multiple districts? PropertyGuru issues one ID per listing โ you'll see it exactly once.
Can I scrape rentals too? Yes โ set searchType: rent. All the same fields populate (price = monthly rent).
Will big runs fail halfway? No. The actor tracks a failure budget (>30% failed โ stop and report) so a broken site never quietly drains your CU.
What happens if PropertyGuru changes its layout? The actor's parser runs against captured HTML fixtures in CI โ site redesigns surface as test failures within hours, not weeks of silently broken data.
๐ Support
Found a bug or missing field? Open an issue or message the actor maintainer from the Apify Store page. Bug reports with the run ID get fastest turnaround.
