PropertyGuru Singapore Scraper – HDB, Condo & Rental Listings
Pricing
from $1.69 / 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.69 / 1,000 property listings
Rating
0.0
(0)
Developer
R.L.
Maintained by CommunityActor stats
0
Bookmarked
36
Total users
6
Monthly active users
5 hours
Issues response
8 days ago
Last modified
Categories
Features
Share
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": 500306126,"title": "Developer Sales Team - Explore Available Layouts & Prices","typeCode": "SALE","typeText": "For Sale","price": 3213000,"pricePretty": "S$ 3,213,000","pricePerArea": "S$ 3,245.45 psf","address": "11 Unity Street, Orchard / River Valley","district": "Orchard / River Valley","region": "Orchard / Holland (D09-10)","beds": 3,"bedsText": "3 Bedrooms","baths": 2,"floorArea": 990,"floorAreaText": "990 sqft","landArea": 0,"landAreaText": "","propertyType": "Condominium","propertyName": "The Robertson Opus","tenure": "999-year Leasehold","topYear": 2027,"furnishing": "Partially Furnished","agentName": "Darren Ang 洪俊旋","agentMobile": "+65 8xxx xxxx","agentPhones": ["+65 8xxx xxxx"],"agentEmail": "","agentLineId": "","agentLicense": "R071879D","agencyName": "ERA REALTY NETWORK PTE LTD","images": ["https://sg1-cdn.pgimgs.com/listing/500306126/UPHO.162094527.V800.jpg"],"videos": [],"virtualTours": [],"floorPlans": [],"listingUrl": "https://www.propertyguru.com.sg/listing/for-sale-the-robertson-opus-500306126","description": "The Robertson Opus - a new residential development in the heart of Robertson Quay, District 9. ...","postalCode": "237995","latitude": 1.2920095129654832,"longitude": 103.84168979040118,"hasFloorplans": false,"nearestMRT": "DT20 Fort Canning MRT Station","nearestMRTDistance": 0.27,"postedDate": "2026-10-27 15:21:25"}
One real row, trimmed only where marked: the agent's mobile is masked and the description cut to its first line. This is a run with Include details off, which is why images holds the cover photo alone and videos, virtualTours and floorPlans are empty.
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 |
A search result carries the cover photo and (where the unit is in a known development) one
project photo. The full images gallery, videos, virtualTours, floorPlans and a co-broke
agent's extra numbers live on the listing detail page, so switch Include details on to get
them. agentEmail comes from a third surface - the agent's own profile - so it needs Include
agent e-mail; agentLineId is empty on every row whatever you switch on. See the FAQ.
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?
Pay-per-event: a listing is charged when it is returned, and a listing you asked to enrich is charged again for the detail. See the Pricing tab for the events, their current prices, and whether Apify platform usage is billed on top. There is no monthly subscription. Run a small test before scaling up.
Include details adds one API request per listing and one additional charge per listing — the detail event is billed on top of the listing itself, not instead of it.
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. Both arenull, never0, when PropertyGuru does not publish a figure — which is the usual case forlandAreaon a flat or a condominium unit. The same holds forprice,beds,bathsandtopYear: a missing number is null, so nothing sorts a no-data row to the top of a cheapest-first list or drags an average down.- 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. These carry no bedroom count (
beds: 0);bedsTextnames the room instead (Common Room,Master bedroom with ensuite bath), andfloorAreais the room's own size in sqft, which is the figure PropertyGuru shows on the listing.
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, agentPhones, agentLicense (the CEA registration number) and agencyName all come back on a plain search run. Any co-broke agent's extra numbers only appear on the listing detail, so turn on Include details for those. agentEmail needs Include agent e-mail switched on, which adds one lookup per agent; agentLineId is empty on every row whatever you do. See the FAQ, and the Pricing tab for costs.
How do I get agent e-mail addresses? Switch on Include agent e-mail. PropertyGuru stopped serving the e-mail alongside the listing in late October 2026 - it was on every row until 2026-10-12 and on none after - and now publishes it only on the agent's own profile, so it takes one extra lookup. That lookup is cached per agent within a run, so a run of 100 listings by 60 agents costs 60 lookups rather than 100 — which makes the run faster and does not change what you pay. A row is only ever charged for a contact when an address actually came back; the Pricing tab is the authority on what that costs today. Measured over 26 agents on 2026-11-03: an e-mail for all 26. agentLineId stays empty either way - the field exists on the profile and was blank for every one of those 26.
Can I scrape specific listings I already know? Yes — put their IDs or URLs in Listing IDs or URLs, and leave the search filters empty (the Actor refuses both at once rather than quietly ignoring your filters). Each listing is one request, charged like a search row, and a listing that no longer resolves costs nothing. Lookup rows come from the listing's own page, so they carry more than a search row: measured over the same 100 listings both ways on 2026-11-03, videos on 39 rows against 0, floor plans on 22 against 0, and the whole photo gallery instead of the cover photo — no Include details needed. The trade is nearestMRT/nearestMRTDistance, published on 9 of 100 lookup rows against 84 of 100 search rows, and coordinates that can sit ~320 m from a search's for a listing whose address PropertyGuru masks. Need both? Run a search and a lookup and join on id.
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 0 on some rentals? Those are room rentals — a common or master room in a shared unit, so there is no bedroom count to report. bedsText names the room type (Common Room, Master bedroom with ensuite bath) and floorArea is the room's size, 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.