Thailand Yellow Pages Scraper avatar

Thailand Yellow Pages Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Thailand Yellow Pages Scraper

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

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

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 identifier
  • name — business name
  • category, categoryUrl — the official directory category and its browse URL
  • address — 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 address
  • postalCode — 5-digit Thai postal code
  • latitude, longitude — coordinates parsed from the listing's Google Maps link
  • description — the business's own product/service description
  • phone — phone number (only when the business has a native directory profile page and contact enrichment was requested, or in byProfileUrls mode)
  • fax — fax number (same conditions as phone, when the business lists one)
  • businessHours — opening hours text (same conditions as phone)
  • lineId — LINE messenger ID (same conditions as phone, when the business lists one)
  • facebookUrl — Facebook page URL (same conditions as phone, when the business lists one)
  • imageUrl — listing photo, when the business uploaded one
  • profileUrl — 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 (profileUrl or websiteUrl, whichever applies)
  • customerId, headingCode, addressId — additional directory identifiers (only present when a profile page was fetched)
  • recordTypebusinessListing or businessProfile
  • scrapedAt — UTC timestamp

Input

FieldTypeDefaultDescription
modeselectsearchsearch / byCategory / byProfileUrls
querystringrestaurantKeyword, business name, or phone number to search for (mode=search)
provinceselectRestrict to one of Thailand's 77 provinces (mode=search)
categorystringRestaurants & Food ShopsExact official category/heading name to browse (mode=byCategory)
profileUrlsarrayFull yellowpages.co.th profile URLs, or bare numeric business IDs (mode=byProfileUrls)
languageselectthth or en — which site edition to browse (mode=search only; byCategory always matches against the English heading name)
includeContactDetailsbooleantrueVisit each result's own profile page to add phone/hours (search/byCategory only)
maxItemsint30Hard 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.