Watsons Product Scraper | PH HK TW TH Data avatar

Watsons Product Scraper | PH HK TW TH Data

Pricing

from $2.20 / 1,000 results

Go to Apify Store
Watsons Product Scraper | PH HK TW TH Data

Watsons Product Scraper | PH HK TW TH Data

Scrape Watsons health and beauty products across the Philippines, Hong Kong, Taiwan, and Thailand. Extract guest prices, brands, EAN, ratings, and stock from search, category PLP, PDP, reviews, and brand listings. Export to Excel, CSV, or JSON. No login. Unofficial — not affiliated with A.S. Watson.

Pricing

from $2.20 / 1,000 results

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

1

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Share

Watsons Product Scraper — PH · HK · TW · TH

Scrape Watsons health and beauty products from the Philippines, Hong Kong, Taiwan, and Thailand — then download prices, brands, ratings, and stock as Excel, CSV, or JSON.

Use this Actor as a practical Watsons data API for multi-market product discovery, price monitoring, category research, brand listings, and guest review snapshots. Pick a market and a mode, then get Dataset rows with BP_* product codes, titles, guest list prices, EAN, ratings, and product URLs.

  • Scrape keyword search, category PLP (/c/{code}), product detail (PDP), guest reviews, brand listings, and category / brand facet dumps
  • Cover four Watsons storefronts: Philippines (watsons.com.ph), Hong Kong (watsons.com.hk with /en/, /zh-hk/, /zh-cn/), Taiwan (watsons.com.tw), Thailand (watsons.co.th with Thai and /en/)
  • Extract productCode, title, URL, brand, EAN, price / old price, currency, stock status, rating, review count, pharmacy / adult-only flags when present
  • Export to Excel / CSV / JSON, or connect Make, n8n, Zapier, Python, or the Apify API
  • Pay per event — Actor start + each Dataset result; platform usage is included (you do not pay separate Apify compute on top)

Unofficial tool. This Actor is not affiliated with, endorsed by, or sponsored by A.S. Watson Group or Watsons. It collects guest (public) listing data and does not log in, checkout, or return member / loyalty prices. Malaysia, Singapore, and Indonesia are out of scope until separately verified. Do not pass /lc/ CMS shelf URLs — those are not a full product listing.

Compared with Watsons Actors that cover MY / SG / TH URL dumps or SG / MY / HK only, this Actor focuses on PH + HK (three locales) + TW + TH, with market-correct category codes, Thailand’s 64-item page size, brand facet listings, reviews, and taxonomy dumps in one input form.


Need a dedicated scraper for one website?

This Actor is the general tool for protected public pages. If you already have one specific site and a field list, a dedicated scraper is faster and more stable: listing + detail, your export format, delivered to your Apify account or as a standalone runnable client.

I confirm the tier before you pay. The clock starts after that confirmation.

Start here: Submit a custom scraper request

Starter $50Dedicated $100Hard target $200–999
Site1 simple anti-bot public site1 medium anti-bot public siteCloudflare / aggressive anti-bot / custom parser
ScopeFull listing + detail fieldsListing + detail + pagination, your field listAgreed fields, repeatable runs
DeliveryCSV/JSON · Apify Actor or standalone runnable client (script/CLI)Same, plus a sample run and short instructionsFeasibility first, then build
Time24 hours after we confirm the URL is in scope48 hours after confirmationQuoted after feasibility
Fixes30 days for small public-layout changes30 daysScoped in the quote

Hard-target sites are not a 100% uptime promise. You get a dedicated parser that can be re-run on the agreed fields. If the URL is not feasible, you get a refund or pay an assessment fee only — you will know before the build starts.

Not in Starter/Dedicated: login-walled data, native APK / Windows installer / full web apps, or two-year maintenance. Those are a separate quote.


What is Watsons Product Scraper?

Watsons Product Scraper lets you extract structured product data from Watsons PH, HK, TW, and TH without operating your own anti-bot browser fleet. Give it a market and a mode (for example search, category, or product), then start a run.

