iHerb Scraper: Search, Products, Reviews & Monitor
Pricing
$0.50 / 1,000 items
iHerb Scraper: Search, Products, Reviews & Monitor
The ultimate iHerb API. Supports 4 modes: Search, Product Details, Reviews, and Real-Time Price Monitoring. Extract ingredients, nutrition, and stock status for 24+ countries. No monthly feesβpay only for what you scrape.
Pricing
$0.50 / 1,000 items
Rating
0.0
(0)
Developer
Sage
Maintained by CommunityActor stats
5
Bookmarked
209
Total users
26
Monthly active users
12 days ago
Last modified
Categories
Share
Extract iHerb product data, customer reviews, and price changes from a single Actor. Search any category or keyword, pull 50+ fields per product including ingredients, nutritional facts and UPC codes, collect customer reviews, or monitor prices and stock across 24+ countries.
No browser rendering, so runs finish in seconds rather than minutes. Pay only for the results you keep.
What can iHerb Scraper do?
- π Search β scrape products from any iHerb category, search URL, or keyword
- π¦ Product details β 50+ fields per product: price, stock, ingredients, nutrition facts, UPC, rankings, images
- β Reviews β collect customer reviews with ratings, verified-buyer flags and reviewer location
- π Price monitoring β track price drops and restocks, with optional webhook alerts
- π 24+ countries with localized pricing and currency
- β‘ API-based extraction β no headless browser, so it's fast and cheap to run
Running on Apify means you also get scheduling, run monitoring, a REST API, webhook and integration support (Zapier, Make, Slack, Google Drive), proxy rotation, and dataset exports to JSON, CSV or Excel β without building any of it yourself.
Smart auto-detection
Don't want to pick a mode? Paste any iHerb URL β product, category, or search β into startUrls and the Actor detects the page type and scrapes it accordingly.
What data can you extract from iHerb?
| Mode | What you get |
|---|---|
| Search | Product ID, URL, title, brand, price, list price, rating, review count, stock status, image |
| Details | Everything above plus ingredients, nutritional facts, suggested use, warnings, allergen info, UPC, part number, serving size, package quantity, expiry / best-by date, physical dimensions, units left when stock is low, category rankings, all images |
| Reviews | Review ID, rating, title, text, reviewer name and location, verified-buyer flag, helpful count, date |
| Monitor | Change type, previous vs current price, percentage change, previous vs current stock status, timestamp |
How much does it cost to scrape iHerb?
This Actor uses Apify's pay-per-result pricing: $0.50 per 1,000 results, or $0.0005 per item. You pay for the rows you actually receive β failed or unavailable products are never billed.
Platform usage (compute, proxies) is free on this Actor; you are not charged separately for it.
A few worked examples:
| What you scrape | Results | Cost |
|---|---|---|
| 100 products from a category | 100 | $0.05 |
| 1,000 products | 1,000 | $0.50 |
| 500 reviews across 5 products | 500 | $0.25 |
| Daily price check on 200 products | 200/day | $0.10/day |
Apify's free plan includes monthly usage credits, so you can trial the Actor at no cost before committing.
Set Maximum Items in the input to cap your spend on any run. You can also set a maximum cost per run in the Apify Console.
How do I use the iHerb Scraper?
- Click Try for free and sign in to Apify.
- Paste an iHerb URL into Start URLs, or type a keyword into Search Keywords.
- Pick a Mode β or leave it on
autoto let the Actor decide. - Set Maximum Items to control how much you scrape.
- Click Start and download results as JSON, CSV or Excel.
Scrape iHerb search results and categories
{"mode": "search","startUrls": [{ "url": "https://www.iherb.com/c/vitamins" }],"maxItems": 100}
Extract full iHerb product details
{"mode": "details","startUrls": [{ "url": "https://www.iherb.com/pr/NOW-Foods-Vitamin-D-3/10421" }]}
Scrape iHerb customer reviews
{"mode": "reviews","startUrls": [{ "url": "https://www.iherb.com/pr/NOW-Foods-Vitamin-D-3/10421" }],"maxReviewsPerProduct": 100}
Monitor iHerb prices and stock
{"mode": "monitor","startUrls": [{ "url": "https://www.iherb.com/pr/Product-Name/12345" }],"webhookUrl": "https://your-webhook.com/alerts"}
Monitor mode persists its baseline between runs, so there are no files to upload. Schedule it daily and it diffs against the previous check automatically.
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | auto | Operation mode: auto, search, details, reviews, monitor |
startUrls | array | required | Product, category, or search URLs to scrape |
searchKeywords | string | - | Search keywords (alternative to URLs) |
countryCode | string | US | Country code for localized pricing |
currencyCode | string | USD | Currency for prices |
maxItems | integer | 100 | Maximum dataset items to produce (0 = unlimited) |
maxReviewsPerProduct | integer | 100 | Maximum reviews per product in Reviews mode |
includeUpc | boolean | true | Fetch UPC, SKU and refreshed ratings in Details mode. Costs one extra request per product β turn off to roughly halve requests |
webhookUrl | string | - | Webhook URL for price monitoring alerts |
useSitemapForBulk | boolean | false | Deprecated and ignored. Category extraction is already unlimited β see below |
filters.minPrice | number | - | Minimum price filter |
filters.maxPrice | number | - | Maximum price filter |
filters.minRating | number | - | Minimum rating filter (1-5) |
filters.inStockOnly | boolean | false | Only return in-stock items |
Output examples
Product details
{"productId": "10421","url": "https://www.iherb.com/pr/now-foods-vitamin-d-3/10421","title": "Vitamin D-3, High Potency, 5,000 IU, 120 Softgels","brand": "NOW Foods","price": 8.99,"listPrice": 12.99,"discountPercentage": 31,"currency": "USD","stockStatus": "in_stock","rating": 4.8,"reviewCount": 15432,"upc": "733739003676","categories": ["Vitamins", "Vitamin D"],"ingredients": ["Vitamin D-3 (as Cholecalciferol)", "..."],"suggestedUse": "Take 1 softgel daily with a fat-containing meal.","packageQuantity": "120 count","expiryDate": "2030-03-01T00:00:00.000Z","expiryDateFormatted": "03/2030","dimensions": { "length": 3.5, "width": 1.8, "height": 1.8, "unit": "in" },"stockQuantity": null,"isAvailableToPurchase": true,"images": ["https://..."],"scrapedAt": "2024-01-15T10:30:00.000Z"}
Review data
{"reviewId": "abc123","productId": "10421","rating": 5,"title": "Great product!","text": "I've been taking this for 6 months and my levels are perfect now.","reviewerName": "John D.","reviewerLocation": "United States","isVerified": true,"date": "2024-01-10T00:00:00.000Z"}
Price alert (Monitor mode)
{"productId": "10421","productName": "Vitamin D-3, High Potency","changeType": "price_drop","previousPrice": 12.99,"currentPrice": 8.99,"priceChangePercent": -31,"currency": "USD","timestamp": "2024-01-15T10:30:00.000Z","lowestPrice": 8.99,"highestPrice": 12.99,"history": [{ "price": 12.99, "stockStatus": "in_stock", "checkedAt": "2024-01-14T10:30:00.000Z" },{ "price": 8.99, "stockStatus": "in_stock", "checkedAt": "2024-01-15T10:30:00.000Z" }]}
Monitor mode keeps up to 30 observations per product, so each run reports the recent price series along with the lowest and highest price seen β enough to chart a trend or trigger on "cheapest in a month" without storing anything yourself.
Tips and best practices
- π° Control cost β set
maxItemsto cap results, or set a maximum cost per run in the Console. - β‘ Filter early β
filters.inStockOnlyavoids paying for out-of-stock products. - π¦ Bulk extraction β just set
maxItems(or0for unlimited). The catalog API paginates through an entire category, so no special flag is needed. - π·οΈ Skip barcodes for speed β set
includeUpc: falsein Details mode to halve the requests when you don't need UPC or SKU. - π Proxies β optimized for Apify Residential Proxies; datacenter proxies may return fewer results.
- β° Scheduling β Monitor mode is designed to run on a schedule; set one up in the Console and it diffs automatically.
Supported countries and currencies
Countries: US, GB, CA, AU, DE, FR, ES, IT, JP, KR, CN, TW, HK, SG, MY, TH, PH, IN, AE, SA, IL, RU, BR, MX
Currencies: USD, GBP, CAD, AUD, EUR, JPY, KRW, CNY, TWD, HKD, SGD, MYR, THB, PHP, INR, AED, SAR, ILS, RUB, BRL, MXN
What can you do with iHerb data?
- π² Price comparison β track iHerb prices against other retailers
- π Inventory monitoring β get alerted when products return to stock
- π Market research β analyze categories, pricing trends and review sentiment
- π Dropshipping and ecommerce β populate a storefront with product data
- π₯ Nutrition research β collect ingredients and nutritional facts at scale
- π£οΈ Review analysis β aggregate customer feedback for sentiment analysis
Frequently asked questions
Is it legal to scrape iHerb?
This Actor collects only publicly available data β information anyone can see without logging in. Scraping public data is generally legal, but how you use it is your responsibility. Don't collect personal data without a lawful basis, and review iHerb's terms before large-scale commercial use. If in doubt, seek legal advice.
Do I need proxies?
Apify Proxy is recommended and residential proxies work best. The Actor runs without proxies for small jobs, but larger runs are more reliable with them.
How many results can I get?
There's no hard cap. Set maxItems to whatever you need, or 0 for unlimited. For very large category extractions, enable useSitemapForBulk.
Why did my run return fewer items than I asked for?
maxItems caps the number of dataset items, not the number of pages checked. Filters (minPrice, minRating, inStockOnly) are applied after fetching, so a strict filter can return fewer matches than the cap. Out-of-stock or discontinued products are skipped and never billed.
Does it return expiry or best-by dates?
Yes. Details mode returns expiryDate in ISO format plus expiryDateFormatted
exactly as iHerb displays it (e.g. 03/2030). iHerb publishes this for most
supplements, which matters for resellers and anyone tracking shelf life.
What does a null stockQuantity mean?
That iHerb has not disclosed a unit count β not that stock is zero. iHerb only
publishes a number once stock runs low ("Only 6 left"). Use stockStatus for
availability and treat stockQuantity as a bonus signal when present.
Can I scrape reviews for many products at once?
Yes. Pass multiple product URLs in startUrls, or a category URL β the Actor discovers products first, then collects reviews. Note that maxItems caps total reviews across all products, while maxReviewsPerProduct caps them per product.
Can I get notified when a price drops?
Yes. Use monitor mode with a webhookUrl and schedule the Actor to run daily. It compares against the previous run's baseline and reports only what changed.
How do I scrape a whole category?
Point startUrls at the category URL and set maxItems to 0 for unlimited.
The catalog API pages through the full category, so there is no size limit and
no special flag. The old useSitemapForBulk option is deprecated and ignored β
it read a site-wide sitemap that could not filter by category.
How do I export the data?
Download from the Console as JSON, CSV, Excel, XML or RSS, or pull it from the API. You can also push results straight to Google Drive, Slack, or any HTTP endpoint using Apify integrations.
Can you build a custom version for me?
Yes β if you need extra fields, a different output shape, or another supplement retailer, get in touch through the Apify Store contact link on this page.