iHerb Scraper - Vitamins, Supplements & Health Products
Pricing
from $3.00 / 1,000 results
iHerb Scraper - Vitamins, Supplements & Health Products
Scrape iHerb.com product listings and details. Search by keyword, browse any category or brand, or look up exact products by ID/URL. Get prices, ratings, review counts, discounts, stock status, images, brand and category info.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
iHerb Scraper
Scrape iHerb.com — one of the world's largest online retailers of vitamins, supplements, health, beauty, grocery, and household products. Search by keyword, browse any category or brand page, look up exact products by ID or URL, or pull individual customer reviews and customer Q&A. Get prices, discounts, ratings, review counts, stock status, images, brand and category details. No login, cookies, or API keys required.
What this actor does
- Five modes:
search(keyword),category(browse any category or brand page),product(exact lookup by ID or URL),reviews(individual customer reviews for a product),questions(customer Q&A for a product) - Sort orders: Featured, Relevance, Best sellers, Top rated, Most rated, Price low→high, Price high→low, Newest, Heaviest, Lightest, Highest discount
- Filters: minimum rating, price range, in-stock only, discounted only, brand name, health topic (wellness category), "Only at iHerb" exclusive products, "iTested" independently lab-verified products, "Quality pick" curated products, iHerb house brands only, "Sport Certified" third-party anti-doping certified products
- AI review summary —
productmode includes an AI-generated summary of what customers say, when iHerb has generated one - Individual customer reviews —
reviewsmode returns real reviewer text, rating, verified-purchase status, helpful votes, and photos, sortable by relevance/newest/most helpful - Translated review text — set
reviewDisplayLanguageto read customer reviews (and the AI review summary) machine-translated into English, Spanish, French, German, Italian, Portuguese, Russian, Chinese, Japanese, or Arabic, regardless of what language the reviewer originally wrote in - Global pricing — the store's local currency is detected automatically and included on every record; pick a country in the proxy settings to browse iHerb (and see prices) as if from that country
- Empty fields are omitted — every record only contains fields that were actually found
Output per product
Listing records (search / category modes):
productId,partNumber,titlebrandName,brandIdrating,reviewCountlistPrice,discountPrice,discountPercentage,currencyinStock,discontinued,sponsoredflags[]— e.g.BestSeller,iHerbExclusive,Special,New,Clearance,LimitedEditionimageUrl,sourceUrlrecordType: "product",scrapedAt
Detail records (product mode) additionally include:
description,categoryName,categoryId,categoryPath[]— full breadcrumb trail, e.g.["Supplements", "Vitamins", "Vitamin C", "Ascorbic Acid"]brandUrlgtin— UPC/EAN barcode, when iHerb publishes one for the productweightValue,weightUnitprice(instead of listPrice/discountPrice)imageUrls[]— additional product gallery photos (packaging angles, supplement facts panel), beyond the primaryimageUrl, when iHerb publishes more than one imagesuggestedUse,ingredients,warnings— the product's "Suggested use", "Other ingredients", and "Warnings" label text, when iHerb publishes them (most supplement, beauty, and grocery products do)firstAvailableDate— the month the product was first listed on iHerb (YYYY-MM)dimensions— packaged product dimensions as published by iHerb (e.g.14.4 x 7.7 x 7.7 cm)shippingWeightValue,shippingWeightUnit— packaged shipping weight (box + protective material), when iHerb publishes it — distinct from the net productweightValue/weightUnitpackageQuantity— the count/size of the package as published in the Specifications panel (e.g.240 count), independent of whether the product has alternate pack-size siblingsspecialNote— a shipping/storage note iHerb publishes for a subset of products (e.g. "kept refrigerated to ensure maximum freshness; not necessary to ship on ice")supplementFacts— the structured Supplement Facts panel (servingSize,servingsPerContainer, and anutrients[]breakdown ofname/amountPerServing/dailyValue), present only for supplement/nutrition productsvariants[]— sibling product options in the same family (e.g. Potency, Package quantity, Product form, Scent, Color), each withattribute, andoptions[]listing every sibling'svalue,productId,url,inStock, andcurrent(on the option matching this record); omitted when the product has no sibling variantscategoryRankings[]— iHerb's own best-seller rank for this product within each category it belongs to (most specific first), e.g.#1 in Magnesium Oxide,#5 in Sleep; each entry hasrank,categoryName,categoryUrl; omitted for discontinued/low-volume products with no ranking datareviewSummary— an AI-generated summary of what customers say about the product, when iHerb has generated one (requires a minimum review volume)
Review records (reviews mode) — one record per customer review:
reviewId,productId,title,text,rating(0-5)reviewerName,reviewerCountry,reviewerBadge(e.g.Silver,Goldcontributor tier),reviewerReviewCountverifiedPurchase,postedDate,helpfulYes,helpfulNo,languageCode— the reviewer's original review language (e.g.ar-SA), independent ofreviewDisplayLanguage; thetitle/textfields are always shown translated into the requestedreviewDisplayLanguageregardless of what this field saysimageUrls[]— customer-submitted photos, when the review includes anysourceUrl— the reviewed product's pagerecordType: "review",scrapedAt
Question records (questions mode) — one record per customer question, newest first:
questionId,productId,question,askerName,postedDate,answerCount,helpful(helpful-vote count, when any)topAnswerText,topAnswererName,topAnswerVerifiedPurchase,topAnswerPostedDate— the question's top/first answer, when iHerb includes one in the responsesourceUrl— the product's pagerecordType: "question",scrapedAt- Note: iHerb's own Q&A widget is shared across every pack-size/flavor variant of a product family, not just the exact ID you queried — so
productId/sourceUrlon an individual question may point at a sibling variant of the product you requested rather than that exact ID. This mirrors what iherb.com itself shows on the product page.
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | search | search / category / product / reviews / questions |
searchQuery | string | vitamin c | Keyword (mode=search) |
categorySlug | string | vitamins | Category or brand slug/URL (mode=category) |
productIds | array | – | Numeric product IDs (mode=product / reviews / questions) |
productUrls | array | – | Full product page URLs (mode=product / reviews / questions) |
sortBy | string | featured | Result ordering (mode=search / category) |
reviewSortBy | string | mostRelevant | Review ordering: mostRelevant / newest / mostHelpful (mode=reviews) |
reviewsWithImagesOnly | boolean | false | Only return reviews that include photos (mode=reviews) |
reviewDisplayLanguage | string | en | Machine-translate review text / AI summary into this language: en / es / fr / de / it / pt / ru / zh / ja / ar (mode=reviews / product) |
minRating | number | – | Drop products below this rating (0-5) |
minPrice | number | – | Drop products priced below this |
maxPrice | number | – | Drop products priced above this |
inStockOnly | boolean | false | Only emit in-stock products |
discountOnly | boolean | false | Only emit discounted products |
brandName | string | – | Only emit products whose brand contains this text |
healthTopic | string | – | Restrict to an iHerb wellness category, e.g. sleep, immuneSupport, weightManagement (mode=search / category) |
onlyAtIherbOnly | boolean | false | Only emit products in iHerb's exclusive "Only at iHerb" program (mode=search / category) |
iTestedOnly | boolean | false | Only emit products carrying iHerb's "iTested" independent lab-verification badge (mode=search / category) |
qualityPickOnly | boolean | false | Only emit products carrying iHerb's own "Quality pick" curated/editorial badge (mode=search / category) |
iherbBrandsOnly | boolean | false | Only emit products from iHerb's own house-owned brand family (mode=search / category) |
sportCertifiedOnly | boolean | false | Only emit products carrying a third-party sport anti-doping certification badge (e.g. NSF Certified for Sport, Informed Sport) (mode=search / category) |
maxItems | int | 20 | Hard cap (1-500) |
proxyConfiguration | object | AUTO | Apify proxy; pick a country to localize currency/availability |
Example: search with filters
{"mode": "search","searchQuery": "collagen","sortBy": "topRated","minRating": 4.5,"discountOnly": true,"maxItems": 30}
Example: browse a category
{"mode": "category","categorySlug": "sports-nutrition","sortBy": "bestSellers","maxItems": 50}
Example: browse a brand page
{"mode": "category","categorySlug": "now-foods","sortBy": "priceLowToHigh"}
Example: lookup exact products
{"mode": "product","productIds": ["61865", "104054"]}
Example: get customer reviews for a product
{"mode": "reviews","productIds": ["61865"],"reviewSortBy": "mostHelpful","maxItems": 50}
Example: get customer Q&A for a product
{"mode": "questions","productIds": ["61865"],"maxItems": 50}
Use cases
- Price monitoring — track prices and discounts on vitamins/supplements over time
- Market research — analyze best sellers and top-rated products by category
- Competitor analysis — compare brand pricing and catalog breadth
- Content aggregation — pull product catalogs for comparison/review sites
- Deal discovery — filter for discounted, in-stock products by rating
Data source
Product data is read from iHerb's public, no-login pages (search, category/brand, and product pages). iHerb serves these behind Cloudflare bot management, which blocks plain curl/basic HTTP clients even with a browser User-Agent — a real browser TLS fingerprint is required, which is what the actor uses server-side. sourceUrl links open normally in any real browser; they just won't return content to bare curl or simple requests.get() calls, which is expected and consistent with how the live site behaves for any automated client.
FAQ
Do I need an iHerb account or API key? No. The actor reads the same public pages a shopper sees, no login required.
What currency are prices in? iHerb shows prices in the currency of the store locale it serves (detected from the response and included in the currency field on every record). Use the proxy country selector in the input to browse from a specific country and see that country's pricing.
Can I search by both keyword and category? Use mode=search for keyword search, or mode=category with a category/brand slug. Combine either with the shared filters (rating, price, stock, discount, brand, health topic, Only-at-iHerb).
Can I filter by wellness category, like Sleep or Immune Support? Yes — set healthTopic (mode=search / category) to restrict results to iHerb's own wellness-category facet (e.g. Sleep, Immune Support, Weight Management, Women's Health). Leave it blank for no restriction.
Can I get only iHerb's exclusive "Only at iHerb" products? Yes — set onlyAtIherbOnly: true (mode=search / category) to restrict results to products in that program; matching records also carry an OnlyAtIherb entry in their flags[].
Can I get only independently lab-tested ("iTested") products? Yes — set iTestedOnly: true (mode=search / category) to restrict results to products carrying iHerb's "iTested" badge, meaning they've been independently third-party lab-verified for quality and purity.
Can I get only iHerb's own "Quality pick" curated products? Yes — set qualityPickOnly: true (mode=search / category) to restrict results to products carrying iHerb's own editorial "Quality pick" badge. This is a small, curated selection distinct from both "Only at iHerb" (exclusive manufacturing) and "iTested" (independent lab verification); if you set both iTestedOnly and qualityPickOnly together, iTestedOnly takes precedence since iHerb's own site only supports one badge filter active at a time.
Can I get only iHerb's own house brands? Yes — set iherbBrandsOnly: true (mode=search / category) to restrict results to products from brands iHerb itself owns and manufactures (e.g. California Gold Nutrition, Doctor's Best), as opposed to third-party brands. This is distinct from "Only at iHerb" (third-party brands with exclusive distribution rights) and can be combined freely with qualityPickOnly or iTestedOnly.
Can I get only sport-certified products? Yes — set sportCertifiedOnly: true (mode=search / category) to restrict results to products carrying a third-party sport anti-doping certification badge (e.g. NSF Certified for Sport, Informed Sport) — especially useful for protein powders and sports-nutrition searches. Combines freely with any other filter.
Will mode=search results still match my keyword if I pick a non-default sort order (e.g. Top rated, Price low→high)? Yes. Results are always checked against your search terms before being returned, so switching the sort order never turns a keyword search into an unrelated product feed.
What's a "category slug"? The part of the URL after /c/, e.g. https://www.iherb.com/c/vitamins → vitamins. Brand pages use the same URL pattern (e.g. /c/california-gold-nutrition), so brand browsing works the same way.
Why is discountPrice sometimes equal to listPrice? iHerb only applies a discount to some products; when there's no active discount, both fields show the current price and discountPercentage is omitted.
What happens if I look up a discontinued product? mode=product still returns the record (title, description, last-known price, images, etc.) with inStock: false, since iHerb keeps discontinued product pages live with full data. Only products iHerb has fully removed from its catalog (unknown/invalid ID) return nothing.
Does the actor return barcodes? Product-lookup records (mode=product) include a gtin field (UPC/EAN) whenever iHerb publishes one for that product.
Does the actor return supplement facts? Yes — mode=product records include a supplementFacts object (serving size, servings per container, and the full nutrient/amount/%daily-value table) for supplement and nutrition products. Beauty, grocery, and other non-supplement products correctly omit this field.
Does the actor return other pack sizes / flavors / potencies of the same product? Yes — mode=product records include a variants[] array listing sibling product IDs and URLs for attributes like potency, package quantity, product form, scent, or color, whenever iHerb offers more than one option in that family.
Does the actor return the product's best-seller rank? Yes — mode=product records include a categoryRankings[] array with iHerb's own best-seller rank for the product within each category it belongs to (e.g. #1 in Magnesium Oxide), most specific category first. Omitted for discontinued or low-volume products iHerb hasn't ranked.
Can I get individual customer reviews, not just the aggregate rating? Yes — use mode=reviews with a productIds/productUrls list to get each review's text, star rating, reviewer name/country, verified-purchase status, helpful-vote counts, and any photos the reviewer attached. Sort with reviewSortBy (mostRelevant, newest, mostHelpful) and set reviewsWithImagesOnly: true to only get reviews with photos.
Can I get the "Customer questions and answers" section, not just reviews? Yes — use mode=questions with a productIds/productUrls list to get every question asked about the product (newest first), along with its top answer when one is available, asker/answerer name, verified-purchase status on the answer, and dates. For some products, iHerb pools its Q&A section across closely related sibling variants (e.g. different pack sizes of the same formula) rather than keeping it strictly per-listing; each returned question record's own productId/sourceUrl always correctly reflects which exact variant that question was actually asked about, so you can tell at a glance if a question came from a sibling listing.
Can I read reviews in a different language than the reviewer wrote them in? Yes — set reviewDisplayLanguage (e.g. es, fr, de, zh) and iHerb machine-translates every review's title and text into that language before it's returned, along with the AI review summary in product mode. The reviewer's underlying review (and who wrote it) doesn't change, only the language it's shown in.
Is there a quick way to see overall sentiment without reading every review? Yes — mode=product records include a reviewSummary field: an AI-generated summary of what customers commonly say about the product, when iHerb has generated one for it (requires a minimum review volume; omitted otherwise).
How many products can I get per run? Up to maxItems (max 500). Search/category results are paginated automatically until the cap is reached.