Under the hood, the Actor:

  1. Validates your input (mode, market, keyword / category code / BP_* product code, max results)
  2. Enforces free-tier caps when you are on a free Apify plan
  3. Collects public Watsons listing surfaces through a managed scrape backend with residential egress
  4. Parses search, category PLP, PDP, reviews, and brand facets into normalized Dataset records
  5. Writes INPUT_ECHO, RUN_SUMMARY (and ERROR_SUMMARY on failure) to the key-value store

You run it like any other Apify Actor — schedule it, call it from the API, or plug it into automations.

Watsons is not one .com catalog. Each market has its own host, siteId, currency, default page size, and /c/ category codes. Reusing a Philippines category code on Taiwan or Thailand returns the wrong (or empty) shelf.


What Watsons data can I extract?

DataSearchCategory /c/Product (PDP)ReviewsBrandTaxonomies
Product code BP_* / URL
Title / name
Brand / brand URL✅*✅*✅*✅*
Guest price / old price / currency✅*✅*✅*✅*
EAN / default variant✅*✅*✅*✅*
Stock / purchasable✅*✅*✅*✅*
Rating / review count✅*✅*✅*✅*
Pharmacy / adult-only / classifications✅*✅*✅*✅*
Review headline / rating / comment—†
Digit /c/ category codes

*When present on the guest OCC payload. †Turn on enrichReviews on product / search / category to attach a few review pages.

Identity key: market + productCode (BP_*). Currency follows the storefront: PHP, HKD, TWD, THB.


Why scrape Watsons products?

Watsons is one of Asia’s largest health and beauty retailers. Teams scrape Watsons to:

  • Monitor guest list prices and markdowns for vitamins, skincare, hair, oral care, and pet
  • Compare brand presence (for example ANUA) across PH / HK / TW / TH
  • Map category trees with live digit /c/ codes (mode=taxonomies) instead of guessing slugs
  • Snapshot Hong Kong Simplified Chinese (/zh-cn/) as its own catalog, not a translation of /zh-hk/
  • Pull guest reviews for a BP_* product without logging in
  • Seed CRM / research workflows with product URLs and EAN

More Actors like this

Need marketplace or health-and-beauty data outside Watsons PH / HK / TW / TH, or a different vertical? Use a dedicated Actor below for structured fields. Use this Actor for Watsons products on those four storefronts.

Similar e-commerce scrapers

Prefer another specialized scraper?

If your target has a specialized Actor below, use that first — usually cheaper and more structured than a generic scrape.

Jobs & Freelance

Real Estate

E-commerce

Social & Content

Ads Intelligence

General Tools

→ See the full catalog in Related Actors below, or browse apify.com/lentic_clockss.


How to scrape Watsons products (no code required)

  1. Create a free Apify account
  2. Open Watsons Product Scraper
  3. Choose a mode: search, category, product, reviews, brand, or taxonomies
  4. Choose a market: ph, hk, tw, or th
  5. Enter a keyword, categoryCode, productCode (BP_…), brandCode, or startUrls
  6. (Optional) Set locale (HK: en / zh-hk / zh-cn; TH: th / en), sort, maxResults, enrichReviews
  7. Click Start and download the Dataset as JSON, CSV, Excel, or JSONL

Start with maxResults: 5–10 to verify the query, then scale up.

1. Watch sunscreen prices in the Philippines

In plain English: run a keyword search on a schedule → see which SKUs are still listed and at what guest price.

You give: market ph, keyword sunscreen, maxResults 20.

You get back:

TitleBrandPriceCurrencyProduct code
Example Sunscreen SPF50Example Brand599.00PHPBP_10098771

2. Pull a Taiwan oral-care category

In plain English: pick Taiwan and a digit /c/ code → get a table of toothpaste SKUs ready for Excel.

You give: mode=category, market=tw, categoryCode=10450703.

Do not copy a PH or TH code onto TW.

3. Read Hong Kong Simplified Chinese as its own catalog

In plain English: set market=hk and locale=zh-cn → titles come from the /zh-cn/ storefront (lang=zh_CN), not a machine translation of /zh-hk/.

4. List a brand without guessing numeric IDs

In plain English: set mode=brand and brandCode=ANUA (the Solr facet token from /all-brands/b/…). Do not pass numeric masterBrand.code — that query returns unrelated SKUs.

5. Feed AI agents and automations

