PropertyGuru Scraper - Singapore Property & Agent Leads avatar

PropertyGuru Scraper - Singapore Property & Agent Leads

Pricing

from $5.00 / 1,000 property listings

Go to Apify Store
PropertyGuru Scraper - Singapore Property & Agent Leads

PropertyGuru Scraper - Singapore Property & Agent Leads

Scrape PropertyGuru Singapore for-sale & rental listings: prices, PSF, beds/baths, floor area, tenure, build year, district, MRT, photos, plus agent & agency leads with phone numbers. Filter by keyword, price and bedrooms, enrich with descriptions, facilities and geo, and monitor only-new listings.

Pricing

from $5.00 / 1,000 property listings

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

27

Total users

9

Monthly active users

7 days ago

Last modified

Share

PropertyGuru Scraper — Singapore Property Listings, Prices & Agent Leads

Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by PropertyGuru Group or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. "PropertyGuru" is referenced only to describe the publicly available website this Actor collects data from.

Extract complete PropertyGuru Singapore data — for-sale and rental listings with real asking prices, PSF, bedrooms/bathrooms, floor area, tenure, build year, district, MRT proximity and photos — plus the agent and agency behind every listing, with phone numbers when you enrich. Filter by keyword, price and bedrooms, capture full descriptions, condo facilities, geo and price history, and use monitor mode to pull only new listings on a schedule.

PropertyGuru is Singapore's #1 property portal (the widest inventory of condos, HDB resale, landed homes and new launches). This actor reads PropertyGuru's own server-rendered data directly — no login, no API key, no browser — and ships the richest, most reliable dataset in the category.

Why this PropertyGuru scraper?

Most property scrapers grab a title and a price and stop there. This actor pulls the full listing card and the agent lead and (on demand) the listing detail page — the data that actually drives valuations, market research and outreach.

DataTypical scrapersThis actor
Title / project, price, PSF
Bedrooms, bathrooms, floor areapartial
Property type, tenure, build year
District + nearest MRT (walk time)
Photo count, official-listing & verified flags
Agent name, CEA license, agency
Agent phone / WhatsApp✅ opt-in
Full description + condo facilities✅ opt-in
Exact geo (lat/lng) + price history✅ opt-in
De-duplicated agent lead records + lead score✅ opt-in
Monitor mode — only new listings

Use cases

  • Agent & agency lead generation — every listing carries the agent (name, CEA license, agency, profile). Turn on includeListingDetails + includeAgentLeads to build a de-duplicated call list with phone numbers for the most active agents in any town or price band.
  • Price & market intelligence — track asking prices, PSF and supply for condos, HDB resale and landed homes by district, MRT or project; compare against transacted data and rentals.
  • Comparables & valuations — pull every active listing for a project or district with beds/baths, area, tenure and PSF for instant comp sets.
  • New-launch & inventory monitoring — watch a project, district or saved search and capture new listings the moment they appear (monitorMode).
  • Rental research — switch listingType to rent for rental supply, asking rents and landlord/agent contacts.

How to use

  1. Sign up for Apify — the free plan is enough to try this actor.
  2. Open the PropertyGuru Scraper, enter search keywords (towns, districts, MRT or project names), choose For sale / For rent, and optionally a price range or bedroom count — then click Start.
  3. Watch listings (and agent leads) stream into the dataset table.
  4. Export as JSON, CSV, Excel, XML or RSS — or pull results via the Apify API.

Input

