Thailand Yellow Pages Scraper
Pricing
from $3.00 / 1,000 results
Thailand Yellow Pages Scraper
Scrape yellowpages.co.th - Thailand's official business directory. Search by keyword and province, browse official business categories, or enrich specific listings with phone numbers, hours, and coordinates.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Scrape yellowpages.co.th — Thailand's official business directory. Search by keyword and province, browse an official business category ("heading"), or enrich specific listings with phone numbers, business hours, and precise coordinates. No login, no cookies, no paid proxy required.
What this actor does
- Three modes:
search,byCategory,byProfileUrls - Province filter: restrict search results to any of Thailand's 77 official provinces
- Category browse: walk the site's official business-category taxonomy (e.g. "Restaurants", "Hotels", "Auto Repair & Service")
- Contact enrichment: optionally visit each business's own directory page to add phone number, business hours, and a fuller street address
- Bilingual: browse the Thai or English edition of the site
- Empty fields are omitted — every record only contains the data actually found for that business
Output per business
businessId— the directory's internal business identifiername— business namecategory,categoryUrl— the official directory category and its browse URLaddress— address as shown in the directory (district/sub-district/province/postal code, and full street address when enriched or fetched from mode=byProfileUrls)province— one of Thailand's 77 provinces, parsed from the addresspostalCode— 5-digit Thai postal codelatitude,longitude— coordinates parsed from the listing's Google Maps linkdescription— the business's own product/service descriptionphone— phone number (only when the business has a native directory profile page and contact enrichment was requested, or inbyProfileUrlsmode)fax— fax number (same conditions asphone, when the business lists one)businessHours— opening hours text (same conditions asphone)lineId— LINE messenger ID (same conditions asphone, when the business lists one)facebookUrl— Facebook page URL (same conditions asphone, when the business lists one)imageUrl— listing photo, when the business uploaded oneprofileUrl— the business's yellowpages.co.th profile page (when it has one)websiteUrl— the business's own external website (when the directory links out directly instead of hosting a profile page)sourceUrl— canonical URL for this record (profileUrlorwebsiteUrl, whichever applies)customerId,headingCode,addressId— additional directory identifiers (only present when a profile page was fetched)recordType—businessListingorbusinessProfilescrapedAt— UTC timestamp
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | select | search | search / byCategory / byProfileUrls |
query | string | restaurant | Keyword, business name, or phone number to search for (mode=search) |
province | select | – | Restrict to one of Thailand's 77 provinces (mode=search) |
category | string | Restaurants & Food Shops | Exact official category/heading name to browse (mode=byCategory) |
profileUrls | array | – | Full yellowpages.co.th profile URLs, or bare numeric business IDs (mode=byProfileUrls) |
language | select | th | th or en — which site edition to browse (mode=search only; byCategory always matches against the English heading name) |
includeContactDetails | boolean | true | Visit each result's own profile page to add phone/hours (search/byCategory only) |
maxItems | int | 30 | Hard cap on returned records (1–1000) |
Example: search restaurants in Bangkok, with phone numbers
{"mode": "search","query": "restaurant","province": "Bangkok","includeContactDetails": true,"maxItems": 50}
Example: browse an entire category
{"mode": "byCategory","category": "Hotels (Bangkok Metro)","maxItems": 100}
Example: enrich specific listings
{"mode": "byProfileUrls","profileUrls": ["https://www.yellowpages.co.th/profile/หยินหยาง-คลินิกฝังเข็ม-93ITTdSAL","523342900374001"]}
Use cases
- Lead generation — build a list of businesses in a given city/province and category
- Market research — measure business density by category across Thailand's provinces
- Sales prospecting — collect phone numbers and addresses for a target vertical
- Directory aggregation — sync a category into your own local-search product
- Location intelligence — plot business coordinates on a map for coverage analysis
FAQ
Which businesses get a phone and businessHours? Only businesses that have a native directory profile page on yellowpages.co.th. Businesses that link straight out to their own website (shown as websiteUrl instead of profileUrl) don't have that page, so phone/hours aren't available for them from this source.
Why does facebookUrl sometimes fail to load when I open it directly? Facebook blocks all non-browser (curl/bot) traffic to its pages with a generic error, even for real, active pages — this is Facebook's own platform-wide anti-scraping behavior, not a broken link. The URL itself is exactly what the business listed on yellowpages.co.th and will open normally in a real browser.
What does the province filter actually match? It's passed straight through to the directory's own search, which matches province, district, sub-district, or postal-code text — so results are as accurate as the directory's own search engine.
Can I search in Thai script? Yes — query and category both accept Thai text directly (e.g. category: "คลินิกฝังเข็ม").
Why do some records have address but not province or postalCode? Those two fields are parsed from the address text; if a listing's address doesn't include a recognizable province name or a trailing 5-digit postal code, only the raw address is kept.
Does language: "en" translate business names? No — business names and descriptions are stored exactly as the business entered them (usually Thai). For mode=search, language changes whether address text renders in Thai or English. Mode=byCategory always fetches the English edition internally (regardless of language) so that the category name you provide can be reliably matched against each result's own category — this is why category should always be typed in English (e.g. Restaurants & Food Shops, not a Thai translation).
Is this actor reliable? Yes — yellowpages.co.th serves plain server-rendered HTML with no JavaScript challenge or CAPTCHA, so the actor uses plain HTTP requests with automatic retries on rate limits/server errors. No proxy is required.