SRX Property Scraper - Singapore Listings & Agent Leads avatar

SRX Property Scraper - Singapore Listings & Agent Leads

Pricing

from $5.00 / 1,000 listing scrapeds

Go to Apify Store
SRX Property Scraper - Singapore Listings & Agent Leads

SRX Property Scraper - Singapore Listings & Agent Leads

Scrape SRX.com.sg Singapore property: HDB, condo, landed & commercial listings for sale/rent with price, PSF, size, tenure, district, market segment, agent leads (name, mobile, agency) and transacted comparables.

Pricing

from $5.00 / 1,000 listing scrapeds

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

SRX Property Scraper — Singapore Listings, Agent Leads & Transacted Comparables

Extract complete property data from SRX.com.sg — Singapore's top-tier property portal and home of the widely-cited X-Value automated valuation. Scrape HDB, condo, landed and commercial listings for sale or rent, each with the full property record, the agent as a ready-to-use B2B lead (name, mobile, agency, profile, WhatsApp), and — uniquely — the project's recent transacted prices (the gated comparable/valuation layer).

No login, no API key, no browser — this actor reads SRX's own server-rendered data directly, so the output is first-party and reliable.

Why this SRX scraper?

Portals show asking prices. The high-value data is the transacted price — what units actually sold or rented for — and the contactable agent behind each listing. This actor ships both in one clean dataset, plus the richest listing record in the category:

DataTypical scrapersThis actor
Title, property type, sale/rent
Price (asking)
PSF (built / land)partial
Built / land size (sqft)partial
Beds, bathspartial
Project, full address, block, postal code
District + URA market segment (CCR/RCR/OCR)
Latitude / longitude
Tenure + lease years, built year, floor band
Listed date, expiry, days-on-market, recency
Agent name + mobile + agency + profile + WhatsApp✅ on every card
Description, facilities, all photos✅ opt-in (detail)
Nearby amenities — MRT, schools, malls + distances & coords✅ opt-in (detail)
Transacted comparables — recent sold & rented prices, PSF, dates✅ opt-in (valuation layer)
Lead score (0–100) per listing
One clean dataset, no empty columns

Use cases

  • Lead generation — every SRX listing exposes its agent with a full mobile number, agency, profile and WhatsApp link, right on the search card. Score them (leadScore), filter, and export straight to your CRM — no detail crawl required.
  • Asking-vs-transacted analysis — pair a listing's asking price with the project's recent transacted prices and PSF to spot over/under-priced units. This is the data SRX's X-Value is built on.
  • Property market research — map supply by district, market segment (CCR/RCR/OCR), property type, size band, PSF and tenure; benchmark asking prices and track new listings over time.
  • Agent & agency prospecting — surface the most active agents and agencies by segment and listing volume.
  • Proptech & valuation enrichment — power dashboards and AVMs with standardized listings, geo context (district, postal, lat/long, MRT), images and transacted comparables.

How to use

  1. Sign up for Apify — the free plan is enough to try this actor.
  2. Open the SRX Property Scraper, choose For sale / rent, a Property type (e.g. Condo), optionally a District, and click Start.
  3. Watch results stream into the dataset table.
  4. Export as JSON, CSV, Excel, XML or RSS — or pull results programmatically via the Apify API.

Proxy note: SRX is Cloudflare-protected, so this actor uses Apify Residential proxy in Singapore by default. Leave the proxy setting as-is for reliable runs.

Input

{
"listingType": "sale",
"propertyType": "condo",
"district": "9,10,11",
"minPrice": 1000000,
"maxPrice": 3000000,
"maxItems": 100,
"includeDetails": false,
"includeTransactedComparables": false,
"monitorMode": false
}
  • listingTypesale, rent, or both.
  • propertyTypeall (every residential type), condo, hdb, landed, or commercial.
  • district — optional Singapore postal district filter, e.g. "10" or "9,10,11" (D01–D28). Blank = all Singapore.
  • bedrooms / minPrice / maxPrice — optional SRX search filters.
  • startUrls — paste any SRX search, listing or project URL (e.g. a filtered search you built in the browser). Overrides the simple filters.
  • maxItems (default 100) — cap on listings for the whole run.
  • includeDetails (default false) — open each listing's detail page to add the full description, facilities, nearby amenities (MRT, schools, malls with distances), all photos and the exact price. One extra request per listing.
  • includeTransactedComparables (default false, needs includeDetails) — attach the project's recent transacted sale & rental prices (unit, price, PSF, size, date) — the gated valuation layer. De-duplicated per project across listings.
  • monitorMode (default false) — emit only new or price-changed listings vs previous runs (see below).

Output

One record per listing. The agent lead is included on every card — no detail crawl needed:

