HKTVmall Scraper – HK E-commerce Products, Prices & Stock avatar

HKTVmall Scraper – HK E-commerce Products, Prices & Stock

Pricing

from $2.00 / 1,000 search results

Go to Apify Store
HKTVmall Scraper – HK E-commerce Products, Prices & Stock

HKTVmall Scraper – HK E-commerce Products, Prices & Stock

Scrape HKTVmall (Hong Kong's largest online store) product listings without an API or login: SKU, name, brand, price, rating, stock and category. Bulk-paste keywords; export structured JSON/CSV/Excel. Ideal for e-commerce price monitoring and product research.

Pricing

from $2.00 / 1,000 search results

Rating

0.0

(0)

Developer

Chad

Chad

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

HKTVmall Scraper | HK Online Shopping Products, Prices, Stock & Ratings (No API, No Login)

One Actor to scrape HKTVmall (Hong Kong's largest online shopping platform) keyword-search product listings: price, original price / discount, stock status, rating, review count and category. It reads the Algolia product search index behind HKTVmall's storefront search — no login, no API token — and handles hundreds of bulk-pasted keywords at once. Everything goes through public JSON endpoints with no browser: fast and low-cost.

Who it's for: Hong Kong e-commerce price monitoring / comparison, tracking price and stock changes for specific products, market research reports, cross-border e-commerce data analysis, academic datasets, and engineers building side projects.


What you get

Every product returns the fields below (missing values are always null — no field is dropped):

FieldDescriptionExample
product_codeHKTVmall product code (SKU, incl. variant)H6771001_S_K01-C014180FC
base_productBase product code (without variant suffix)H6771001K01-C014180FC
nameProduct name (Chinese, falls back to English)[原箱] Espresso Barista 拿坡利鋁製咖啡粉囊 - 100粒裝
brandBrandKIMBO
selling_priceCurrent price (HK$)450
selling_price_rangePrice range (when variants differ)400-600
saved_priceDiscount amount (HK$, first discount record)49
average_ratingAverage rating (0-5)5
number_of_reviewsReview count1
in_stockWhether it is in stocktrue
stockStock status codeinStock
loyalty_pointLoyalty points earned on purchase0
number_of_variantsNumber of variants (color / spec)1
main_categoryMain category超級市場
sub_categorySub-category (first level)飲品 即沖飲品
category_pathFull category path (levels joined by /)超級市場/飲品 即沖飲品/即飲咖啡 奶茶/咖啡
imageMain product image URLhttps://cdn-media.hktvmall.com/.../xxx_300.jpg
product_urlProduct URL (see "Notes" disclaimer below)https://www.hktvmall.com/hktv/zh/main/.../p/H6771001_...
keywordThe search keyword that matched this rowcoffee
source_modeSource mode, always search in v1.0search
source_queryQuery used when scraping (same as keyword)coffee
scraped_atScrape timestamp (ISO 8601)2026-07-04T05:23:28.617Z

Modes (v1.0 has search only)

ModeWhat it doesBilling eventPrice
🔎 searchKeyword search → product listings (price, stock, rating, category)search-listing (per row)$0.002

Each Run also charges a one-time apify-actor-start fee of $0.005. All charges are billed only after data is successfully written to the dataset, and the Run log prints total_items / charged / skipped for reconciliation.

detail (full single-product data) and category (category browsing) are planned for v1.1; v1.0 ships only the validated search-listing mode.


Input fields

FieldTypeRequiredDefaultDescription
modeenumoptionalsearchv1.0 supports search only.
keywordsstring[]one required (or bulkInput)Search keywords; one concept per keyword works best. Up to 50 per run.
bulkInputstringoptionalOne per line (press Enter, no quotes or commas). Merged into keywords at runtime. Fastest is to paste a column from Google Sheets / Excel.
maxItemsintegeroptional50Max results per keyword (1-500).

Examples

🔎 Basic keyword search

{
"mode": "search",
"keywords": ["coffee"],
"maxItems": 20
}

📋 Bulk keywords (one per line)

{
"mode": "search",
"bulkInput": "coffee\nshampoo\ndiapers",
"maxItems": 30
}

🇭🇰 Chinese keywords (Cantonese / Traditional Chinese search)

{
"mode": "search",
"keywords": ["洗髮"],
"maxItems": 50
}

Notes

  • Public data only. No login and no HKTVmall account required; it never accesses anything behind authentication.
  • No login / no API token. Fill in the input and run — no keys to configure. The Algolia key used for search is the public search-only key HKTVmall's front-end hands to every browser; it is re-extracted from the search page on every Run (never hard-coded), so key rotation does not break the scraper.
  • product_url disclaimer: the vast majority of matches include HKTVmall's official product-page URL (100% in tested samples), but if a few results lack it the scraper falls back to a "search page keyed by product code" link rather than the product detail page. This affects only link precision, not the correctness of other fields.
  • Polite to the site. Per-domain concurrency is naturally limited (keywords are crawled sequentially), failures retry with exponential backoff up to 3 times, and it auto-stops after 5 pages with no new data — no idle burn.
  • A product matching multiple keywords is emitted once per keyword with different keyword / source_query (billed per query).
  • Per-review content (reviews) is planned for a later version; this version only exposes the aggregate average_rating / number_of_reviews in search mode.

FAQ

Q: Why are some fields null? HKTVmall's own product data isn't complete for every item (some have no discount record or no reviews). Whenever the source value is missing, the scraper returns null honestly rather than fabricating data.

Q: How is billing calculated? Each Run charges apify-actor-start once ($0.005); each product listing charges search-listing ($0.002). Both are billed only after data is written to the dataset, and the Run log prints the actual charged count.

Q: What if I get no data? Check for typos and try a more common keyword (both Chinese and English are supported). The scraper auto-stops after 5 pages with no new data and logs the reason — no idle burn.

Q: What is category_path? It's HKTVmall's category hierarchy (main → sub, up to 4 levels), joined by /, skipping any missing levels.

Q: Do you support the product detail page (full single-product data)? v1.0 ships search-listing only. If demand is proven, a detail mode is planned for v1.1.


Deploy

apify login # first time: paste your Apify token (never written to the repo)
apify push # build and upload to Apify Store

After publishing, set the PPE event prices in Apify Console → Monetization: apify-actor-start $0.005, search-listing $0.002.


Disclaimer

This scraper only collects publicly visible HKTVmall product search data, for research and personal use, not for any unauthorized commercial resale. Please ensure your use complies with HKTVmall's Terms of Service and your local laws. This Actor makes no guarantee about the accuracy, timeliness or completeness of the data — always refer to the live HKTVmall website for current prices and stock.


HKTVmall scraper, Hong Kong e-commerce, HK online shopping, product price monitor, stock tracker, HKTVmall API, Hong Kong retail data, price comparison Hong Kong