iHerb Scraper: Search, Products, Reviews & Monitor avatar

iHerb Scraper: Search, Products, Reviews & Monitor

Pricing

$0.50 / 1,000 items

Go to Apify Store
iHerb Scraper: Search, Products, Reviews & Monitor

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

Sage

Maintained by Community

Actor stats

5

Bookmarked

209

Total users

26

Monthly active users

12 days ago

Last modified

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?

ModeWhat you get
SearchProduct ID, URL, title, brand, price, list price, rating, review count, stock status, image
DetailsEverything 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
ReviewsReview ID, rating, title, text, reviewer name and location, verified-buyer flag, helpful count, date
MonitorChange 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 scrapeResultsCost
100 products from a category100$0.05
1,000 products1,000$0.50
500 reviews across 5 products500$0.25
Daily price check on 200 products200/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?

  1. Click Try for free and sign in to Apify.
  2. Paste an iHerb URL into Start URLs, or type a keyword into Search Keywords.
  3. Pick a Mode β€” or leave it on auto to let the Actor decide.
  4. Set Maximum Items to control how much you scrape.
  5. 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

FieldTypeDefaultDescription
modestringautoOperation mode: auto, search, details, reviews, monitor
startUrlsarrayrequiredProduct, category, or search URLs to scrape
searchKeywordsstring-Search keywords (alternative to URLs)
countryCodestringUSCountry code for localized pricing
currencyCodestringUSDCurrency for prices
maxItemsinteger100Maximum dataset items to produce (0 = unlimited)
maxReviewsPerProductinteger100Maximum reviews per product in Reviews mode
includeUpcbooleantrueFetch UPC, SKU and refreshed ratings in Details mode. Costs one extra request per product β€” turn off to roughly halve requests
webhookUrlstring-Webhook URL for price monitoring alerts
useSitemapForBulkbooleanfalseDeprecated and ignored. Category extraction is already unlimited β€” see below
filters.minPricenumber-Minimum price filter
filters.maxPricenumber-Maximum price filter
filters.minRatingnumber-Minimum rating filter (1-5)
filters.inStockOnlybooleanfalseOnly 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 maxItems to cap results, or set a maximum cost per run in the Console.
  • ⚑ Filter early β€” filters.inStockOnly avoids paying for out-of-stock products.
  • πŸ“¦ Bulk extraction β€” just set maxItems (or 0 for unlimited). The catalog API paginates through an entire category, so no special flag is needed.
  • 🏷️ Skip barcodes for speed β€” set includeUpc: false in 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

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.