DDProperty Scraper
Pricing
from $1.49 / 1,000 results
DDProperty Scraper
Scrape property listings from DD websites with precision. Extracts prices, locations, descriptions & more. Residential proxy compulsory for reliable data collection. Perfect for real estate analytics, market research & investment tracking. High-speed, accurate property data extraction.
Pricing
from $1.49 / 1,000 results
Rating
5.0
(2)
Developer
Shahid Irfan
Maintained by CommunityActor stats
1
Bookmarked
17
Total users
4
Monthly active users
13 days ago
Last modified
Categories
Share
DDProperty Listings Scraper
Extract DDProperty property listings for sale or rent and collect clean, analysis-ready real estate data at scale. Gather pricing, property details, location context, agent information, and listing quality signals for research, monitoring, and lead generation.
Features
- Comprehensive listing coverage - Collect pricing, property specs, address details, project names, agent metadata, and listing status signals
- Duplicate-safe collection - Save unique listings only, even across multiple result pages
- Adaptive continuity - Keeps collection stable when one access pattern stops returning usable listing data
- Rich location context - Capture district, region, nearby MRT references, and feature summaries
- Clean output records - Automatically removes empty values so exported data stays ready for analysis
Use Cases
Market Monitoring
Track sale and rent inventory over time to understand pricing shifts, listing freshness, and supply changes in target areas.
Lead Research
Build structured property datasets with agent and project context for outreach, qualification, and portfolio review.
Competitive Analysis
Compare property types, pricing, and listing visibility signals across districts, projects, and commercial versus residential segments.
Investment Screening
Review floor area, price-per-area, building context, and recency indicators to shortlist attractive property opportunities faster.
Data Pipeline Automation
Feed structured listing data into dashboards, alerts, or CRM tools for continuous real estate intelligence.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | DDProperty sale search URL | Search URL to start from |
listingType | String | No | sale | Listing mode - sale or rent |
isCommercial | Boolean | No | false | Toggle commercial property search |
results_wanted | Integer | No | 20 | Maximum number of listings to save |
max_pages | Integer | No | 5 | Maximum result pages to inspect |
proxyConfiguration | Object | No | Residential proxy preset | Proxy settings for reliable runs |
Output Data
Each item in the dataset contains:
| Field | Type | Description |
|---|---|---|
id | String | Listing ID |
externalId | String | External listing ID |
title | String | Listing title |
url | String | Listing URL |
listingType | String | Sale or rent label |
propertyType | String | Property type (Condo, House, etc.) |
statusCode | String | Listing status code |
price | Number | Numeric listing price |
priceText | String | Formatted listing price |
pricePerArea | String | Price per area text |
currency | String | Currency code |
bedrooms | Number | Bedroom count |
bathrooms | Number | Bathroom count |
floorAreaSqm | Number | Floor area in square meters |
landAreaSqm | Number | Land area in square meters |
address | String | Full address |
district | String | District name |
region | String | Region name |
projectName | String | Project or development name |
developerName | String | Developer name when available |
agentName | String | Agent name |
agentId | Number | Agent ID |
agentVerified | Boolean | Agent verification flag |
imageUrl | String | Main listing image URL |
photoGallery | Array | Full-resolution photo URLs from the listing gallery |
availabilityText | String | Availability label |
listedByText | String | Listing source label |
badgeText | String | Listing badge text |
viewedLabel | String | Viewer activity label |
mrtNames | Array | Nearby MRT station names |
featureTexts | Array | Feature summary text values |
isVerified | Boolean | Listing verification flag |
isOfficialListing | Boolean | Official listing flag |
isDeveloperListing | Boolean | Developer listing flag |
isDeveloperUnitListing | Boolean | Developer unit listing flag |
isPrioritized | Boolean | Prioritized listing flag |
isPhoneOtpEnabled | Boolean | Phone verification flag |
accountTypeCode | String | Listing account type |
recencyText | String | Recency text |
postedOnText | String | Display posting date |
postedOnUnix | Number | Posting timestamp |
sourceUrl | String | Search page URL used for collection |
page | Number | Search result page number |
scrapedAt | String | ISO timestamp when the record was collected |
Usage Examples
Basic Sale Listings
Collect default sale search results:
{"startUrl": "https://www.ddproperty.com/en/property-for-sale?listingType=sale&isCommercial=false","listingType": "sale","isCommercial": false,"results_wanted": 20,"max_pages": 3}
Rent Listings
Switch to rent inventory:
{"startUrl": "https://www.ddproperty.com/en/property-for-rent?listingType=rent&isCommercial=false","listingType": "rent","isCommercial": false,"results_wanted": 30,"max_pages": 4}
Commercial Search
Collect commercial property listings with residential proxies for better continuity:
{"startUrl": "https://www.ddproperty.com/en/property-for-sale?listingType=sale&isCommercial=true","listingType": "sale","isCommercial": true,"results_wanted": 20,"max_pages": 5,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Sample Output
{"id": "12345678","externalId": "12345678","title": "3 Bedroom Condo for sale at Example Residence","url": "https://www.ddproperty.com/en/property/example-residence-for-sale-12345678","listingType": "For Sale","propertyType": "Condo","statusCode": "ACT","price": 8500000,"priceText": "฿8,500,000","pricePerArea": "฿94,444 / sqm","currency": "THB","bedrooms": 3,"bathrooms": 2,"floorAreaSqm": 95,"address": "Bang Na, Bang Na, Bangkok","district": "Bang Na","region": "Bangkok","projectName": "Example Residence","developerName": "Example Developer","agentName": "Example Agent","agentId": 81234,"agentVerified": true,"availabilityText": "Available now","listedByText": "Listed by agent","badgeText": "Verified","viewedLabel": "Viewed 120 times","mrtNames": ["Bang Na"],"featureTexts": ["3 Beds", "2 Baths", "95 sqm"],"imageUrl": "https://th1-cdn.pgimgs.com/project-listing-project/60248606/PLPHO.134568456.V550/example.jpg","photoGallery": ["https://th1-cdn.pgimgs.com/project-listing-project/60248606/PLPHO.134568456.V800/example.jpg","https://th1-cdn.pgimgs.com/project-listing-project/60248606/PLPHO.134568457.V800/example-2.jpg"],"isVerified": true,"isOfficialListing": false,"isDeveloperListing": false,"isPrioritized": true,"accountTypeCode": "agent","recencyText": "2 days ago","postedOnText": "2 days ago","postedOnUnix": 1772755200,"sourceUrl": "https://www.ddproperty.com/en/property-for-sale?listingType=sale&isCommercial=false","page": 1,"scrapedAt": "2026-06-15T12:00:00.000Z"}
Tips for Best Results
Start Small
- Use
results_wanted: 20for faster validation runs - Increase
max_pagesgradually for larger collection jobs
Choose Stable Search URLs
- Use working DDProperty search URLs with the correct
listingType - Keep
isCommercialaligned with the chosen search page
Improve Continuity
- Use residential proxies for larger or repeated runs
- Rerun with a lower page limit first if the site returns fewer records than expected
Proxy Configuration
For reliable results, residential proxies are recommended:
{"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Integrations
Connect your data with:
- Google Sheets - Review property inventory in a spreadsheet workflow
- Airtable - Build searchable listing databases
- Webhooks - Send fresh listing data to downstream systems
- Make - Automate lead and monitoring workflows
- Zapier - Trigger alerts and reporting steps
Export Formats
- JSON - For APIs and custom applications
- CSV - For spreadsheet analysis
- Excel - For business reporting
- XML - For system integrations
Frequently Asked Questions
How many listings can I collect?
You can collect all available listings the selected search exposes. Set results_wanted to your target number and increase max_pages for deeper pagination.
Can I collect both sale and rent listings?
Yes, you can. Set listingType to sale for for-sale properties or rent for rental listings, and provide a matching DDProperty search URL.
What fields does each listing record contain?
Each record includes 43 fields covering price, property type, bedrooms, bathrooms, floor area, land area, address, district, region, project name, developer name, agent details, MRT station names, feature summaries, verification flags, and timestamps.
Why do some fields appear empty?
Not every listing exposes all data points. Empty values are omitted automatically so the exported dataset stays clean and analysis-ready.
Why should I use proxies?
Residential proxies provide better continuity for repeated or large-scale collection runs. They help reduce the chance of rate limiting and access interruptions.
What happens if no listings are found?
The run stops with a clear error message instead of returning a fake success record. This makes it straightforward to diagnose issues and adjust your input parameters.
Can I automate this on a schedule?
Yes. Apify supports scheduled runs. You can configure daily or weekly collection jobs and pipe results into Google Sheets, Slack, or custom webhooks.
Is this compliant with DDProperty terms?
You are responsible for using this actor in accordance with DDProperty's terms of service and robots.txt. Always respect rate limits and applicable laws.
Support
For issues or feature requests, contact support through the Apify Console.
Resources
Legal Notice
Use this actor responsibly and in compliance with DDProperty terms, robots policies, and applicable laws. You are responsible for lawful use of collected data.