EdgeProp Singapore Scraper
Pricing
from $0.77 / 1,000 result items
EdgeProp Singapore Scraper
Scrape property listings from EdgeProp Singapore — sale and rent across HDB, condo, landed, and commercial. No proxy required.
Pricing
from $0.77 / 1,000 result items
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share

Extract property listings from edgeprop.sg at scale, in a clean, consistent structure ready for market analysis, valuation models, lead generation and monitoring. No API key required.
Why this scraper?
🎯 Built for Singapore
A dedicated Singaporean scraper, not a global tool with a country dropdown. Locations, price formats and currency (SGD) are tuned for edgeprop.sg.
💶 Structured pricing
Asking price or rent as a clean number in SGD, plus the price exactly as displayed. Price-on-request listings return null, never a guess.
🏠 Property characteristics
Bedrooms, rooms, surface and property type in structured fields, ready for filtering and analysis.
🖼️ Listing photos
Photo URLs for every listing where the source publishes them.
🔁 Repost & change detection
Every record carries isRepost and changeStatus, so daily feeds return genuinely new listings instead of reposted duplicates.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
minPrice | integer | (empty) | Minimum listing price (local currency). Leave empty for no minimum. |
maxPrice | integer | (empty) | Maximum listing price (local currency). Leave empty for no maximum. |
daysOld | integer | (empty) | Only return listings published within the last N days. Leave empty for no recency filter. |
fetchDetails | boolean | false | If true, opens each listing detail page to extract additional fields (description, floor plan, agent contact). Increases run time and cost. |
maxItems | integer | 100 | Maximum number of listings to extract per run. Set to 0 for unlimited. |
startUrls | array | (empty) | Optional list of search-results page URLs. When provided, all filter fields above are ignored. |
categories | array | ["all-sale"] | Which listing categories to scrape. Multiple selection allowed. |
requestDelayMs | integer | 1200 | Milliseconds to wait between page requests. Increase to reduce server load. |
Output schema
Every field below is present on every record. Fields the source does not publish for a given listing are returned as null rather than omitted.
| Field | Type | Description |
|---|---|---|
listingId | string | Unique listing ID |
url | string | Listing detail page URL |
source | string | Source. |
operationType | string | sale or rent |
propertyType | string | HDB, Apartment/Condo, Landed, etc. |
propertySubType | string | Specific sub-type (e.g. "3-Room Improved") |
priceText | string | Price as displayed (e.g. "SGD 378,000") |
priceAmount | number | Numeric price in SGD |
priceCurrency | string | Always "SGD" |
pricePerSqftSGD | number | Price per square foot |
projectName | string | Development or block name |
streetName | string | Street name |
postalCode | string | 6-digit Singapore postal code |
district | string | Planning district number |
planningRegion | string | Planning region. |
subzone | string | Subzone. |
bedrooms | number | Number of bedrooms |
bathrooms | number | Number of bathrooms |
floorAreaSqft | number | Floor area in square feet |
floorAreaSqm | number | Floor area in square metres |
landAreaSqft | string | Land area sqft. |
tenure | string | 99-year, freehold, etc. |
yearCompleted | string | Year completed. |
isNewLaunch | boolean | Whether listed as new launch |
images | array | Image URLs |
imageCount | number | Image count. |
hasFloorplan | boolean | Has floorplan. |
hasVideo | boolean | Has video. |
has360Tour | boolean | Has360tour. |
insights | array | MRT proximity, school count, amenities |
agentName | string | Listing agent name |
agencyName | string | Real estate agency |
updatedAt | string | ISO timestamp of last update |
scrapedAt | string | ISO timestamp of extraction |
contentHash | string | Stable hash of the listing content, used for repost and change detection. |
Example record
{"listingId": "m_2182880","url": "https://www.edgeprop.sg/listing/hdb/4i-improved/26-jalan-berseh/m_2182880","source": "edgeprop.sg","operationType": "sale","propertyType": "HDB","propertySubType": "4-Room Improved","priceText": "SGD 650,000","priceAmount": 650000,"priceCurrency": "SGD","pricePerSqftSGD": 694,"projectName": "26 JALAN BERSEH","streetName": "Jalan Berseh","postalCode": "200026","district": "Central Area","planningRegion": null,"subzone": null,"bedrooms": 3,"bathrooms": 1,"floorAreaSqft": 936,"floorAreaSqm": 86.95724544,"landAreaSqft": null,"tenure": "99 years","yearCompleted": "1978","isNewLaunch": false,"images": ["https://img.tepcdn.com/img-v2/l/m-h_266,w_400,g_cm/6160507/90455125/9e8a7511-0180-4386-9763-d29d8ec30956.jpg","https://img.tepcdn.com/img-v2/l/m-h_266,w_400,g_cm/6160507/90455126/363d7fff-c26b-4d4a-a88e-2d9a6528fcbf.jpg","https://img.tepcdn.com/img-v2/l/m-h_266,w_400,g_cm/6160507/90455127/f8a11cec-5c7b-4ecd-a931-f60214d32175.jpg","https://img.tepcdn.com/img-v2/l/m-h_266,w_400,g_cm/6160507/90455128/974c7d49-dcec-4691-96ef-8d6d93614f77.jpg"],"imageCount": 8,"hasFloorplan": true,"hasVideo": false,"has360Tour": false,"insights": ["2 Grocery Stores nearby","2 non-primary Schools nearby","Rental Volume Above National Avg","16 Malls nearby"],"agentName": "Andrew Wong","agencyName": "ERA REALTY NETWORK PTE LTD","updatedAt": "2026-06-26T13:02:02.249Z","scrapedAt": "2026-06-26T14:14:26.278Z","contentHash": "f90aaa5ab38d9f79"}
Examples
Listings in Singapore:
{"maxItems": 100}
Cap the price:
{"maxItems": 100,"maxPrice": 1480000}
Scrape a specific search URL:
{"startUrls": [{"url": "https://www.edgeprop.sg/"}],"maxItems": 200}
Daily feed of new listings (run on a schedule):
{"daysOld": 1,"maxItems": 500}
Schedule this input to run once a day in the Apify Scheduler — each run returns only listings added in the last 24 hours.
💰 Pricing
$0.79 per 1,000 results — you only pay for successfully retrieved listings. Failed retries are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.08 |
| 1,000 | ~$0.79 |
| 10,000 | ~$7.9 |
| 100,000 | ~$79 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Subscription tiers lower the rate further, down to $0.75 per 1,000 at the highest tier. Use the Max results cap in the input to control your spend exactly.
Performance
| Run size | Typical time |
|---|---|
| 100 results | under 1 minute |
| 1,000 results | 2–4 minutes |
| 10,000 results | 20–35 minutes |
Known limitations
- Some fields (surface, year built, energy label) are only returned when the lister publishes them — expect
nullon a share of records. - Listing photos and agent details vary per listing; the scraper returns what the source publishes and never invents data.
- Very large result sets are bounded by the source's own paging limits.
- Listings can be withdrawn at any time, so a small share of URLs may expire shortly after scraping.
Technical details
- Source: edgeprop.sg — Singapore property listings
- Coverage: everything the public search exposes, filterable via the input parameters above
- Retry: automatic retry on network errors with exponential backoff
Need a custom scraper?
Unfenced Group builds Apify actors for any website — for free.
If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.
Get in touch: www.unfencedgroup.nl