SRX Property Scraper - Singapore Listings & Agent Leads
Pricing
from $5.00 / 1,000 listing scrapeds
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. Independent tool, not affiliated with SRX.
Pricing
from $5.00 / 1,000 listing scrapeds
Rating
0.0
(0)
Developer
Scrape Sage
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
1
Monthly active users
17 days ago
Last modified
Categories
Share
SRX Property Scraper — Singapore Listings, Agent Leads & Transacted Comparables
Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by SRX or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. "SRX" is referenced only to describe the publicly available website this Actor collects data from.
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:
| Data | Typical scrapers | This actor |
|---|---|---|
| Title, property type, sale/rent | ✅ | ✅ |
| Price (asking) | ✅ | ✅ |
| PSF (built / land) | partial | ✅ |
| Built / land size (sqft) | partial | ✅ |
| Beds, baths | partial | ✅ |
| 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
- Sign up for Apify — the free plan is enough to try this actor.
- Open the SRX Property Scraper, choose For sale / rent, a Property type (e.g.
Condo), optionally a District, and click Start. - Watch results stream into the dataset table.
- 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}
- listingType —
sale,rent, orboth. - propertyType —
all(every residential type),condo,hdb,landed, orcommercial. - 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)
| Field | Coverage |
|---|---|
| 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, developer | source-gated — published only for some listings (see below) |
| description, facilities, nearby amenities, all photos, exact price | includeDetails, as published |
| transacted comparables | includeTransactedComparables (+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.
How much does it cost to scrape SRX?
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:
- Listing scraped - One SRX listing: price, PSF, size, tenure, district, market segment, coordinates, project, dates + the agent lead (name, mobile, agency, profile, WhatsApp).
- Listing details enrichment - Detail page: full description, facilities, nearby amenities (MRT/schools/malls w/ distances & coords), all photos, exact price. Charged only on success.
- Transacted comparables (valuation) - A project's recent transacted sale & rental prices (unit, price, PSF, size, date) – the gated valuation layer. Charged once per project, de-duped.
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, manage schedules over REST.
- apify-client for JavaScript and apify-client for Python — official SDKs.
- Schedules — run daily/weekly to monitor new listings or refresh prices and agents.
- Webhooks — trigger downstream actions (CRM import, Slack alert) the moment a run finishes.
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.
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 & lead-gen stack:
- 99.co Property Scraper — Singapore residential listings and agent leads.
- EdgeProp.sg Scraper — Singapore property listings and agent leads.
- CommercialGuru Scraper — Singapore commercial & industrial property and agent leads.
- Singapore Company Scraper — UEN, registry and business leads.
- StreetDirectory Scraper — Singapore business leads.
- SGCarMart Used Car Scraper — Singapore used cars, prices and dealer leads.
- MyCareersFuture Scraper — Singapore jobs, salaries and leads.
- Google Maps Scraper — local businesses with phone, website and reviews.
- Website Contact Scraper — emails, phones and socials from any website.
Tips
- Whole-market coverage: set
propertyTypetoallandlistingTypetobothto sweep an entire segment. - Best leads first: sort the dataset by
leadScoreto surface contactable, premium listings at the top. - Cost control: leave
includeDetailsoff 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; addincludeTransactedComparablesfor the valuation layer. - Asking-vs-transacted: enable
includeDetails+includeTransactedComparablesand compare each listing'sprice/builtPsfagainsttransactedComparables.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.
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 SRX or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.
"SRX" 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 SRX product, is not authorised or certified by SRX, and does not distribute SRX 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.