99.co Property Scraper — Singapore Listings & Agent Leads
Pricing
$4.00 / 1,000 property listing scrapeds
99.co Property Scraper — Singapore Listings & Agent Leads
Scrape Singapore property from 99.co — HDB, condos, landed & commercial, for sale or rent. Get prices, PSF, beds, floor area, tenure, MRT distance, geo-coordinates, photos plus the listing agent name, phone & WhatsApp. Monitoring mode returns only new listings. Export to JSON, CSV, Excel.
Pricing
$4.00 / 1,000 property listing scrapeds
Rating
0.0
(0)
Developer
Scrape Sage
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
Categories
Share
99.co Property Scraper — Singapore Listings, Prices & Agent Leads
Extract complete Singapore property data from 99.co — sale & rent listings across HDB, condos, apartments, landed houses, executive condominiums, rooms and commercial units. Get the fields that actually matter: real asking prices, price-per-sqft, bedrooms/bathrooms, floor & land area, tenure, TOP/built year, exact geo-coordinates, nearest-MRT distance and walk time, photos — plus the listing agent's name, phone and WhatsApp, so every result doubles as a ready-to-contact lead.
No login, no cookies, no browser automation — fast direct-from-API extraction with the richest dataset in the category.
Why this 99.co scraper?
Most property scrapers return a thin row — price, beds, a URL — and leave the rest empty. This actor pulls 99.co's own internal listings API and ships every field on the card, including agent contacts and MRT connectivity:
| Data | Typical scrapers | This actor |
|---|---|---|
| Asking price + price/sqft | ✅ | ✅ |
| Beds, baths, floor area, land area | partial | ✅ all |
| Tenure (freehold / 99-yr) + TOP/built year | ❌ | ✅ |
| Geo-coordinates (lat/lng) | partial | ✅ |
| Nearest MRT — line, walk time, distance | ❌ | ✅ |
| All listing photos | partial | ✅ |
| USP / highlight tags | ❌ | ✅ |
| Listing agent name | ❌ | ✅ |
| Agent phone + WhatsApp | ❌ | ✅ |
| Premium / corporate agent flags | ❌ | ✅ |
| Monitoring mode (only new listings) | ❌ | ✅ |
Use cases
- Real-estate agent lead generation — every listing carries the agent's name, phone and WhatsApp. Filter by area, price band or property type and build a contact list of active Singapore agents in minutes.
- Property market & price intelligence — track asking prices, price-per-sqft and new-launch supply by district, MRT line, HDB town or condo project.
- Investor & buyer deal-hunting — monitor just-listed units that match your criteria (e.g. freehold 3-bedders near an MRT under a price cap) and act before the market.
- Portals, apps & valuation models — feed structured, geo-tagged listing data with full specs into your own search app, CMA tool or pricing model.
- Competitor & agency monitoring — watch which agencies and agents dominate a neighbourhood and how fast their inventory turns over.
How to use
- Sign up for Apify — the free plan is enough to try this actor.
- Open the 99.co Property Scraper, paste one or more 99.co search URLs (or use the simple sale/rent + property-type builder), 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.
Tip: any 99.co filter works
Open 99.co, set any filters in the UI — location, district, MRT, price range, bedrooms, property type, freehold, floor level, and so on — then copy the URL from your browser and paste it into searchUrls. The scraper reproduces that exact search and paginates through every page. No need to learn parameters.
Input
{"searchUrls": ["https://www.99.co/singapore/sale/condos-apartments?price_max=2000000&num_beds=3","https://www.99.co/singapore/rent/hdb"],"sortBy": "recency","maxResults": 500,"monitoringMode": false,"includeAgentContacts": true}
- searchUrls — one or more 99.co search/listing pages with whatever filters you want. Leave empty to use the simple builder.
- listingType / propertyType — the simple search builder (
sale/rent×hdb/condo/landed/ec/room/commercial), used only when no URLs are provided. - sortBy —
relevance(default),recency(newest first — best for monitoring),price_low,price_high. - maxResults (default 200) — listings per search;
0= no limit (scrapes every available page). - monitoringMode (default false) — remember listings from previous runs (per search) and output only the new ones. See below.
- includeAgentContacts (default true) — include agent name, phone and WhatsApp. Turn off to exclude all agent personal data.
- proxyConfiguration (default Singapore residential) — required; 99.co is served from Singapore behind Cloudflare. Keep the default.
Output
One record per listing:
{"listingId": "iD6zEuiwhqX8AMzsxjgCUs","listingUrl": "https://www.99.co/singapore/sale/property/toh-drive-landed-iD6zEuiwhqX8AMzsxjgCUs","listingTitle": "5 Bed Bungalow (Landed) for Sale in Toh Estate","listingType": "sale","propertySegment": "residential","mainCategory": "landed","subCategory": "Bungalow","price": 8700000,"priceFormatted": "S$ 8,700,000","currency": "SGD","isNegotiable": true,"pricePerSqft": 1401,"bedrooms": "5","bathrooms": 5,"builtUpSqft": 4400,"landAreaSqft": 6211,"tenure": "Freehold","builtYear": 2013,"furnishing": null,"address": "Toh Drive","neighbourhood": "Loyang East","region": "East Region","latitude": 1.3646052524058343,"longitude": 103.97297793694283,"nearestMrtName": "Loyang MRT","nearestMrtLines": ["CR 3"],"mrtWalkMinutes": 10,"mrtDistanceMeters": 737,"postedAt": "2026-06-12T06:36:09.182Z","photoCount": 8,"coverPhotoUrl": "https://pic2.99.co/v3/bcYm9D96gMdF7wMsM9LNtn?...","photoUrls": ["https://pic2.99.co/v3/bcYm9D96gMdF7wMsM9LNtn?...", "..."],"uspTags": ["Near MRT Station", "Spacious Layout", "Freehold Property"],"agentName": "Julie Phua","agentPhone": "+6591500299","agentWhatsapp": "+6591500299","agentIsPremium": true,"agentIsCorporate": false,"isWhatsappEnquiryAllowed": true,"searchUrl": "https://www.99.co/singapore/sale","scrapedAt": "2026-06-12T12:00:00.000Z"}
Monitoring — get only new listings
Turn on monitoringMode and the actor remembers which listings it has already returned for each search (in a persistent key-value store) and, on the next run, outputs only listings that are new since last time.
This is a pure result filter — the actor still runs once and exits, so it works with, not against, the Apify scheduler:
- Set
monitoringMode: trueandsortBy: recency. - Create an Apify Schedule (e.g. every hour) for the actor.
- Add a webhook or Zapier step to push each new listing into your CRM, Slack or a spreadsheet.
You now have a live feed of just-listed Singapore properties (and fresh agent leads) with zero duplicates.
Automate & schedule
Run this actor on autopilot and pull results into your own stack:
- Apify API — start runs, fetch datasets, and manage schedules over REST.
- apify-client for JavaScript and apify-client for Python — official SDKs.
- Schedules — run it hourly/daily to monitor new listings in a district, MRT zone, or price band.
- Webhooks — trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });const run = await client.actor('scrapesage/99-co-property-scraper').call({searchUrls: ['https://www.99.co/singapore/sale/condos-apartments?num_beds=3'],sortBy: 'recency',maxResults: 500,});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. You can call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "find 3-bedroom condos for sale near an MRT under S$2M on 99.co and list the agents" and let it run this scraper for you.
More scrapers from scrapesage
Build a complete Singapore + lead-gen data stack:
- SGCarMart Used Car Scraper — Singapore used-car prices, COE/OMV/ARF and dealer leads.
- Airbnb Scraper & Market Monitor — short-stay listings, prices and availability.
- Eventbrite Scraper — events + organizer leads with contact data.
- LinkedIn Jobs Scraper — job postings as hiring-intent signals.
- Facebook Ad Library Scraper — competitor ad intelligence.
- Google Ads Transparency Scraper — who's advertising what on Google.
- Telegram Scraper — channels, messages, media and search.
Tips
- Exhaust a big search: 99.co caps very deep pagination. To pull a large segment fully, split it into narrower searches (by district, price band, or property type) — each paginates independently.
- Cheapest, freshest leads: combine
sortBy: recency+monitoringMode+ an hourly Schedule so each run scrapes only the handful of brand-new listings. - Keep the Singapore residential proxy: 99.co is geo-served and Cloudflare-protected; datacenter or non-SG IPs get blocked.
- Map view: every record has
latitude/longitude— drop the dataset straight onto a map or into a geospatial tool.
FAQ
Which property types does it cover? Everything on 99.co Singapore — HDB resale, condos & apartments, landed houses, executive condominiums (EC), rooms, and commercial — for both sale and rent.
Do I need to learn URL parameters? No. Apply filters on 99.co normally and paste the resulting URL. The scraper mirrors that exact search, including every filter you set.
Where do the agent phone numbers come from? They are the contact numbers each agent publishes on their own 99.co listing — the same details a buyer sees on the page. Set includeAgentContacts: false to exclude them.
How do I get only new listings? Turn on monitoringMode and sort by recency, then schedule the actor. Each run outputs only listings not seen on previous runs — no duplicates.
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 99.co 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 99.co's terms.
A field is null — why? Some listings genuinely omit a value (e.g. no floor area for a landed home, or an agent who hides furnishing). Fields are null only when the data isn't published, never because the scraper skipped them.
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.