Skip to content

iHerb Scraper

Try for free

Scrape iHerb (iherb.com): search, categories and brands, full product details (ingredients, supplement facts, UPC, expiry dates, stock), customer reviews and price and stock monitoring in 188 markets. No login needed.

🌿 iHerb Scraper

Scrape iHerb product listings, full product pages, customer reviews and price changes from any category, brand, search or product link. You get prices, discounts, ratings, stock, UPC barcodes, ingredients, supplement facts and best-by dates as clean JSON, CSV or Excel. It reads iHerb's own data feeds, needs no login and no browser, and saves 1,000 listed products in about 10 seconds.

✨ Why use iHerb Scraper?

  • ⚡ Fast — no browser. 1,000 listed products took 10 seconds and 200 full product pages 25 seconds in our tests.
  • 🧾 Complete product data — price, list price, promo codes, stock and units left, UPC, part number, ingredients, allergen statements, supplement facts, serving size, best-by date, weight, dimensions, category ranks, images and videos.
  • ⭐ Reviews included — review text, stars, verified-purchase flag, helpful votes, reviewer country and language, filtered by language or star rating.
  • 🔔 Price and stock monitor — each run compares prices and stock with your previous run and saves only what changed.
  • 🌍 188 markets, 84 currencies, 30 languages — local prices and availability for any iHerb country store (for a few currencies iHerb itself shows US dollars).
  • 💸 Cheap — $0.40 per 1,000 results, and you only pay for rows you get.

🎯 Use cases

  • 💲 Price monitoring — track iHerb prices, discounts and promo codes for your brands or competitors, per country.
  • 📦 Stock alerts — know when a product goes out of stock or comes back.
  • 🏷️ Catalog building — fill a store, a comparison site or a PIM with UPCs, ingredients, supplement facts and images.
  • 📊 Market research — best sellers, ratings and "sold in 30 days" figures per category or brand.
  • 🗣️ Review analysis — collect thousands of reviews for sentiment analysis, product development or complaint tracking (1-star filter).
  • 🧪 Nutrition research — compare doses, ingredients and allergens across a whole category.

