Tracking Traditional Medicine and Herbal Product Markets in SEA
Traditional medicine occupies a unique and significant place in Southeast Asian healthcare. From Indonesian jamu and Thai traditional medicine to Vietnamese thuoc nam, Filipino hilot remedies, and the widespread influence of Traditional Chinese Medicine (TCM), these products represent a multi-billion dollar market deeply embedded in regional culture and daily healthcare practices.
For companies entering or expanding in the traditional medicine space, understanding market dynamics requires collecting data from a diverse and fragmented landscape of producers, retailers, e-commerce platforms, and regulatory databases. Mobile proxies are essential for accessing this data authentically across the region’s varied digital ecosystems.
This guide covers how to monitor the traditional medicine and herbal product markets across Southeast Asia using DataResearchTools mobile proxies.
The Traditional Medicine Landscape in Southeast Asia
Indonesia: Jamu and Herbal Products
Indonesia has the largest traditional medicine market in Southeast Asia. Jamu, the traditional Indonesian herbal medicine system, encompasses thousands of products ranging from home-brewed remedies to standardized, BPOM-registered commercial products.
Market characteristics:
- Over $5 billion market including both traditional and modern herbal products
- BPOM regulates three categories: Jamu (traditional), Obat Herbal Terstandar (standardized herbal medicine), and Fitofarmaka (clinically tested herbal medicine)
- Major players: Sido Muncul, Jamu Jago, Deltomed, Mustika Ratu
- Growing e-commerce presence on Tokopedia, Shopee, and Bukalapak
- Strong cultural heritage driving consumer adoption
Thailand: Traditional Thai Medicine
Thailand has a sophisticated traditional medicine system officially recognized alongside conventional medicine.
Market characteristics:
- Thai FDA regulates traditional Thai medicine products
- Government promotes traditional medicine through dedicated hospitals and research institutions
- Products include Ya Samunphrai (herbal medicines), herbal compresses, and medicinal oils
- Growing international interest in Thai herbal products
- Active e-commerce and export market
Vietnam: Thuoc Nam and Traditional Medicine
Vietnam has a rich tradition of herbal medicine with strong government support for integration into the healthcare system.
Market characteristics:
- Over 40% of healthcare treatments in Vietnam involve traditional medicine
- Ministry of Health oversees traditional medicine regulation
- Widespread use of thuoc nam (Southern medicine) and thuoc bac (Northern/Chinese medicine)
- Growing modern product formulations
- Expanding online retail presence
Malaysia and Singapore: TCM and Malay Traditional Medicine
Both Malaysia and Singapore have significant TCM markets alongside Malay traditional medicine (ubat tradisional).
Market characteristics:
- TCM is the dominant traditional medicine segment
- Strong regulatory frameworks (TGA in Singapore, NPRA in Malaysia)
- Halal certification important for Malay traditional products
- Eu Yan Sang and other established TCM chains
- Growing online sales through pharmacy platforms
Philippines: Traditional and Herbal Products
The Philippines has a growing market for locally produced and imported herbal products.
Market characteristics:
- FDA Philippines regulates traditional herbal products
- Growing interest in local medicinal plants
- Products sold through pharmacies and online platforms
- Mercury Drug and other chains carry herbal products
- Increasing consumer awareness and adoption
Data Points to Monitor
Product Listings and Pricing
- Product names, ingredients, and formulations
- Retail pricing across e-commerce platforms and pharmacies
- Pack sizes and dosage forms
- Promotional pricing and bundle offers
- Regional price variations within countries
Regulatory Status
- BPOM registration numbers and categories (Indonesia)
- Thai FDA traditional medicine registrations
- NPRA listings (Malaysia)
- HSA registration status (Singapore)
- FDA Philippines herbal product approvals
Market Trends
- New product launches and brand entries
- Sales volume indicators from e-commerce platforms
- Consumer review sentiment and trending ingredients
- Import/export data for herbal raw materials
- Scientific research on traditional ingredients
Competitive Intelligence
- Brand market share by product category
- Distributor and retailer relationships
- Marketing strategies and claims
- Product portfolio evolution
- Geographic expansion patterns
Building a Traditional Medicine Market Monitor
Platform Collection Strategy
import requests
from bs4 import BeautifulSoup
from datetime import datetime
import time
class TraditionalMedicineMonitor:
def __init__(self, proxy_user, proxy_pass):
self.proxies = {
"ID": f"http://{proxy_user}:{proxy_pass}@id-mobile.dataresearchtools.com:8080",
"TH": f"http://{proxy_user}:{proxy_pass}@th-mobile.dataresearchtools.com:8080",
"VN": f"http://{proxy_user}:{proxy_pass}@vn-mobile.dataresearchtools.com:8080",
"MY": f"http://{proxy_user}:{proxy_pass}@my-mobile.dataresearchtools.com:8080",
"SG": f"http://{proxy_user}:{proxy_pass}@sg-mobile.dataresearchtools.com:8080",
"PH": f"http://{proxy_user}:{proxy_pass}@ph-mobile.dataresearchtools.com:8080"
}
self.product_categories = {
"ID": [
"jamu", "herbal", "obat tradisional", "minyak angin",
"tolak angin", "kuku bima", "habbatussauda",
"madu", "temulawak", "kunyit"
],
"TH": [
"สมุนไพร", "ยาแผนไทย", "สมุนไพรไทย",
"herbal thai", "traditional thai medicine"
],
"VN": [
"thuoc nam", "dong y", "thuoc dong y",
"thao duoc", "herbal vietnamese"
],
"MY": [
"TCM", "traditional chinese medicine",
"ubat tradisional", "herbal supplement malaysia"
],
"SG": [
"TCM singapore", "chinese medicine",
"herbal supplement", "traditional medicine"
],
"PH": [
"herbal medicine philippines", "traditional medicine",
"lagundi", "sambong", "tsaang gubat"
]
}
def get_proxy(self, country):
proxy_url = self.proxies[country]
return {"http": proxy_url, "https": proxy_url}E-Commerce Platform Monitoring
def monitor_ecommerce_traditional_medicine(self, country):
"""Monitor traditional medicine products on e-commerce platforms"""
proxy = self.get_proxy(country)
all_products = []
categories = self.product_categories.get(country, [])
for category in categories:
# Search on Shopee
shopee_products = self.search_shopee(category, country, proxy)
all_products.extend(shopee_products)
time.sleep(3)
# Search on country-specific platforms
if country == "ID":
tokopedia_products = self.search_tokopedia(
category, proxy
)
all_products.extend(tokopedia_products)
time.sleep(3)
return all_products
def search_shopee(self, query, country, proxy):
"""Search Shopee for traditional medicine products"""
tld_map = {
"ID": "co.id", "TH": "co.th", "VN": "vn",
"MY": "com.my", "SG": "sg", "PH": "ph"
}
tld = tld_map.get(country, "com")
headers = {
"User-Agent": "Mozilla/5.0 (Linux; Android 14; SM-S918B) "
"AppleWebKit/537.36 Chrome/120.0.0.0 "
"Mobile Safari/537.36",
"Referer": f"https://shopee.{tld}/"
}
products = []
try:
response = requests.get(
f"https://shopee.{tld}/api/v4/search/search_items",
params={
"keyword": query,
"limit": 60,
"order": "relevancy"
},
proxies={"http": proxy["http"], "https": proxy["https"]}
if isinstance(proxy, dict) else
{"http": proxy, "https": proxy},
headers=headers,
timeout=30
)
if response.status_code == 200:
data = response.json()
items = data.get("items", [])
for item in items:
item_basic = item.get("item_basic", item)
products.append({
"platform": "shopee",
"country": country,
"category": query,
"name": item_basic.get("name", ""),
"price": item_basic.get("price", 0) / 100000,
"sold": item_basic.get("sold", 0),
"rating": item_basic.get("item_rating", {}).get(
"rating_star", 0
),
"shop_name": item_basic.get("shop_name", ""),
"collected_at": datetime.utcnow().isoformat()
})
except Exception as e:
print(f"Shopee search error for {query}: {e}")
return productsRegulatory Database Monitoring
def monitor_bpom_traditional(self, product_categories):
"""Monitor BPOM for traditional medicine registrations"""
proxy = self.get_proxy("ID")
registrations = []
categories = {
"jamu": "Jamu / Obat Tradisional",
"oht": "Obat Herbal Terstandar",
"fitofarmaka": "Fitofarmaka"
}
for cat_key, cat_name in categories.items():
try:
response = requests.get(
"https://cekbpom.pom.go.id/search",
params={
"query": "",
"kategori": cat_key
},
proxies={"http": proxy, "https": proxy}
if isinstance(proxy, str) else proxy,
headers={
"User-Agent": "Mozilla/5.0 (Linux; Android 14)",
"Accept-Language": "id-ID,id;q=0.9"
},
timeout=30
)
if response.status_code == 200:
parsed = self.parse_bpom_traditional(
response.text, cat_name
)
registrations.extend(parsed)
time.sleep(3)
except Exception as e:
print(f"BPOM monitoring error: {e}")
return registrationsIngredient Trend Analysis
Monitor trending traditional medicine ingredients:
class IngredientTrendAnalyzer:
def __init__(self, product_database):
self.db = product_database
def analyze_ingredient_trends(self, country, months=12):
"""Analyze trending ingredients in traditional medicine"""
popular_ingredients = {
"ID": [
"temulawak", "kunyit", "jahe", "kencur",
"sambiloto", "pegagan", "daun sirsak",
"habbatussauda", "madu", "propolis",
"daun kelor", "lidah buaya"
],
"TH": [
"turmeric", "ginger", "lemongrass",
"pandan", "butterfly pea", "mangosteen",
"moringa", "centella asiatica"
],
"VN": [
"nghe", "gung", "mat ong", "linh chi",
"nhan sam", "tam that", "atiso"
],
"MY": [
"tongkat ali", "kacip fatimah",
"misai kucing", "pegaga",
"ginseng", "bird nest"
]
}
trends = {}
ingredients = popular_ingredients.get(country, [])
for ingredient in ingredients:
monthly_data = self.db.get_monthly_product_counts(
ingredient, country, months
)
if monthly_data and len(monthly_data) >= 3:
recent_avg = sum(monthly_data[-3:]) / 3
earlier_avg = sum(monthly_data[:3]) / 3
growth = ((recent_avg - earlier_avg) / earlier_avg * 100
if earlier_avg > 0 else 0)
trends[ingredient] = {
"monthly_data": monthly_data,
"recent_avg_products": recent_avg,
"growth_pct": growth,
"trend": "growing" if growth > 20
else "declining" if growth < -20
else "stable"
}
return dict(sorted(
trends.items(),
key=lambda x: x[1]["growth_pct"],
reverse=True
))Brand Market Analysis
def analyze_brand_market_position(self, country, category):
"""Analyze brand positions in the traditional medicine market"""
products = self.monitor_ecommerce_traditional_medicine(country)
# Filter to relevant category
category_products = [
p for p in products
if category.lower() in p.get("category", "").lower()
or category.lower() in p.get("name", "").lower()
]
brand_analysis = {}
for product in category_products:
brand = self.extract_brand(product["name"])
if brand:
if brand not in brand_analysis:
brand_analysis[brand] = {
"product_count": 0,
"total_sold": 0,
"avg_price": 0,
"avg_rating": 0,
"prices": [],
"ratings": []
}
brand_analysis[brand]["product_count"] += 1
brand_analysis[brand]["total_sold"] += product.get("sold", 0)
if product.get("price"):
brand_analysis[brand]["prices"].append(product["price"])
if product.get("rating"):
brand_analysis[brand]["ratings"].append(product["rating"])
# Calculate averages
for brand, data in brand_analysis.items():
if data["prices"]:
data["avg_price"] = sum(data["prices"]) / len(data["prices"])
if data["ratings"]:
data["avg_rating"] = sum(data["ratings"]) / len(data["ratings"])
del data["prices"]
del data["ratings"]
return dict(sorted(
brand_analysis.items(),
key=lambda x: x[1]["total_sold"],
reverse=True
))Cross-Market Analysis
Ingredient Price Comparison
Compare pricing for key ingredients across SEA markets:
def compare_ingredient_pricing(self, ingredient, countries=None):
"""Compare traditional medicine ingredient pricing across markets"""
if countries is None:
countries = ["ID", "TH", "VN", "MY", "SG", "PH"]
comparison = {}
for country in countries:
products = self.search_shopee(
ingredient, country, self.get_proxy(country)
)
if products:
prices_local = [p["price"] for p in products if p["price"] > 0]
if prices_local:
currency = self.get_currency(country)
avg_price = sum(prices_local) / len(prices_local)
comparison[country] = {
"avg_price_local": avg_price,
"currency": currency,
"avg_price_usd": self.convert_to_usd(
avg_price, currency
),
"product_count": len(products),
"min_price_local": min(prices_local),
"max_price_local": max(prices_local)
}
time.sleep(3)
return comparisonMarket Opportunity Identification
def identify_market_opportunities(self, trends_by_country):
"""Identify market opportunities based on cross-market analysis"""
opportunities = []
for country, trends in trends_by_country.items():
for ingredient, data in trends.items():
if data["trend"] == "growing" and data["growth_pct"] > 50:
opportunities.append({
"country": country,
"ingredient": ingredient,
"growth_rate": data["growth_pct"],
"opportunity_type": "high_growth_ingredient",
"recommendation": (
f"Strong growth in {ingredient} products "
f"in {country}. Consider market entry or "
f"product launch."
)
})
return sorted(
opportunities,
key=lambda x: x["growth_rate"],
reverse=True
)Best Practices
- Use local mobile proxies: DataResearchTools mobile proxies in each country ensure you see authentic product listings and pricing that may differ from what international visitors see.
- Monitor in local languages: Traditional medicine product names and ingredient lists are often in local languages. Ensure your scraping system handles multi-language content.
- Track regulatory categories: Different regulatory categories (jamu vs. fitofarmaka in Indonesia) affect what claims products can make and their market positioning.
- Understand cultural context: Traditional medicine purchasing behavior is strongly influenced by cultural factors. Combine quantitative data with cultural understanding.
- Monitor seasonal patterns: Many traditional medicine products have seasonal demand patterns (cold season remedies, Ramadan wellness products, Chinese New Year TCM).
- Track cross-border trade: Traditional medicine products often cross borders within SEA. Monitor export/import patterns and cross-border e-commerce sales.
Conclusion
The traditional medicine and herbal product market in Southeast Asia represents a massive, culturally significant sector with substantial growth potential. DataResearchTools mobile proxies enable comprehensive monitoring of this fragmented market by providing authentic local access to e-commerce platforms, regulatory databases, and pharmacy websites across all major SEA markets.
By building automated monitoring systems for product listings, pricing, regulatory registrations, and ingredient trends, companies can identify opportunities, track competitors, and make informed decisions in this dynamic and rewarding market segment.
Start monitoring the traditional medicine market across Southeast Asia with DataResearchTools mobile proxies today.
- How AI + Proxies Are Transforming Drug Discovery Data Pipelines
- Best Proxies for Healthcare Data Collection in 2026
- How Anti-Bot Systems Detect Scrapers (Cloudflare, Akamai, PerimeterX)
- API vs Web Scraping: When You Need Proxies (and When You Don’t)
- ASEAN Data Protection Laws: A Web Scraping Compliance Matrix
- Best Proxies for Government Data Scraping
Related Reading
- How AI + Proxies Are Transforming Drug Discovery Data Pipelines
- Best Proxies for Healthcare Data Collection in 2026
- aiohttp + BeautifulSoup: Async Python Scraping
- How Anti-Bot Systems Detect Scrapers (Cloudflare, Akamai, PerimeterX)
- API vs Web Scraping: When You Need Proxies (and When You Don’t)
- ASEAN Data Protection Laws: A Web Scraping Compliance Matrix