
Global Sources Supplier Scraper
scrape.ly/store/cornerledger/globalsources-scraperLead generationE-commerce
2 monthly users

Scrape DDproperty.com, Thailand's largest property portal: condos, houses, land and commercial listings for sale or rent with price, beds, baths, size, location, coordinates, photos, description, facilities, project and agent name, phone and agency.
Scrape DDproperty.com, Thailand's largest property portal, into clean spreadsheet-ready rows: condos, houses, townhouses, land and commercial space for sale or rent, with price, beds, baths, size, full address, GPS coordinates, photos, description, facilities, project details and the agent's name, phone number, LINE ID and agency. No login, no browser: 1,000 listings with full details took under 2 minutes in our tests.
| Field | What it does |
|---|---|
startUrls | DDproperty search URLs (any filters, region, district, BTS/MRT or project search), listing URLs, or project URLs (/en/project/..., returns all sale and rent units in the project). |
locations | Province, district or sub-district names (Bangkok, Phuket, Pattaya, Hua Hin, Watthana, Khlong Toei ...) or location codes like TH10. Other text runs as a keyword search (Sukhumvit, Thonglor, a project or road). |
maxItems | Maximum listings across all inputs (default 20, 0 = no limit). |
listingType | sale or rent (for location searches). |
propertyType | condo, house, semi-detached-house, townhouse, villa, apartment, land, shophouse, office-space, retail-space, warehouse, business. |
minPrice / maxPrice | Price range in THB (monthly rent for rentals). |
minBedrooms / maxBedrooms / minBathrooms | Room filters (0 bedrooms = studio). |
minSize / maxSize | Floor area in sqm. |
keyword, furnishing, tenure, newProjectsOnly, sort | Extra filters and sort order. |
includeDetails | Open each listing page for phone, coordinates, description, facilities, all photos and dates (default on). |
proxyConfiguration | Proxy settings. Datacenter works; the run moves to Thai residential proxies by itself if it gets blocked. |
{
"startUrls": [{ "url": "https://www.ddproperty.com/en/property-for-sale/in-bangkok-th10" }],
"locations": ["Phuket", "Sukhumvit"],
"listingType": "rent",
"propertyType": "condo",
"minPrice": 20000,
"maxPrice": 60000,
"minBedrooms": 1,
"maxItems": 500,
"includeDetails": true
}
One row per listing. Main fields:
| Field | Description |
|---|---|
id, url, title, headline | Listing ID, link, title and the agent's headline |
listingType, propertyType, propertyTypeGroup | Sale or rent, and the property type |
price, priceFormatted, currency, pricePerSqm, priceType | Asking price or monthly rent in THB |
bedrooms, isStudio, bathrooms, floorAreaSqm, landAreaSqm, landArea | Size and rooms |
tenure, furnishing, floorLevel, parkingSpots | Unit details |
address, street, postalCode, subDistrict, district, province (+ codes) | Location |
latitude, longitude, nearestTransit, nearbyStations | Coordinates and BTS/MRT stations |
description, features, facilities, photos, photoCount, videoUrls | Content and media |
agentName, agentPhone, agentPhones, agentLineId, agentVerified, agentProfileUrl, agencyName | Agent and agency |
projectName, projectId, developer, completionYear, totalUnits, isNewProject | Condo / housing project |
postedAt, updatedAt, firstPostedAt, expiresAt, listedText, status | Dates (UTC) and status |
Example (trimmed; agent details replaced with fictional ones):
{
"id": 500648081,
"url": "https://www.ddproperty.com/en/property/metro-luxe-ratchada-bangkok-for-rent-500648081",
"title": "Metro Luxe Ratchada, Bangkok",
"projectName": "Metro Luxe Ratchada",
"listingType": "rent",
"propertyType": "Condo",
"price": 13000,
"priceFormatted": "฿13,000 /mo",
"currency": "THB",
"pricePerSqm": "฿448.28 / sqm",
"bedrooms": 1,
"bathrooms": 1,
"floorAreaSqm": 29,
"furnishing": "Partially Furnished",
"address": "461 Ratchadaphisek Road, Din Daeng, Bangkok",
"postalCode": "10400",
"district": "Din Daeng",
"province": "Bangkok",
"latitude": 13.784105,
"longitude": 100.573093,
"nearestTransit": "BL18 Huai Khwang MRT (1160 m)",
"facilities": ["Car park", "CCTV", "Fitness corner", "Jacuzzi", "Jogging track"],
"photos": ["https://th1-cdn.pgimgs.com/listing/500648081/UPHO.140140608.V800/Metro-Luxe-Ratchada-Din-Daeng-Thailand.jpg"],
"photoCount": 7,
"agentName": "Example Realty Co.",
"agentPhone": "+66812345678",
"agentLineId": "@examplerealty",
"agencyName": "Example Realty Co.",
"developer": "Property Perfect",
"completionYear": 2017,
"totalUnits": 535,
"postedAt": "2026-10-15T09:57:04Z",
"expiresAt": "2026-11-16T09:57:04Z"
}
You pay $1.40 per 1,000 listings ($0.0014 per listing), with listing details included at no extra charge. There is no start fee and no monthly rental. Platform usage (compute and proxy traffic) is billed separately and is small: a 1,000-listing run with full details used about $0.06 of usage on datacenter proxies, so 1,000 listings ≈ $1.46 in total. If DDproperty blocks the datacenter exits and the run moves to residential proxies, usage is roughly $0.20 per 1,000 listings instead.
Is it legal to scrape DDproperty? The actor only collects publicly visible listing data, the same as any visitor sees. Personal data such as agents' phone numbers is subject to data protection laws (for example Thailand's PDPA); make sure you have a lawful basis for how you use it.
Do I need a DDproperty account, cookies or my own proxy? No. The actor needs no login. It uses the platform proxy and handles DDproperty's Cloudflare protection on its own.
How many listings can I get? As many as the search has. DDproperty serves every page of a search (for example about 67,000 Bangkok listings for sale), and the actor walks all of them up to your Max listings. Duplicate listings across pages and inputs are removed.
Why is a field empty? Fields are filled only when DDproperty shows them. Developer new-launch listings often have no fixed price or agent phone, land has no bedrooms, and phone, coordinates and description need Open each listing page turned on.
Can I schedule it or use it from code? Yes. Schedule runs in the console, or start runs and read the dataset through the API in any language.
Thai-language links? Paste them as they are. The actor reads the English version of the same page so text fields come back in English (descriptions stay in the language the agent wrote them in).
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
startUrlsarrayOptionalDDproperty URLs
Paste links from ddproperty.com: search result pages (any filters, region, district, BTS/MRT station or project search), single listing pages, or condo project pages (all units for sale and rent in that project). Open the site, refine your search, then copy the URL from the address bar. Thai-language links are switched to the English pages automatically.
locationsarrayOptionalLocations to search
Province, district or sub-district names (e.g. Bangkok, Phuket, Watthana, Khlong Toei, Pattaya, Hua Hin) or DDproperty location codes (e.g. TH10, TH1039). Other text (Sukhumvit, Thonglor, a project or road name) runs as a keyword search. Each entry is searched with the filters below.
maxItemsintegerOptionaldefault 20Max listings
Maximum number of listings to save across all URLs and locations. 0 means no limit.
Used for Locations searches (and for a search over all of Thailand when no URL or location is given). Pasted search URLs keep their own filters.
listingTypeenumOptionaldefault "sale"For sale or rent
Listings for sale or for rent.
propertyTypeenumOptionaldefault "any"Property type
Type of property.
minPriceintegerOptionalMin price (THB)
Minimum price in Thai baht (monthly rent for rentals).
maxPriceintegerOptionalMax price (THB)
Maximum price in Thai baht (monthly rent for rentals).
minBedroomsintegerOptionalMin bedrooms
Minimum number of bedrooms (5 means 5 or more).
maxBedroomsintegerOptionalMax bedrooms
Maximum number of bedrooms (0 means studio only).
minBathroomsintegerOptionalMin bathrooms
Minimum number of bathrooms.
minSizeintegerOptionalMin size (sqm)
Minimum floor area in square metres.
maxSizeintegerOptionalMax size (sqm)
Maximum floor area in square metres.
keywordstringOptionalKeyword
Free-text keyword the site searches for, e.g. a road, BTS station, project name or feature (pool villa, river view).
furnishingenumOptionaldefault "any"Furnishing
Furnishing status.
tenureenumOptionaldefault "any"Tenure
Ownership tenure.
newProjectsOnlybooleanOptionaldefault falseNew launches only
Only new-launch project listings from developers.
sortenumOptionaldefault "relevance"Sort by
Order of the results.
includeDetailsbooleanOptionaldefault trueOpen each listing page
Visit every listing page to add the agent phone number and LINE ID, GPS coordinates, full description, facilities, all photos, nearby BTS/MRT stations, furnishing, floor level, project details and posted / updated / expiry dates. Turn off for faster runs with search-card data only (price, beds, baths, size, address, district, agent name and agency, photos).
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies work for DDproperty. If Cloudflare starts blocking them, the run switches to residential proxies in Thailand automatically.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| thumbnail | any | Photo |
| url | any | Listing |
| title | any | Title |
| listingType | any | Sale/rent |
| propertyType | any | Type |
| price | any | Price |
| currency | any | Currency |
| bedrooms | any | Beds |
| bathrooms | any | Baths |
| floorAreaSqm | any | Size (sqm) |
| district | any | District |
| province | any | Province |
| projectName | any | Project |
| agentName | any | Agent |
| agentPhone | any | Phone |
| agencyName | any | Agency |
| postedAt | any | Posted |
| id | any | ID |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Listing | One saved DDproperty listing (listing details included). | $0.0014 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('roamandroof/ddproperty-scraper').call({
"startUrls": [
{
"url": "https://www.ddproperty.com/en/property-for-sale/in-bangkok-th10"
}
],
"maxItems": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run roamandroof/ddproperty-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=roamandroof/ddproperty-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Listings with full property pages.
Newest condos within a rent range.
Listings from a pasted DDproperty search.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.