{
"searchQueries": ["Tampines", "Bukit Timah"],
"listingType": "sale",
"minPrice": 800000,
"maxPrice": 2500000,
"bedrooms": ["3"],
"maxItems": 100,
"includeListingDetails": true,
"includeAgentLeads": true
}
  • searchQueries — free-text searches: towns/areas (Tampines), districts, MRT stations, or project names (The Gazania). Leave empty to browse the latest listings of the chosen type.
  • listingTypesale (default), rent, or new_launch.
  • startUrls — paste full PropertyGuru search pages (with filters applied in your browser) or individual listing pages (/listing/...).
  • minPrice / maxPrice / bedrooms — filters.
  • includeListingDetails (default false) — open each listing for the full description, agent phone / WhatsApp, condo facilities, geo, furnishing/completion and price history.
  • includeAgentLeads (default false) — also output one de-duplicated agent lead record per unique agent (with lead score).
  • monitorMode / monitorKey — output only listings not seen on previous runs.
  • maxItems — cap across all searches.

Tip: PropertyGuru rate-limits deep pagination. For large pulls, add more keywords (towns, districts, MRT) rather than relying on many pages of one search — the actor fetches a reliable first page per keyword and paginates as far as the site allows.

Output

One record per listing (type: "listing"), plus optional agent leads (type: "agent"):

{
"type": "listing",
"listingType": "sale",
"listingId": "500182802",
"url": "https://www.propertyguru.com.sg/listing/for-sale-the-gazania-500182802",
"title": "The Gazania",
"price": 2498000,
"pricePretty": "S$ 2,498,000",
"currency": "SGD",
"psf": "S$ 2,607.52 psf",
"propertyType": "Condominium",
"bedrooms": 3,
"bathrooms": 3,
"floorArea": 958,
"floorAreaText": "958 sqft",
"tenure": "Freehold",
"buildYear": 2023,
"fullAddress": "7 How Sun Drive",
"district": "Hougang / Punggol / Sengkang, Serangoon / Thomson (D19-20)",
"mrtNearby": "5 min (390 m) from CC12 Bartley MRT Station",
"photoCount": 14,
"isOfficialListing": true,
"recencyText": "Listed on Jun 26, 2026",
"agentId": "17258882",
"agentName": "Chris Ooi",
"agentLicense": "R070591H",
"agentProfileUrl": "https://www.propertyguru.com.sg/agent/chris-ooi-17258882",
"agencyName": "PROPNEX REALTY PTE. LTD.",
"agentMobile": "+6597348812",
"description": "The Gazania | District 19 | Top Floor | 958 SQFT | Functional 3 Bedroom Layout…",
"facilities": ["Swimming Pool", "Gym", "BBQ Pits", "24h Security"],
"leadScore": 92,
"scrapedAt": "2026-06-26T01:30:00.000Z"
}

An agent lead (type: "agent") carries agentName, agencyName, agentLicense, agentMobile, agentWhatsapp, agentProfileUrl, listingCountSeen, a sampleListingUrl and a 0–100 leadScore.

What to expect (field coverage)

PropertyGuru listings are agent-entered, so a handful of fields exist only when the agent filled them in. Title/project, price, PSF, property type, beds/baths, floor area, district, MRT, agent name, CEA license and agency are present on virtually every listing. Full descriptions, facilities, geo, price history and agent phone numbers come from the listing page and require includeListingDetails. A blank field means the agent didn't publish it, never that scraping failed.

How much does it cost to scrape PropertyGuru?

This Actor uses Apify's pay-per-event pricing: you are charged only for the results it delivers, with no monthly rental and no start fee. The events it can charge are:

  • Property listing - One listing with price, attributes, district, MRT & the agent/agency behind it.
  • Enriched listing + agent phone - A listing enriched from its detail page: agent phone/WhatsApp, full description, facilities, geo & price history. (Charged instead of listing when enrichment is on.)
  • Agent lead - One de-duplicated agent record: name, CEA license, agency, phone & lead score.

The current price of each event is shown on the Pricing tab of this page. Set a maximum total charge on the run if you want a hard cap on spend, and use the input limits to control how much the Actor fetches.

