Dot Property Southeast Asia Real Estate Listings Scraper
Pricing
from $17.00 / 1,000 results
Dot Property Southeast Asia Real Estate Listings Scraper
Scrape Dot Property listings across Thailand, Philippines and Indonesia with price, type, bedrooms, bathrooms, size in sqm, city, coordinates and advertiser. Export to JSON, CSV or Excel.
Pricing
from $17.00 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
Dot Property Southeast Asia Real Estate Listings Scraper
Here is one real result, with every field the actor returns (the description and images arrays are trimmed here for readability; the actor returns them in full):
{"source": "Dot Property","listingType": "sale","searchLocation": "bangkok","title": "Studio Condo for sale at Siamese Gioia","propertyType": "Condo","bedrooms": 0,"bathrooms": 1,"area": 43,"price": 4146000,"priceCurrency": "THB","project": "Siamese Gioia","city": "Khlong Toei Nuea","region": "Bangkok","country": "TH","latitude": 13.7430342,"longitude": 100.5685463,"image": "https://cdn.fazwaz.com/wbr/1qKkfX1TmNVq_XzAiamt--rvwLs/374x249/unit/6229235/6e014546d53e665a602747518a0e9c43.png","datePosted": "2026-04-29T16:24:25+07:00","listingUrl": "https://www.dotproperty.co.th/en/ads/condo-for-sale-in-siamese-gioia-khlong-toei-nuea-bangkok_63e58763dbf6-1a4f-0972-e0a5-f11cc089","description": "A spacious studio condo at Siamese Gioia, offering 42.85 sqm of comfortable living space in the prime Sukhumvit 31 / Phrom Phong-Asoke area … (trimmed)","amenities": ["Air Conditioning", "Balcony"],"images": ["https://cdn.fazwaz.com/wbr/IC2-w-3QO1JReycQjEDimagy1Us/0x0/unit/6229235/image-jul-3-2026-03-57-22-pm.png"],"imageCount": 5,"landAreaSqm": null,"parkingSpots": null,"storeys": null,"propertyTypeSlug": null,"petPolicy": "Not Allowed","unitId": "U6229235","furnitureStatus": "Fully Furnished","listedBy": null,"agencyName": null,"advertiserType": null,"totalViews": null,"agentPhone": "+66632103401","agentWhatsapp": null,"agentLine": null,"agentMessenger": null,"observedAt": "2026-08-10T14:30:43.672Z"}
The most complete Dot Property scraper available. It returns every field Dot Property exposes for each listing (price, type, beds, baths, size, project, city, region, geo coordinates, amenities, images), plus advertiser and agent contact channels, and gives you country, sale/rent, location and property-type filters to target exactly the listings you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor scrapes Dot Property listings across Thailand, the Philippines and Indonesia. Pick a country, sale or rent, one or more locations, and a property type; it paginates each search automatically and writes one record per listing with price and currency, property type, beds, baths, size in sqm, project, city, region, geo coordinates, amenities, images, posting date, and advertiser and agent contact channels (phone, WhatsApp, LINE, Messenger). Missing source values are returned as null, never invented.
Optional paid add-ons write an English buyer/renter summary (translated when needed), extract structured feature tags, and attempt to find a public contact email and name per listing.
Quickstart
Open the actor, paste this into the input, and press Run. It returns 10 for-sale listings across Bangkok and Phuket.
{"country": "th","listingType": "sale","locations": ["bangkok", "phuket"],"propertyType": "property","maxListings": 10}
Change country to ph or id and set listingType to rent to search rentals in the Philippines or Indonesia.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
country | enum | no | th | Dot Property site: th (Thailand), ph (Philippines), id (Indonesia). |
listingType | enum | no | sale | sale or rent. |
locations | string[] | no | ["bangkok","phuket"] | One or more cities, provinces or areas to search, for example bangkok, phuket, chiang-mai, pattaya. |
propertyType | enum | no | property | property (all), house, condo, townhouse, apartment, villa, land. |
maxListings | integer | no | 10 | Maximum listings to collect across all locations. Free plans are capped at 10. |
withSummary | boolean | no | false | Paid add-on. AI writes a concise English buyer/renter summary of each listing. Billed per summarised listing. Paid plans only. |
withFeatures | boolean | no | false | Paid add-on. AI extracts structured beds/baths/size/amenities/condition tags. Billed per processed listing. Paid plans only. |
enrichContacts | boolean | no | false | Paid add-on. For each result without an email, attempt to find a public business contact email and name. Billed per attempt plus an extra charge only when an email is found. |
enrichContactsMax | integer | no | 50 | Cap on how many results the contact add-on tries to enrich. Free accounts are capped at 3. |
Output reference
One dataset item per listing. Types: string, integer, number, string[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
source | string | Data source. Always Dot Property. |
listingType | string | sale or rent. |
searchLocation | string | The location slug this listing was found under. |
title | string | Listing headline. |
propertyType | string | Property type, for example Condo, House. |
bedrooms | integer | Number of bedrooms (0 for studios), or null. |
bathrooms | integer | Number of bathrooms, or null. |
area | number | Usable area in sqm, or null. |
price | integer | Price in the listing currency, or null when undisclosed. |
priceCurrency | string | Currency code, for example THB, PHP, IDR. |
project | string | Development/project name, or null. |
city | string | City or district. |
region | string | Province or region. |
country | string | Country code: TH, PH, ID. |
latitude | number | Latitude, or null. |
longitude | number | Longitude, or null. |
image | string | Primary thumbnail image URL. |
datePosted | string | ISO 8601 posting date. |
listingUrl | string | Full listing URL on Dot Property. |
description | string | Full listing description text. |
amenities | string[] | Amenity tags from the listing. |
images | string[] | Gallery image URLs. |
imageCount | integer | Number of gallery images. |
landAreaSqm | number | Land area in sqm, or null. |
parkingSpots | integer | Parking spaces, or null. |
storeys | integer | Number of storeys, or null. |
propertyTypeSlug | string | Internal property type slug, or null. |
petPolicy | string | Pet policy, for example Not Allowed, or null. |
unitId | string | Dot Property unit ID. |
furnitureStatus | string | Furnishing status, for example Fully Furnished, or null. |
listedBy | string | Advertiser name, or null. |
agencyName | string | Agency name, or null. |
advertiserType | string | Advertiser type (agent/developer/owner), or null. |
totalViews | integer | Listing view count, or null. |
agentPhone | string | Agent phone, or null. |
agentWhatsapp | string | Agent WhatsApp number, or null. |
agentLine | string | Agent LINE ID, or null. |
agentMessenger | string | Agent Messenger handle, or null. |
aiSummary | string | AI English summary (summary add-on), else absent. |
aiBeds / aiBaths / aiSizeSqft | number | AI-extracted structured values (features add-on). |
aiAmenities | string[] | AI-extracted amenity tags (features add-on). |
aiCondition | string | AI-extracted condition tag (features add-on). |
enrichedEmail | string | Public contact email found by the contact add-on, or null. |
enrichedContactName | string | Contact person name found by the add-on, or null. |
enrichedJobTitle | string | Contact job title found by the add-on, or null. |
enrichedEmailStatus | string | Verification status of the enriched email. |
enrichedSource | string | Source URL where the contact was found. |
enrichedConfidence | number | Confidence score for the enriched contact. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | Present only on a failed run: a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"country":"th","listingType":"sale","locations":["bangkok"],"maxListings":10}), description and images trimmed:
{"source": "Dot Property","listingType": "sale","searchLocation": "bangkok","title": "Studio Condo for sale at Siamese Gioia","propertyType": "Condo","bedrooms": 0,"bathrooms": 1,"area": 43,"price": 4146000,"priceCurrency": "THB","project": "Siamese Gioia","city": "Khlong Toei Nuea","region": "Bangkok","country": "TH","latitude": 13.7430342,"longitude": 100.5685463,"unitId": "U6229235","furnitureStatus": "Fully Furnished","petPolicy": "Not Allowed","agentPhone": "+66632103401","listingUrl": "https://www.dotproperty.co.th/en/ads/condo-for-sale-in-siamese-gioia-khlong-toei-nuea-bangkok_63e58763dbf6-1a4f-0972-e0a5-f11cc089","observedAt": "2026-08-10T14:30:43.672Z"}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~dotproperty-sea-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"country":"th","listingType":"sale","locations":["bangkok"],"maxListings":10}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~dotproperty-sea-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"country":"ph","listingType":"rent","locations":["manila"],"propertyType":"condo","maxListings":100}'
Apify CLI:
apify call scrapers_lat/dotproperty-sea-scraper \--input '{"country":"id","listingType":"sale","locations":["bali"],"maxListings":10}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per listing returned (
resultevent). See the pricing tab for the current per-result price. - Paid add-ons. AI summary, AI feature extraction and contact enrichment are optional and billed separately per the events described above. There is also an
agent_contactcharge only when a genuine agent contact handle is found, and only for paying users. - No charge on failure. If a run errors before any listing is collected, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 listings per run (and 3 contact enrichments). Upgrade for higher
maxListings.
FAQ and troubleshooting
A run returned 0 records. Why?
The location slug matched no listings for that country and property type. Try a broader location or propertyType: property. Zero-result runs are not charged.
Which countries are supported?
Thailand (th), the Philippines (ph) and Indonesia (id), selected with country.
Why is price null on some listings?
Some listings show a non-numeric price such as Contact for price. The field is returned as null rather than guessed.
How do I get agent emails?
Enable the enrichContacts add-on. The listing itself exposes phone, WhatsApp, LINE and Messenger channels; email is found best-effort by the add-on.
Can I search several areas in one run?
Yes. List multiple slugs in locations; one run searches all of them.
Is this an official Dot Property tool? No. This actor is independent and has no affiliation with Dot Property or Fazwaz. It reads only data that is publicly available on Dot Property. Use it in accordance with the Dot Property terms of service.
Related scrapers
- Singapore PropertyGuru Scraper: Singapore property listings.
- Lamudi Property Scraper: Southeast Asian and emerging-market property listings.
- Magicbricks India Scraper: Indian property listings.
- Domain.com.au Australia Real Estate Scraper: Australian property listings and agent contacts.
- JobStreet SEA Jobs Scraper: Southeast Asian job listings.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with Dot Property or Fazwaz. Accesses only publicly available Dot Property data. Use in accordance with the Dot Property terms of service.