In plain English: start the Actor from Make, n8n, Zapier, LangChain, or the Apify API → Dataset rows are structured JSON (title, price, brand, url, productCode).


What Watsons data do I get back?

Every product row typically includes:

  • productCode — Watsons code, for example BP_10098771
  • title / name — guest display name for the selected locale
  • url — absolute product URL on that market’s host
  • brand, brandCode, brandUrl
  • price, priceFormatted, oldPrice, currency (PHP / HKD / TWD / THB)
  • ean, defaultVariantCode
  • stockStatus, purchasable
  • averageRating, reviewCount
  • pharmacy, elabIsAdultOnly, classifications when the payload has them
  • paginationPageSize32 on PH / HK / TW, 64 on TH
  • uid{market}:{productCode}

Review rows (mode=reviews or enrichReviews) add reviewId, headline, rating, and comment text.

Taxonomy rows dump digit /c/ codes and brand facet tokens so you can drive later category / brand runs.


How much does it cost to scrape Watsons?

This Actor uses pay-per-event pricing. You are charged for:

EventPrice
Actor Start (apify-actor-start)$0.005 per start
Result (apify-default-dataset-item)$3.00 / 1,000 results ($0.003 each on FREE/BRONZE)

Platform usage costs are included — you do not pay separate Apify compute/proxy usage for this Actor on top of the event prices above (User pays platform usage costs = No).

Store tier pricing (results)

Tier$/1,000per result
FREE*$3.00$0.003
BRONZE$3.00$0.003
SILVER$2.60$0.0026
GOLD$2.20$0.0022
PLATINUM$2.00$0.002
DIAMOND$1.60$0.0016

*Store tier discounts apply to paying Apify customers on higher tiers.

Example cost estimates

Results collectedApprox. event cost*
100~$0.31
1,000~$3.01
10,000~$30.01

*Assumes one Actor start at default memory billing for start events, plus $0.003 per Dataset item on FREE/BRONZE. Exact start billing can scale with allocated memory (one start event per GB, minimum one).

Free Apify trial credit can cover a small test run — try maxResults: 5 first.

Free Apify plan limits (Actor-enforced)

CapFree Apify planPaying
Runs of this Actor10 totalUnlimited
Results per run200Schema max

Limits are set by the Actor developer, not Apify. Quota hits return SUCCEEDED with RUN_SUMMARY.status=FREE_TIER_LIMIT. Empty {} searches vitamin on the PH store so a first Console test succeeds.


Input examples

Keyword search (Philippines)

{
"mode": "search",
"market": "ph",
"keyword": "sunscreen",
"maxResults": 20
}

Category PLP (Thailand hair care)

{
"mode": "category",
"market": "th",
"locale": "th",
"categoryCode": "020106",
"maxResults": 20
}
{
"mode": "search",
"market": "hk",
"locale": "zh-cn",
"keyword": "serum",
"maxResults": 15
}

Product detail (Taiwan)

{
"mode": "product",
"market": "tw",
"productCode": "BP_112900",
"maxResults": 1
}

Brand listing (Philippines)

{
"mode": "brand",
"market": "ph",
"brandCode": "ANUA",
"maxResults": 20
}

Start URLs

{
"startUrls": [
{ "url": "https://www.watsons.com.ph/search?text=moisturizer" },
{ "url": "https://www.watsons.com.hk/en/c/010102" }
],
"maxResults": 20
}

Do not pass /lc/ URLs. Do not reuse a PH category code on TW or TH.


Connect to your tools

Use this Actor from your existing stack:

PlatformHow to connect
Make.comSearch “Apify” → “Run Actor” → Actor ID lentic_clockss/watsons-scraper
n8nAdd Apify node → “Run Actor” → same Actor ID
ZapierApify integration → “Run Actor”
LangChainApifyDatasetLoader / Actor run tool with the same Actor ID
Python / Node.jsApify SDK or direct HTTPS call

API call example

curl "https://api.apify.com/v2/acts/lentic_clockss~watsons-scraper/runs?token=YOUR_APIFY_TOKEN" \
-X POST \
-H "Content-Type: application/json" \
-d '{"mode":"search","market":"ph","keyword":"sunscreen","maxResults":10}'

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("lentic_clockss/watsons-scraper").call(
run_input={
"mode": "search",
"market": "ph",
"keyword": "sunscreen",
"maxResults": 20,
}
)
items = client.dataset(run["defaultDatasetId"]).list_items().items

