Fazwaz Thailand Property Scraper — Sale & Rent
Pricing
from $1.10 / 1,000 overview listings
Fazwaz Thailand Property Scraper — Sale & Rent
Scrape Thai real-estate listings from FazWaz — sale & rent across Phuket, Bangkok & all Thailand, as clean JSON/CSV. Choose a fast overview scan or full detail (photos, GPS, ownership, rental yield, price-per-sqm). Search by region, search URL, or specific listing URLs.
Pricing
from $1.10 / 1,000 overview listings
Rating
0.0
(0)
Developer
SIÁN OÜ
Maintained by CommunityActor stats
1
Bookmarked
3
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
FazWaz Thailand Property Scraper 🇹🇭🏠
🎉 NEW: Detail mode is now a full superset of Overview — every fast-scan field PLUS description, photos, GPS, ownership, developer & completion data on every listing.
Built for property investors, agents, and market researchers who need clean Thai real-estate data — for sale and for rent — without code or copy-paste.
📋 Overview
Pull Thai real-estate listings from FazWaz as clean JSON or CSV — for sale and for rent, across Phuket, Bangkok, Pattaya, Chiang Mai, Koh Samui, Hua Hin and all of Thailand. Pick the depth that fits the job: a fast price + spec scan, or the full per-property record.
Why investors and agents choose us:
- ⚡ Two depths, one actor: a fast Overview scan for sizing a market, or full Detail records when you need everything
- 🔁 Detail = Overview + more: every fast-scan field is on a Detail row too, with deep data added on top — never less
- 💱 Dual currency built in: every row carries THB and USD plus price-per-sqm, from one live FX rate per run
- 📊 Investor-ready: original (pre-discount) price, estimated monthly rent, rental yield (ROI %) and CAM fee on every row
- 🎯 Three ways to search: by region, by a pasted search URL, or by specific listing URLs
- 🆓 Free to try: up to 25 listings per run, no credit card
✨ Features
- 🧭 Overview mode: ~30 listings per page scan — price, specs, location, yield — ideal for fast market sweeps
- 🔍 Detail mode: full ~40-field record per listing (description, photo gallery, GPS, ownership, furnishing, developer, completion)
- 🗺️ By region / search URL / listing URL: pick provinces + sale/rent, paste a FazWaz search link, or drop in specific listings
- 🎚️ Filters & sort: price range, bedrooms, bathrooms, property type, completion status, and sort by newest or price
- 💱 Dual-currency + price/sqm: THB ↔ USD conversion and the standard Thai price-per-sqm metric on every row
- 📈 Investor signals: original price, estimated rent, rental yield (ROI %), CAM fee
- 🧾 Self-documenting datasets: every row carries a
metadataobject recording the exact search settings that produced it - 📤 Clean exports: JSON, CSV, Excel, or the full REST API
🎬 Quick Start
Choose a scrape depth + a search mode, set your filters, and run.
curl -X POST https://api.apify.com/v2/acts/sian.agency~fazwaz-property-scraper/runs?token=[YOUR_TOKEN] \-H 'Content-Type: application/json' \-d '{"scrapeMode": "overview","searchMode": "byRegion","provinces": ["phuket", "bangkok"],"operation": "sale","maxResults": 50}'
🚀 Getting Started (3 Simple Steps)
Step 1: Pick your scrape depth
- Overview — fast price + spec scan straight from search results (~30 listings/page).
- Detail — everything Overview returns, plus the full per-property record.
Step 2: Choose how to search
- By region — pick provinces (e.g.
phuket,bangkok) + sale or rent. - By search URL — paste one (or several) FazWaz search-results URLs; each is paged through and merged (pagination automatic), with Max results spread evenly across them.
- By listing URL — drop in specific listing URLs (Detail mode).
Step 3: Filter, set Max results & run
Narrow a region search by price, bedrooms, bathrooms, property type and completion status, sort how you like, then download.
That's it! In seconds you'll have:
- Clean property data (price in THB and USD, beds/baths, size, price-per-sqm)
- Location detail (address, province · district · subdistrict, GPS coordinates in Detail)
- Investor signals (original price, estimated rent, rental yield, CAM fee)
- Full listing data in Detail (description, photo gallery, ownership, furnishing, developer, completion)
📥 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| scrapeMode | string | No | overview (fast scan) or detail (full record). Default overview |
| searchMode | string | No | byRegion, bySearchUrl, or byListingUrl. Default byRegion |
| maxResults | integer | No | Max listings to return (FREE tier caps at 25). Default 100 |
| provinces | array | By region | Thai provinces, e.g. ["phuket","bangkok"] |
| operation | string | By region | sale or rent |
| searchUrl | string | By search URL | A single FazWaz search-results URL |
| searchUrls | array | By search URL | One or more FazWaz search-results URLs (paged & merged) |
| listingUrls | array | By listing URL | Specific FazWaz listing URLs (Detail only) |
| sortBy | string | No | recommended, newest, price_asc, price_desc |
| propertyTypes | array | No | condo, villa, house, townhouse, apartment, penthouse, land |
| minPrice / maxPrice | integer | No | Price range in THB (by region) |
| bedrooms / bathrooms | array | No | Counts to include, e.g. ["2","3"] (by region) |
| completionStatus | string | No | all, off_plan, completed (by region) |
Example (Detail, by region):
{"scrapeMode": "detail","searchMode": "byRegion","provinces": ["phuket"],"operation": "sale","propertyTypes": ["condo", "villa"],"minPrice": 3000000,"bedrooms": ["2", "3"],"sortBy": "price_asc","maxResults": 100}
📊 Overview vs Detail — what you get
| Field | ⚡ Overview | 🔍 Detail |
|---|---|---|
| Price (THB & USD), price/sqm | ✅ | ✅ |
| Original / pre-discount price | ✅ | ✅ |
| Property type, beds, baths, size | ✅ | ✅ |
| Project name & developer | ✅ | ✅ |
| Address (province · district · subdistrict) | ✅ | ✅ |
| Thumbnail | ✅ | ✅ |
| Nearby landmarks | ✅ | ✅ |
| Estimated monthly rent, rental yield (ROI %), CAM fee | ✅ | ✅ |
| Last-updated | ✅ | ✅ |
| Full description | — | ✅ |
| Full photo gallery | — | ✅ |
| GPS coordinates (lat/lng) | — | ✅ |
| Ownership (e.g. Freehold / Foreign Quota) | — | ✅ |
| Furnishing, floor, view | — | ✅ |
| Completion year & date, construction status | — | ✅ |
| Amenities / features list | — | ✅ |
| Listing reference, date listed | — | ✅ |
Detail is a strict superset of Overview — every Overview field lands on a Detail row too, with the deep listing data added on top.
ℹ️ The card-sourced fields (original price, nearby landmarks, estimated rent) are carried into Detail when you search By region or By search URL. The By listing URL mode has no search page to read them from, so those three may be absent there.
📤 Output
Results are saved to the Apify dataset. Detail rows carry ~40 fields including:
| Field | Type | Description |
|---|---|---|
| id | string | FazWaz listing ID (e.g. U5350611) |
| propertyTitle | string | Listing title |
| operation | string | sale or rent |
| price | integer | Listed price |
| currency | string | Listed currency |
| price_thb / price_usd | integer | Dual-currency price |
| price_per_sqm_thb / price_per_sqm_usd | number | Price per indoor sqm |
| price_original | integer | Original / pre-discount price |
| rent | integer | Estimated monthly rent |
| rental_yield | number | Gross rental yield (ROI %) |
| cam_fee | integer | CAM (maintenance) fee |
| property_type | string | Condo, villa, house… |
| bedrooms / bathrooms | integer | Room counts |
| area_sqm | number | Indoor area |
| project_name / developer | string | Project & developer |
| address / province / district / subdistrict | string | Location |
| lat / lng | number | GPS coordinates (Detail) |
| ownership | string | e.g. Freehold / Foreign Quota (Detail) |
| furnishing / floor / view | string | Unit details (Detail) |
| completion_year / completion_date / construction_status | mixed | Build status (Detail) |
| features | array | Amenities (Detail) |
| photos | array | Photo gallery (Detail) |
| nearby | array | Nearby landmarks |
| description | string | Full description (Detail) |
| url | string | Canonical listing URL |
| metadata | object | The exact search settings that produced the row |
Example (Detail):
{"id": "U5350611","propertyTitle": "2 Bedroom Condo for sale at Supalai City Resort","operation": "sale","price": 6500000,"currency": "THB","price_thb": 6500000,"price_usd": 197000,"price_per_sqm_thb": 108333,"price_original": 7200000,"rent": 28000,"rental_yield": 5.2,"cam_fee": 3000,"property_type": "Condo","bedrooms": 2,"bathrooms": 2,"area_sqm": 60,"project_name": "Supalai City Resort Phuket","developer": "Supalai","address": "Ratsada, Phuket","province": "Phuket","district": "Mueang Phuket","subdistrict": "Ratsada","lat": 7.8916,"lng": 98.3925,"ownership": "Foreign Quota","furnishing": "Fully Furnished","completion_year": 2017,"construction_status": "Completed","photos": ["https://cdn.fazwaz.com/.../0.jpg"],"nearby": ["Central Festival Phuket (2.1 km)"],"url": "https://www.fazwaz.com/property-sales/...-u5350611","fx_usd_thb": 33.0}
💼 Use Cases & Examples
Property Investment Sourcing
Scan a whole province for sale or rent and screen by cash-flow.
Input: By region + price/bedroom filters Output: Listings with original price, estimated rent, rental yield & CAM fee Use: Shortlist cash-flowing properties without opening each listing
Real-Estate Market Analysis
Track asking prices and price reductions across areas over time.
Input: By region + sort by newest or price Output: Price, price-per-sqm, original vs current price Use: Market reports, price-trend tracking
Agent & Relocation Client Lists
Export a client's search to a spreadsheet in one run.
Input: A pasted FazWaz search URL Output: Clean listing rows ready for Excel/Sheets Use: Client shortlists, relocation search
Comparable (Comp) Analysis
Pull like-for-like listings for valuation.
Input: Detail mode + property type + size filters Output: Full records with ownership, completion year, size Use: Valuation benchmarks, developer comps
Lead Generation & Data Feeds
Feed a clean Thai-property dataset into your own tools.
Input: Any mode + Max results
Output: Structured JSON/CSV with a self-documenting metadata object
Use: Dashboards, CRMs, internal models
🔗 Integration Examples
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/fazwaz-property-scraper').call({scrapeMode: 'detail',searchMode: 'byRegion',provinces: ['phuket'],operation: 'sale',maxResults: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Found ${items.length} listings`);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/fazwaz-property-scraper').call(run_input={'scrapeMode': 'overview','searchMode': 'byRegion','provinces': ['bangkok'],'operation': 'rent','maxResults': 100,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(f"Found {len(items)} listings")
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~fazwaz-property-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"scrapeMode": "detail","searchMode": "bySearchUrl","searchUrl": "https://www.fazwaz.com/property-for-sale/thailand/phuket","maxResults": 30}'
Automation Tool Workflows (n8n, Zapier, Make, etc.)
- Trigger: Manual / schedule / webhook
- HTTP Request: Call this actor's API
- Process: Filter and analyze listings
- Action: Save to a database, send alerts, or build reports
📊 Performance & Pricing
View current pricing in the Apify Console.
- Pay-per-result: you're charged per listing returned — Overview rows (fast scan) are priced for high-volume sweeps; Detail rows carry the full record.
- FREE tier: up to 25 listings per run — full feature access, no credit card.
- PAID tier: unlimited listings per run.
💡 Tip: Start with Overview to size a market cheaply, then re-run the interesting listings in Detail — you keep every Overview field and gain the full per-property record on top.
❓ Frequently Asked Questions
Q: What's the difference between Overview and Detail? A: Overview is a fast scan of search-result cards (~30 listings/page) with price, specs, location and investor signals. Detail returns everything Overview does plus the full per-property record (description, photos, GPS, ownership, furnishing, developer, completion). Detail is a strict superset.
Q: Does it cover sale and rent?
A: Both — set operation to sale or rent, or paste a search URL for either.
Q: Which areas are supported? A: Anywhere FazWaz lists in Thailand — Phuket, Bangkok, Pattaya, Chiang Mai, Koh Samui, Hua Hin and more.
Q: What currency are prices in? A: Listings are served in Thai Baht; every row also includes a USD conversion and price-per-sqm from one live FX rate per run.
Q: Can I export to Excel? A: Yes — download as CSV/Excel, or pull JSON via the REST API.
Q: How many listings can I get? A: FREE tier: up to 25 per run. PAID tier: unlimited.
Q: Is there a free trial? A: Yes — every account can pull up to 25 listings per run for free.
🐛 Troubleshooting
No results returned
- Check province spelling (e.g.
chiang-mai, notChiang Mai) - Broaden your filters (price range, bedrooms)
- Confirm there are listings for that operation (sale vs rent)
"requires at least one province" error
byRegionneeds at least one entry inprovinces
Invalid URL error
bySearchUrlexpects a FazWaz/property-for-sale|rent/thailand/...search URLbyListingUrlexpects FazWaz listing URLs ending in-u<id>
Fewer fields than expected on a listing
- Some fields are only available in Detail mode
- Original price / nearby / estimated rent are carried into Detail only for By region and By search URL searches
⚖️ Is it legal to scrape data?
Our actors are ethical and do not extract any private user data. They only extract what has been published publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. You can also read Apify's blog post on the legality of web scraping.
💬 Support
- 🐛 Found a bug? File an issue in the Apify Console Issues tab
- ⭐ Loving the tool? Leave a 5-star review — it helps us build more
- 📧 apify@sian-agency.online
- Check the SIÁN Agency Store for more automation tools
Built by SIÁN Agency | More Tools
🎯 Not sure which tier you need? Start with FREE — no credit card required. Upgrade when you're ready to scale!
FazWaz™ is a trademark of its respective owner. This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by FazWaz. Use it responsibly and in line with applicable terms and laws.