Automate & schedule

  • Apify API — start runs, fetch datasets and manage schedules over REST.
  • apify-client for JavaScript and Python — official SDKs.
  • Schedules — run hourly/daily to watch a town, district or project for new listings; pair with monitorMode for clean only-new output.
  • Webhooks — trigger downstream actions (CRM import, Slack alert, price-drop email) the moment a run finishes.
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/propertyguru-scraper').call({
searchQueries: ['Bukit Timah', 'Orchard'],
listingType: 'sale',
minPrice: 2000000,
includeListingDetails: true,
includeAgentLeads: true,
maxItems: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} listings & agent leads`);

Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

  • Make — multi-step automation scenarios.
  • Zapier — push new agent leads straight into your CRM.
  • Slack — get notified when a monitored search finds new listings.
  • Google Drive / Sheets — auto-export every run to a spreadsheet.
  • Airbyte — pipe results into your data warehouse.
  • GitHub — trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT or any agent framework through the Apify MCP server — ask your assistant to "find 3-bedroom condos in Tampines under S$1.8M and list the agents' phone numbers" and let it run this scraper for you.

Agent-ready: autonomous payments (x402 & Skyfire)

This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:

  • x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
  • Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

More scrapers from scrapesage

Build a complete Singapore property, market & lead-gen stack:

Tips

  • Agent call lists: turn on includeListingDetails + includeAgentLeads, search the towns/price bands you sell in, and export the Agent leads view straight to your CRM.
  • Exact filters: apply every filter you want in your browser on propertyguru.com.sg, then paste the resulting search URL into startUrls — the actor reproduces it.
  • Breadth over depth: PropertyGuru limits deep pagination — list several towns/districts/MRT in searchQueries rather than paging one search forever.
  • Only new listings: combine Schedules with monitorMode (and a unique monitorKey per saved search) for clean new-listing alerts.
  • Cost control: leave includeListingDetails off for fast, cheap listing-card runs; turn it on only when you need descriptions, facilities and agent phone numbers.

FAQ

How do I scrape a specific town, district or project? Put it in searchQueries (e.g. Tampines, District 10, The Gazania), or paste a PropertyGuru search URL into startUrls.

Does it need the PropertyGuru API or a login? No. This actor reads the same public listing pages a visitor sees — no key or login required.

Where do agent phone numbers come from? From the public listing page, when includeListingDetails is on. PropertyGuru publishes the listing agent's contact on each listing; the actor reads it there.

Can I export to Google Sheets, CSV or Excel? Yes — one click in the dataset view, or automatically every run via the Google Drive integration.

How do I monitor new listings automatically? Turn on monitorMode, create a Schedule, and optionally add a webhook or Zapier zap to push new listings/leads into your tools as they appear.

Is scraping PropertyGuru legal? This actor collects publicly available data only. You are responsible for using the data in compliance with applicable laws (e.g. Singapore's PDPA for personal data) and PropertyGuru's terms.

Data & lawful use

This Actor reads business and professional listings that the professionals themselves published to be found: names, roles, firms, ratings and the contact details shown on the public listing. Because those details belong to identifiable people, treat the output as personal data. If you are in the EU or UK you are the data controller for what you do with it: have a lawful basis (usually legitimate interest for B2B prospecting or market research), keep any outreach relevant to the professional's line of work, honour opt-outs and deletion requests, and do not use the output for spam.

Under Apify's Standard Actor Contract, which governs your use of this Actor, you are the controller of any personal data in your input and output and scrapesage acts only as your processor: that data is processed solely to run your job, written only to your own Apify storage, never used for any other purpose and never shared onward. If you need help with a data-subject request that involves this Actor's output, open an issue on the Issues tab.

Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by PropertyGuru Group or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

"PropertyGuru" and any related marks are the property of their respective owners and are used here only in a descriptive, nominative sense - to identify the publicly accessible website from which this Actor collects data. This Actor is not an official PropertyGuru product, is not authorised or certified by PropertyGuru Group, and does not distribute PropertyGuru software. It collects only publicly available information; you are responsible for ensuring your use of that data complies with applicable laws, regulations and the terms of the source website.

Need help?

Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.