PropertyGuru Singapore Scraper – HDB, Condo & Rental Listings
Pricing
from $1.00 / 1,000 property listings
PropertyGuru Singapore Scraper – HDB, Condo & Rental Listings
Scrape PropertyGuru Singapore listings for sale or rent. Filter by area, postal district D01-D28, HDB/condo/landed, price and bedrooms. Every row: price, psf, address, district, beds, baths, floor area, tenure, TOP year, agent name and mobile, nearest MRT, coordinates, photos, listing URL.
Pricing
from $1.00 / 1,000 property listings
Rating
0.0
(0)
Developer
R.L.
Maintained by CommunityActor stats
0
Bookmarked
16
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
PropertyGuru Singapore Scraper – HDB, Condo & Rental Listings 🇸🇬🏠
Extract property listings from PropertyGuru Singapore (propertyguru.com.sg) at scale. Search by area, postal district, listing type, property type, price, and bedrooms — get clean, structured JSON with prices, price per square foot, addresses, floor area, tenure, agent contacts, images, geolocation, and direct listing URLs.
Perfect for real estate analytics, price monitoring, lead generation, market research, and building property datasets — no manual copy-pasting, no browser required.
What does this PropertyGuru scraper do?
PropertyGuru is Singapore's largest property marketplace. This scraper pulls listing data straight from its search API and hands you ready-to-use records. Point it at a neighbourhood or postal district, filter by sale/rent and property type, set a price and bedroom range, and export the results to JSON, CSV, Excel, or your own database.
- ⚡ Fast & reliable — reads the underlying API, not fragile page HTML.
- 🎯 Precise targeting — 46 named Singapore areas + all 28 postal districts (
D01–D28). - 🏢 Every residential type — HDB flats, condominiums, executive condominiums, apartments, terraced, semi-detached, detached and Good Class Bungalows.
- 💰 Sale or rent — with min/max price and exact bedroom filters.
- 📇 42 fields per listing — including agent name, mobile, CEA licence number and agency.
- 🔌 Export anywhere — CSV, JSON, Excel, or push to Google Sheets, Make, Zapier, and 5,000+ apps.
Who is it for?
- Real estate agents & agencies — track new listings and competitor pricing in your patch.
- Property investors — spot deals, compare price-per-sqft across districts, monitor yields.
- Market analysts & researchers — build historical datasets of Singapore property prices.
- Proptech & data teams — feed clean listing data into dashboards, models, and CRMs.
- Lead generation — collect agent and agency contact details from active listings.
What can I filter on?
Configure the run from the Apify Console UI or via the API. Every field is optional — leave the search wide open or narrow it down.
| Field | Description |
|---|---|
| Location | Area/neighbourhood name, e.g. Orchard, Woodlands, Tampines. Matched against PropertyGuru's own 46 Singapore areas (listed below). |
| District | Precise Singapore postal district (D01–D28). Overrides Location when set. |
| Listing type | For Sale (default) or For Rent. |
| Property type | HDB, Condominium, Apartment, Terrace House, Semi-Detached, or Landed (all). |
| Min / Max price (S$) | Price range in SGD (monthly for rentals). |
| Bedrooms | Exact number of bedrooms. |
| Max items | Cap the number of listings returned. Default 100; 0 = unlimited. |
| Include details | Off by default. Adds one extra request per listing to fetch the full photo gallery, videos, virtual tours, floor plans and every agent phone number. |
| Proxy | Apify Proxy enabled by default for reliable requests. |
Example input
{"districtCode": "D09","listingType": "sale","propertyType": "condo","minPrice": 1000000,"maxPrice": 3000000,"bedrooms": 2,"maxItems": 500}
Search all of Singapore by leaving Location and District empty.
What does each listing row contain?
Each listing is one dataset record with the same 42 fields. Export to JSON, CSV, Excel, HTML, or RSS, or fetch via the Apify API.
Example output
{"id": 500265569,"title": "Own a Freehold Legacy in Singapore's Orchard Road","typeCode": "SALE","typeText": "For Sale","price": 2500000,"pricePretty": "S$ 2,500,000","pricePerArea": "S$ 2,191.06 psf","address": "63 Cavenagh Road","district": "Orchard / River Valley","region": "Orchard / Holland (D09-10)","beds": 3,"bedsText": "3 Bedrooms","baths": 2,"floorArea": 1141,"floorAreaText": "1141 sqft","landArea": 0,"propertyType": "Condominium","propertyName": "Hijauan","tenure": "Freehold","topYear": 2015,"furnishing": "Unfurnished","agentName": "Cassie Ang","agentMobile": "+65 9xxx xxxx","agencyName": "ERA REALTY NETWORK PTE LTD","nearestMRT": "NS23 Somerset MRT Station","nearestMRTDistance": 0.44,"latitude": 1.3036015,"longitude": 103.8412833,"postalCode": "229618","images": ["https://sg1-cdn.pgimgs.com/listing/..."],"hasFloorplans": true,"listingUrl": "https://www.propertyguru.com.sg/listing/for-sale-hijauan-500265569","postedDate": "2026-09-27 14:21:35"}
The agent mobile is a real number on the live listing; it is masked here. This example is a run with Include details off, which is why agentLicense, videos, virtualTours and floorPlans are omitted.
All 42 fields
| Group | Fields |
|---|---|
| Identity | id, title, typeCode, typeText, listingUrl, postedDate, description |
| Price | price, pricePretty, pricePerArea |
| Location | address, district, region, postalCode, latitude, longitude, nearestMRT, nearestMRTDistance |
| Property | propertyType, propertyName, tenure, topYear, furnishing, beds, bedsText, baths, floorArea, floorAreaText, landArea, landAreaText |
| Agent & agency | agentName, agentMobile, agentPhones, agentEmail, agentLineId, agentLicense, agencyName |
| Media | images, videos, virtualTours, floorPlans, hasFloorplans |
Search results carry the cover photo only. videos, virtualTours, floorPlans, the full
images gallery and the extra agentPhones / agentEmail / agentLineId / agentLicense
values live on the listing detail page, so switch Include details on to get them.
Which property types does it return?
The Property type filter takes one of six codes; the propertyType field on each row
carries PropertyGuru's own, more granular label:
| Filter value | propertyType labels it returns |
|---|---|
hdb | HDB Flat |
condo | Condominium |
apartment | Apartment |
terrace | Terraced House |
semi-detached | Semi-Detached House |
landed | Terraced House, Corner Terrace, Semi-Detached House, Detached House, Bungalow House, Good Class Bungalow, Cluster House, Shophouse, Residential Land |
Leave the filter empty and you get every type in one run, including Executive Condominium
rows, which the condo filter does not return.
Which Singapore areas and districts can I search?
46 named areas (the values the Location field matches):
Ang Mo Kio · Bedok · Bishan · Boon Lay · Bukit Batok · Bukit Merah · Bukit Panjang · Bukit Timah · Changi · Choa Chu Kang · Clementi · Downtown Core · Geylang · Hillview · Hougang · Jurong East · Jurong West · Kallang · Katong · Kovan · Marine Parade · Museum · Newton · Novena · Orchard · Outram · Pasir Ris · Punggol · Queenstown · River Valley · Robertson Quay · Rochor · Sembawang · Sengkang · Sentosa · Serangoon · Simei · Singapore River · Tampines · Tanglin · Tengah · Tiong Bahru · Toa Payoh · Tuas · Woodlands · Yishun
All 28 postal districts (the District field):
D01 Raffles Place / Marina · D02 Chinatown / Tanjong Pagar · D03 Alexandra / Commonwealth · D04 Harbourfront / Telok Blangah · D05 Buona Vista / Clementi / West Coast · D06 City Hall / Clarke Quay · D07 Beach Road / Bugis / Rochor · D08 Farrer Park / Little India · D09 Orchard / River Valley · D10 Bukit Timah / Holland / Balmoral · D11 Newton / Novena / Thomson · D12 Balestier / Toa Payoh · D13 Macpherson / Potong Pasir · D14 Eunos / Geylang / Paya Lebar · D15 East Coast / Marine Parade · D16 Bedok / Upper East Coast · D17 Changi / Loyang · D18 Pasir Ris / Tampines · D19 Hougang / Punggol / Sengkang · D20 Ang Mo Kio / Bishan / Thomson · D21 Clementi Park / Upper Bukit Timah · D22 Boon Lay / Jurong / Tuas · D23 Bukit Batok / Choa Chu Kang / Hillview · D24 Lim Chu Kang / Tengah · D25 Admiralty / Woodlands · D26 Mandai / Upper Thomson · D27 Sembawang / Yishun · D28 Seletar / Yio Chu Kang
Rows also carry a wider region grouping of their own — for example
City & South West (D01-08), Orchard / Holland (D09-10), Newton / Bt. Timah (D11, 21),
Balestier / Geylang (D12-14), East Coast (D15-16), Changi / Pasir Ris (D17-18),
Serangoon / Thomson (D19-20), West (D22-24) and North (D25-28) — which is handy for
rolling district data up to a market segment.
What does a run cost?
$1.00 per 1,000 listings ($0.001 each, pay-per-result), plus standard Apify platform usage. You only pay for listings actually returned — no monthly subscription. Run a small test for a few cents before scaling up.
Include details adds an extra API request per listing but no extra charge: billing is per listing in the dataset, not per request.
How do I run it?
- Click Try for free / Start.
- Set your filters (location, district, price, property type…).
- Run the Actor.
- Download results as JSON, CSV, or Excel — or grab them via the Apify API.
Want it on autopilot? Schedule daily or weekly runs to keep a fresh feed of new listings.
How do I get the listings into my own tools?
Connect this Actor to Make, Zapier, Google Sheets, Google Drive, Slack, GitHub, and thousands more via Apify Integrations — or use webhooks and the REST API to pipe listings straight into your own systems.
There is also a Python client (pip install apify-propertyguru-sg-client) that starts a run and hands you the dataset as plain dicts.
What do these Singapore property terms mean?
- HDB flat — public housing built by the Housing & Development Board, where most Singapore residents live. Returned as
propertyType: "HDB Flat". - Executive Condominium (EC) — a hybrid: built and sold by private developers under HDB rules, with eligibility and resale restrictions for the first years. It is a separate
propertyTypelabel fromCondominium. - Good Class Bungalow (GCB) — the top tier of Singapore landed housing, in gazetted low-rise areas with minimum plot sizes. Its own
propertyTypelabel. - Tenure — how long the land is held for.
Freeholdis indefinite; the rest are leases, and the values you will see are99-year Leasehold,110-year Leasehold,999-year LeaseholdandFreehold. - TOP year (
topYear) — Temporary Occupation Permit year: when the building was cleared for occupation. The usual proxy for a property's age. - psf (
pricePerArea) — price per square foot, the standard Singapore comparison metric. PropertyGuru formats it as a string, e.g.S$ 2,191.06 psf. floorAreavslandArea— floor area is built-up area in sqft (all types); land area is the plot, and is0for flats and condominium units.- Postal district (
D01–D28) — Singapore's standard property-market districts.districton a row is PropertyGuru's name for that district (Orchard / River Valley), not theD09code. - CEA licence (
agentLicense) — the Council for Estate Agencies registration number every licensed Singapore property agent must display. - Room rental — a single room in a shared unit rather than a whole home. PropertyGuru reports these as
beds: -1withbedsText: "Room Rental".
FAQ
Do I need a PropertyGuru account, login or API key? No. The Actor talks to PropertyGuru's own mobile backend as an anonymous guest — there is nothing to register. An Apify account is all you need.
Can I get agent contact details? Yes — agentName, agentMobile, agencyName and agentPhones come back when published on the listing. The CEA registration number (agentLicense), email, LINE ID and any co-broke agent's numbers only appear on the listing detail, so turn on Include details for those.
Can I get the full photo gallery, floor plans and video tours? Yes, with Include details on. A search result carries only the cover photo, so without it images is short and videos, virtualTours and floorPlans are usually empty.
How many listings can I get, and how do I cap a run? As many as the search returns — a wide-open Singapore sale search is tens of thousands. Max items caps it (default 100, 0 = unlimited), and since billing is per listing, that cap is also your budget cap.
What if my area name is wrong, or a filter is silently ignored? The run stops and tells you, instead of quietly handing you all of Singapore. The Actor compares the filtered result count against an unfiltered baseline and fails if the location filter had no effect; a misspelled area name that matches nothing is also rejected, with the list of valid area names in the message.
Why is beds -1 on some rentals? Those are room rentals — a common or master room in a shared unit. PropertyGuru reports them as -1 bedrooms; bedsText says Room Rental, so you can filter them out or keep them.
Can I schedule it to catch new listings daily? Yes. Use Apify Schedules for a daily or weekly run and postedDate on each row to tell genuinely new listings from re-appearing ones.
Is web scraping PropertyGuru legal? This tool collects publicly available listing data. You are responsible for using it in line with PropertyGuru's terms and applicable laws (including data-protection rules such as the PDPA when handling personal data like agent contacts). Use scraped data responsibly.
Can I run it from n8n?
Yes — use the n8n-nodes-propertyguru-sg-scraper community node (source) to call this Actor from an n8n workflow.
Support
Found a bug or need an extra field? Open an issue on the Actor's Issues tab. Suggestions welcome.
Singapore real estate data toolkit
Part of the Singapore real estate data toolkit — Singapore property data across the island's major listing portals and the government's own transaction records:
- 99.co Singapore API Scraper — Extract structured property listing data from 99.co Singapore by location, district, or property type.
- EdgeProp Singapore API Scraper — Extract structured property listing data from EdgeProp Singapore by location, district, or property type.
- OhMyHome Singapore API Scraper — Extract structured property listing data from OhMyHome Singapore by listing/property type, price, bedrooms.
- URA Singapore Property Data Scraper — Official URA project summaries, sale transaction history, and rental history by project, street, or district.
Did you find this useful?
⭐ Rate this actor on Apify! Your feedback helps other users find it and helps us keep improving it.