{
"listingId": "110775541",
"url": "https://www.srx.com.sg/listings/110775541/for-sale-cheng-san-view-...",
"listingType": "sale",
"title": "Blk 538 Cheng San View",
"priceText": "$420,000",
"price": 420000,
"propertyType": "3 Room",
"propertyCategory": "HDB",
"projectName": "Cheng San View",
"address": "Ang Mo Kio Avenue 5",
"block": "538",
"postalCode": "560538",
"districtTown": "Ang Mo Kio",
"district": 20,
"districtCode": "D20",
"marketSegment": "RCR",
"latitude": 1.37559, "longitude": 103.85335,
"tenure": "Leasehold",
"tenureYears": 99,
"builtYear": 1980,
"floorCategory": "MID",
"bedrooms": 2,
"bathrooms": 2,
"builtSize": 732,
"builtPsf": 573.77,
"listedDate": "17-Mar-2026",
"datePostedTimestamp": 1782129650,
"photoUrl": "https://static.srx.com.sg/Listing%20Photos/.../mobile.jpg",
"agent": {
"name": "Nancy Wong",
"mobile": "97339190",
"mobilePretty": "9733 9190",
"agencyId": "3",
"profileUrl": "https://www.srx.com.sg/wongnancy168",
"whatsappUrl": "https://api.whatsapp.com/send?phone=6597339190...",
"callUrl": "tel:97339190"
},
"leadScore": 100,
"scrapedAt": "2026-06-26T04:30:00.000Z"
}

With includeDetails, the record also gains description, facilities, nearbyAmenities (MRT/schools/malls with distances & coordinates), photoUrls, exactPrice, sizeSqft, psf, projectUrl, hasXValue and xValueUrl. With includeTransactedComparables, it gains transactedComparables.sale[] and transactedComparables.rental[] — recent transacted prices for the project.

Use the Listings and Agent leads dataset views to switch between column sets.

What to expect (field coverage)

FieldCoverage
listingId, url, title, price, propertyType, district, market segment, postal, lat/long, tenure, size, PSF, beds/baths, photo, agent name + mobile + agency + profile + WhatsApp~100%
project name, built year~85–95% (landed / some HDB have no named project or declared TOP)
floor band, days-on-market, developersource-gated — published only for some listings (see below)
description, facilities, nearby amenities, all photos, exact priceincludeDetails, as published
transacted comparablesincludeTransactedComparables (+includeDetails)

A blank field means SRX doesn't publish that value for that listing — not that scraping failed. Nothing is dropped, so you always get the richest record available.

Monitoring mode — only new / changed listings

Turn on monitorMode to make the actor remember which listings it has already returned (and their price) and emit only listings that are new or whose price changed — perfect for tracking a district or segment. It stores state in a named key-value store (monitorStoreName, one per tracked search).

This complements Apify Schedules and does not conflict with them: Schedules decide when the actor runs (e.g. every morning), and monitoring mode decides what is new in each run. Use both together for a daily feed of just-listed or just-repriced properties.

Automate & schedule

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/srx-property-scraper').call({
listingType: 'sale',
propertyType: 'condo',
district: '9,10,11',
maxItems: 200,
includeDetails: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} listings`);

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 segment adds 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 every condo for sale in District 9 on SRX with the agent's mobile and the project's last transacted prices" and let it run the scraper.

More scrapers from scrapesage

Build a complete Singapore property & lead-gen stack:

Tips

  • Whole-market coverage: set propertyType to all and listingType to both to sweep an entire segment.
  • Best leads first: sort the dataset by leadScore to surface contactable, premium listings at the top.
  • Cost control: leave includeDetails off for a fast, cheap pass with the rich card (price, PSF, size, district, segment, agent name + mobile + agency); turn it on to add description, amenities and all photos; add includeTransactedComparables for the valuation layer.
  • Asking-vs-transacted: enable includeDetails + includeTransactedComparables and compare each listing's price/builtPsf against transactedComparables.sale[].psf.

FAQ

Does it need an SRX account or API key? No. This actor reads SRX's own server-rendered data — the same data the website shows — with no login, cookie or key.

Where does the agent's mobile come from? From the listing card itself — SRX publishes the agent's name, mobile, agency and WhatsApp on each listing, and this actor reads them directly. (No detail crawl needed for the lead.)

What are "transacted comparables"? SRX publishes each project's recent transacted sale and rental prices (the prices units actually changed hands at, from URA caveats) on the project page. With includeTransactedComparables the actor attaches them per listing — the gated data behind valuation tools like X-Value.

Why is a residential Singapore proxy required? SRX is Cloudflare-protected and blocks datacenter IPs. The actor defaults to Apify Residential proxy, country SG, which loads pages reliably.

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

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

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.