🚀 How to use

  1. Paste iHerb links into Start URLs: a category (https://www.iherb.com/c/vitamins), a brand (https://www.iherb.com/c/now-foods), a search page, Specials, or product pages. Or type keywords into Search keywords.
  2. Pick What to scrape: listing data, full product details, reviews or the price monitor. Auto works for most cases.
  3. Set Max results per input, and optionally a market (country, currency, language) and filters (brand, price, rating, stock, sort).
  4. Click Start. Download the results as JSON, CSV, Excel or HTML, or read them through the API.

📥 Input

FieldWhat it does
startUrlsiHerb links: product (/pr/...), category or brand (/c/...), search (/search?kw=...), Specials, New products, review pages (/r/...). Any country subdomain works.
searchQueriesKeywords to search, one per line.
modeauto, search (listing data), details (full product pages), reviews or monitor.
maxItemsMost results per link or keyword (0 = everything).
countryCode, currencyCode, languageCodeiHerb market, price currency and text language.
sortBy, brands, minPrice, maxPrice, minRating, inStockOnly, onSaleOnlyFilters for categories, brands and searches.
maxReviewsPerProduct, reviewLanguage, reviewSort, reviewRatingReview settings.
includeUpcAdd UPC barcodes in full details mode (on by default).
monitorChangesOnlyMonitor mode: save only changed products (on by default).
{
  "startUrls": [{ "url": "https://www.iherb.com/c/vitamins" }],
  "searchQueries": ["magnesium glycinate"],
  "mode": "details",
  "maxItems": 50,
  "countryCode": "US",
  "currencyCode": "USD",
  "minRating": 4.5,
  "inStockOnly": true,
  "sortBy": "best_sellers"
}

📤 Output

Every row has a recordType: product, review or change (monitor mode). The dataset has a table view for each.

FieldDescription
productId, url, title, brand, brandCode, partNumber, upcProduct identity
price, listPrice, discountPercentage, currency, priceText, pricePerServing, promoCode, promoMessagePrice in the selected market
rating, reviewCount, soldLast30DaysPopularity
stockStatus, stockQuantity, isAvailableToPurchase, backInStockDateAvailability (in_stock, limited, out_of_stock, discontinued)
description, suggestedUse, ingredients, allergenInfo, warnings, nutritionalFacts, servingSizeProduct page content (details mode)
expiryDate, expiryDateFormatted, weight, dimensions, categories, categoryRanks, images, videosMore details
reviewId, rating, title, text, reviewerName, reviewerLocation, isVerified, helpfulYes, languageCode, dateReview rows
changeType, previousPrice, currentPrice, priceChangePercent, previousStockStatus, historyMonitor rows

Product details row (trimmed, from a real run):

{
  "recordType": "product",
  "productId": "62118",
  "url": "https://www.iherb.com/pr/california-gold-nutrition-omega-3-premium-fish-oil-100-fish-gelatin-softgels-1-100-mg-per-softgel/62118",
  "title": "Omega-3 Premium Fish Oil, 100 Fish Gelatin Softgels (1,100 mg per Softgel)",
  "brand": "California Gold Nutrition",
  "partNumber": "MLI-00952",
  "upc": "898220009527",
  "price": 12.2,
  "listPrice": 12.2,
  "currency": "USD",
  "pricePerServing": "$0.24/serving",
  "stockStatus": "in_stock",
  "rating": 4.8,
  "reviewCount": 492188,
  "soldLast30Days": 50000,
  "packageQuantity": "100 count",
  "servingSize": "2 Softgels",
  "expiryDate": "2029-05-01T00:00:00.000Z",
  "expiryDateFormatted": "05/2029",
  "categories": ["Supplements", "Omegas & Fish Oils (EPA DHA)", "Omega-3 Fish Oil"],
  "categoryRanks": [{ "category": "Omega-3 Fish Oil", "rank": 1, "categoryUrl": "https://www.iherb.com/c/omega-3-fish-oil" }],
  "ingredients": ["Fish Gelatin Softgel (Gelatin, Vegetable Glycerin, Water) and Vitamin E (<0.1% as Mixed Tocopherols)"],
  "allergenInfo": "Contains: Fish (Anchovy, Mackerel, Sardine & Tilapia) and Soy",
  "nutritionalFacts": [
    { "name": "Eicosapentaenoic Acid (EPA as TG)", "amount": "360 mg", "dailyValue": "†" },
    { "name": "Docosahexaenoic Acid (DHA as TG)", "amount": "240 mg", "dailyValue": "†" }
  ],
  "imageUrl": "https://cloudinary.images-iherb.com/image/upload/f_auto,q_auto:eco/images/mli/mli00952/v/392.jpg",
  "country": "US"
}

Review row:

{
  "recordType": "review",
  "reviewId": "a49ac85c-8d0e-46e6-a7cf-5fba9fda0c91",
  "productId": "10421",
  "productTitle": "Vitamin D-3, High Potency, 125 mcg (5,000 IU), 120 Softgels",
  "rating": 5,
  "title": "Potent Sunshine in a Softgel",
  "text": "These high-potency softgels provide a significant dose of Vitamin D-3...",
  "reviewerName": "Jane D.",
  "reviewerLocation": "Thailand",
  "isVerified": true,
  "helpfulYes": 0,
  "languageCode": "en-US",
  "date": "2026-04-09T10:35:43.612Z"
}

💰 Pricing

You pay $0.40 per 1,000 results ($0.0004 per product, review or monitor row), plus a small platform usage fee for compute and proxy traffic. In our tests that fee was about $0.001 for 1,000 listed products and about $0.008 for 1,000 full product pages.

Example: 1,000 products from a category ≈ $0.40 + $0.001 = about $0.40. Rows that are filtered out, not found or unchanged in monitor mode are never charged. Set a maximum cost per run and the scraper stops cleanly when it is reached.

❓ FAQ

Is it legal to scrape iHerb? The scraper only reads public data that any visitor can see without logging in. Check iHerb's terms and your local laws for how you use the data, especially reviewer names.

Do I need an account, cookies or a proxy? No account or cookies. Datacenter proxies are on by default and work well; if iHerb ever refuses them, the run switches to US residential proxies by itself.

How many results can I get? A whole category or search (iHerb lists up to about 45,000 products), and up to 10,000 reviews per product for each language, star rating and order.

Why is a field empty? iHerb does not publish everything for every product: stockQuantity only appears when stock is low, expiryDate only for products with a best-by date, upc and supplement facts only in full details mode.

How does the monitor work? Run the scraper in monitor mode on a schedule. Each run compares prices and stock with the previous run for the same country and currency and saves new_item, price_drop, price_increase, out_of_stock, back_in_stock or removed rows. Up to 30 checks of history are kept per product.

Can I schedule it or use the API? Yes. Schedule runs in the console, call the run API, and connect the results to webhooks and integrations.

⚠️ Limits

  • Country stores sell different products: a product that is not sold in the selected country is skipped and reported in the run summary.
  • Review pages go up to 10,000 reviews per product for each filter combination.
  • iHerb does not display every currency in every market; when it falls back to US dollars, the prices are US dollars.
  • soldLast30Days is iHerb's rounded figure (for example 50,000+), not an exact count.
  • The monitor keeps one history per country and currency in your account storage; delete the iherb-price-monitor store to start over.
  • Questions and answers, and per-review comments, are not scraped.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.