99.co Singapore API Scraper avatar

99.co Singapore API Scraper

Pricing

from $1.00 / 1,000 property listings

Go to Apify Store
99.co Singapore API Scraper

99.co Singapore API Scraper

Extract structured property listing data from 99.co Singapore (99.co). Search by location, district, listing type, or property type. Returns id, title, price, address, district, beds, baths, floor area, property type, tenure, agent details, image URLs, and listing URLs.

Pricing

from $1.00 / 1,000 property listings

Rating

0.0

(0)

Developer

R.L.

R.L.

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

99.co Singapore Scraper πŸ‡ΈπŸ‡¬πŸ 

Extract property listings from 99.co Singapore (99.co) at scale. Search by location, district, listing type, and property type β€” get clean, structured JSON with prices, addresses, floor area, 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 it does

99.co is one of Singapore's largest property marketplaces. This scraper pulls listing data straight from its internal mobile-app API β€” reverse-engineered from the official 99.co Android app β€” and hands you ready-to-use records. Point it at a neighbourhood or postal district, filter by sale/rent and property type, and export the results to JSON, CSV, Excel, or your own database.

  • ⚑ Fast & reliable β€” reads the underlying API, not fragile page HTML.
  • 🎯 Precise targeting β€” 28 Singapore postal districts + freetext area/MRT search.
  • 🏒 All property types β€” HDB, condo/apartment, landed, walk-up, commercial.
  • πŸ’° Sale or rent β€” with min/max price and bedroom filters.
  • πŸ“‡ Rich per-listing data β€” including agent name, mobile, project name, and exact address.
  • πŸ”Œ Export anywhere β€” CSV, JSON, Excel, or push to Google Sheets, Make, Zapier, and 5,000+ apps.

Use cases

  • 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 contact details from active listings.

Input

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.

FieldDescription
LocationArea/neighbourhood/MRT name, e.g. Orchard, Woodlands, Bishan MRT. Freetext search.
DistrictPrecise Singapore postal district (D01–D28). Overrides Location when set.
Listing typeFor Sale or For Rent.
Property typeCondo/Apartment, HDB, Landed, Walk-up, or Commercial.
Min / Max price (S$)Price range in SGD (monthly for rentals).
BedroomsExact number of bedrooms.
Fetch full listing detailAlso fetch each listing's detail page for agent contact, project name, and exact address. Roughly doubles request count.
Max itemsCap the number of listings returned (0 = unlimited).
ProxyApify 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.


Output

Each listing is one dataset record. Export to JSON, CSV, Excel, HTML, or RSS, or fetch via the Apify API.

Example output

{
"id": "3R2mm6SZtgjGJP3N2RAoW9",
"title": "224 Bishan Street 23",
"typeText": "For Sale",
"price": 850000,
"pricePretty": "S$ 850,000",
"pricePerArea": "S$ 774 psf",
"address": "224 Bishan Street 23 570224",
"district": "D20",
"region": "Central Region",
"beds": "3",
"baths": 2,
"floorArea": 1098,
"floorAreaText": "1,098 sqft",
"propertyType": "hdb_4r",
"propertyName": "224 Bishan Street 23",
"tenure": "99 yrs",
"topYear": "1990",
"agentName": "Ong Shee Chiat (Nick Ong)",
"agentMobile": "+6581633644",
"latitude": 1.35894550352623,
"longitude": 103.847698643978,
"postalCode": "570224",
"images": ["https://..."],
"listingUrl": "https://www.99.co/property/3R2mm6SZtgjGJP3N2RAoW9",
"postedDate": "4m"
}

Fields returned

id, title, typeText, price, pricePretty, pricePerArea, address, district, region, beds, baths, floorArea, floorAreaText, landArea, landAreaText, propertyType, propertyName, tenure, topYear, furnishing, agentName, agentMobile, agentNumber, latitude, longitude, postalCode, images, hasFloorplans, listingUrl, shareUrl, postedDate, neighbourhoodName, and more.


Singapore postal districts

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 Β· 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 Β· D21 Clementi Park / Upper Bukit Timah Β· D22 Boon Lay / Jurong / Tuas Β· D23 Bukit Batok / Choa Chu Kang Β· D24 Lim Chu Kang / Tengah Β· D25 Admiralty / Woodlands Β· D26 Mandai / Upper Thomson Β· D27 Sembawang / Yishun Β· D28 Seletar / Yio Chu Kang


How to use

  1. Click Try for free / Start.
  2. Set your filters (location, district, price, property type…).
  3. Run the Actor.
  4. 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.


Integrations

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.


Cost estimation

There's no per-result pricing configured for this Actor β€” you pay for the platform compute you use (or nothing extra on your own plan tier). Search + detail requests are lightweight JSON API calls, so runs are typically fast and cheap. Use Max items and disable Fetch full listing detail to keep large runs efficient.


FAQ

Is web scraping 99.co legal? This tool collects publicly available listing data. You are responsible for using it in line with 99.co's terms and applicable laws (including data-protection rules when handling personal data such as agent contacts). Use scraped data responsibly.

Do I need a 99.co account? No.

How many listings can I get? As many as the search returns. Use Max items to cap a run.

Can I get agent contact details? Yes β€” agentName and agentMobile are included when Fetch full listing detail is on and the agent's contact is published on the listing.

What if a search is too broad? If a location can't be resolved, the run fails fast instead of silently returning all of Singapore β€” so you never pay for the wrong data.


Support

Found a bug or need an extra field? Open an issue on the Actor's Issues tab. Suggestions welcome.