Results come back via the Dataset API:

GET https://api.apify.com/v2/datasets/{datasetId}/items?format=json


FAQ

This Actor collects publicly reachable guest listing data. It does not log in, bypass paywalls, or scrape private member prices. You are responsible for how you use the data (robots.txt, terms, local law). This is not an official Watsons or A.S. Watson product.

Which Watsons countries does this Actor cover?

Philippines, Hong Kong, Taiwan, and Thailand. Hong Kong supports en, zh-hk, and zh-cn. Thailand supports Thai and /en/. Malaysia, Singapore, and Indonesia are not included.

How is this different from other Watsons scrapers on Apify?

Other Store Actors often target MY / SG / TH URL dumps (80+ raw OCC fields) or SG / MY / HK only. This Actor is built for PH + HK three locales + TW + TH, rejects /lc/ CMS shelves, uses TH pageSize 64, and adds brand facet + taxonomy dump + paginated reviews.

Why did my category run return nothing?

Category codes are per market. PH 031130 is not TW 10410101. Use mode=taxonomies to dump live digit /c/ codes, then run mode=category. Never use /lc/ slugs.

Why did brand mode return unrelated products?

Pass the facet token from the brand URL (for example ANUA), not the numeric masterBrand.code. Numeric codes are a different Solr field and mix unrelated SKUs.

Do I need my own proxies?

No for normal runs. Residential egress is provided by the scrape worker. Optional proxyCountry is an ISO2 hint (ph / hk / tw / th).

Can I get member / Watsons Card prices?

No. Guest list price and strikethrough oldPrice only. Login and checkout are out of scope.

What is /lc/ and why is it rejected?

/lc/ is a CMS shelf, not a full PLP. The Actor rejects those URLs so you do not pay for an incomplete listing.

How many products per page does Watsons return?

PH / HK / TW: 32. Thailand: 64. The Actor paginates with OCC currentPage (0-based), not ?page=.

Is scraping Watsons free?

You can try it with Apify trial credit. After that, pay-per-event applies (start + each Dataset row). Free Apify-plan users of this Actor are capped at 10 runs / 200 results.


Input reference

FieldNotes
modesearch (default) · category · product · reviews · taxonomies · brand
marketph hk tw th
localeOptional. HK: en / zh-hk / zh-cn. TH: th / en. PH: en. TW: zh-tw.
keywordSearch text. Default vitamin so empty {} succeeds
categoryCodeRequired for category. Examples: PH 031130 / 060809, HK 010102 / 310000 / 100404, TW 10410101 / 10450703, TH 010201 / 020106
productCodeRequired for product / reviews. Format BP_{digits}
brandCodeRequired for brand. Solr facet token (e.g. ANUA), not numeric masterBrand.code
sortSearch default mostRelevant. Category default bestSeller
startUrlsOptional /search?text=, /c/{code}, /p/BP_…, /all-brands/b/{code}
maxResultsDefault 15, max 500
maxPagesMax OCC pages, default 3
enrichReviewsAttach paginated reviews for the first few product codes

Full output schema is in the Dataset tab.


Coverage

MarketHostSearchCategory /c/PDPExtra locale
PHwatsons.com.phopened031130, 060809opened
HKwatsons.com.hkopened010102, 310000, 100404openedzh-hk, zh-cn opened
TWwatsons.com.twopened10410101, 10450703opened
THwatsons.co.thopened010201, 020106 (pageSize 64)opened/en/ opened
MY / SG / ID未验证未验证未验证

Store-finder is 未验证. Brand listing is opened on PH (ANUA).


All public Actors from lentic_clockss. Click a name to open the Store detail page.

E-commerce

Food Delivery

Jobs & Freelance

Real Estate

Travel & Stays

Social & Content

Ads Intelligence

Local & Maps

General Tools

→ Browse the full profile: apify.com/lentic_clockss


Changelog

  • 0.1 — PH / HK / TW / TH search, category PLP, PDP, reviews, brand facet, taxonomies. Guest fields only. Pay per event.