· 14 min read
Vitacost Scraper: 31 Data Fields, Up to 1,000 Free Results/Month
Up to 1,000 results are available on Apify's free plan, making it easy to track vitamins, supplements, and health foods from vitacost.com. Each record carries 31 output fields, including variant data, SKUs, and image URLs. This Actor is for anyone tracking health product markets or competitive pricing. It is not for anyone who needs customer ratings or reviews, which Vitacost's public storefront does not make reliably available.
Try it: open Vitacost Scraper on Apify, sign in on the free plan and run the prefilled example.
Can you try Vitacost Scraper before paying?
Yes. Apify's free plan includes $5.00 of prepaid usage every month and asks for no credit card. At $0.005 per result, that covers up to 1,000 results of Vitacost Scraper a month, before run-start charges and platform usage.
The example request further down caps maxItems at 20, so a first run returns at most 20 results and costs at most $0.10 in result charges. That is enough to see the real shape of the data before deciding anything.
Vitacost Scraper was last updated on 2026-07-13. It is one of 1,729 Actors CrawlerBros publishes on Apify, which together have 746,619 lifetime public runs and an average rating of 4.63 out of 5 across 416 reviews.
What does it cost to run Vitacost Scraper?
Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.
| Apify plan | Per result | Per 1,000 results |
|---|---|---|
| FREE | $0.005 | $5.00 |
| BRONZE | $0.00433 | $4.33 |
| SILVER | $0.00367 | $3.67 |
| GOLD | $0.003 | $3.00 |
| PLATINUM | $0.003 | $3.00 |
| DIAMOND | $0.003 | $3.00 |
The number of results written to the dataset directly affects your bill, with each result costing $0.005. The maxItems input control therefore has the largest effect on the result charges. To evaluate the Actor without incurring significant cost, the example input provides a small sample. It caps maxItems at 20, so a first run returns at most 20 results, costing up to $0.10 in result charges. Apify also bills platform usage on top of these charges.
How do you run Vitacost Scraper from the API?
None of its 22 controls is strictly required, so the defaults below produce a valid run on their own. The payload below uses the schema's own prefilled values, so it runs as written once you substitute your API token.
Call the synchronous endpoint to start a run and receive dataset items in one request:
curl -X POST "https://api.apify.com/v2/acts/crawlerbros~vitacost-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"byCategory","category":"vitamins","sortBy":"best-selling","maxItems":20,"imageQuality":"master","requestDelaySecs":1}'
The same run from Python, using the official client:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"mode": "byCategory",
"category": "vitamins",
"sortBy": "best-selling",
"maxItems": 20,
"imageQuality": "master",
"requestDelaySecs": 1
}
run = client.actor("crawlerbros~vitacost-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
And from Node.js:
import { ApifyClient } from 'apify-client'
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
const input = {
"mode": "byCategory",
"category": "vitamins",
"sortBy": "best-selling",
"maxItems": 20,
"imageQuality": "master",
"requestDelaySecs": 1
}
const run = await client.actor('crawlerbros~vitacost-scraper').call(input)
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)
The synchronous endpoint holds the connection open until the run finishes, which is convenient for small batches and wrong for large ones. For anything long running, start the run asynchronously and poll, or attach a webhook, so a dropped connection does not cost you the results.
Which Vitacost Scraper inputs matter, and which can you skip?
This Actor provides 22 controls to define your scrape, with mode being the most important: you can browse byCategory, search by keyword, look up specific products byHandles, or find relatedProducts. Most users should focus on mode and maxItems for initial runs to get a representative sample of data, leaving other optional controls at their defaults.
mode(string):byCategorybrowses a category with full pagination.searchruns Vitacost's in-store search (top 10 most relevant matches).byHandleslooks up specific products by handle or URL.relatedProductsreturns Vitacost's own "customers also viewed" recommendations for each seed product (top 10 per seed). Default:"byCategory".category(string): A Vitacost category to browse. Covers vitamins, supplements, sports nutrition, personal care, beauty, grocery/health food, home, baby & kids, and pet health. Default:"vitamins".sortBy(string): Sort order applied to category browse results. Default:"best-selling".maxItems(integer): Hard cap on the number of products returned (1-10000). Default:20.imageQuality(string): Shopify CDN serves multiple image sizes.masterreturns the original. Default:"master".requestDelaySecs(integer): Pause between successive page fetches. Lower = faster, higher = more polite. Default:1.categoryHandle(string): Advanced: any Vitacost collection handle not in the dropdown above (the last segment ofvitacost.com/collections/<handle>). Overridescategorywhen set.searchQuery(string): Free-text keyword search, e.g.vitamin c,turmeric,probiotics. Returns Vitacost's top 10 most relevant matches (a platform limit on predictive search).productHandles(array): Exact product handles (e.g.vitacost-vitamin-c-500-mg-rose-hips-100-tablets-1234) or full product URLs. ForbyHandles, each is looked up individually. ForrelatedProducts, each is used as a seed to fetch Vitacost's own recommended/related products (up to 10 per seed). Default:[].minPrice(number): Drop products whose lowest price is below this threshold.maxPrice(number): Drop products whose lowest price is above this threshold.onSaleOnly(boolean): Only emit products with an active discount (compare-at price higher than the current price). Default:false.
The other 10 controls, with their defaults, are listed in the input schema on Vitacost Scraper on Apify.
Fixed-choice controls: mode accepts byCategory (Browse by category), search (Search by keyword), byHandles (Look up specific products), relatedProducts (Find related/recommended products); category accepts 63 values (default vitamins), including vitamins, supplements (all), minerals, herbs; sortBy accepts best-selling (Best selling), manual (Featured (site default)), price-ascending (Price: low to high), price-descending (Price: high to low), title-ascending (Title: A to Z), title-descending (Title: Z to A), created-ascending (Oldest first), created-descending (Newest first); imageQuality accepts small (~100px), medium (~240px), large (~480px), grande (~600px), 1024x1024, 2048x2048, master (original).
What does Vitacost Scraper return?
The returned records are suitable for price tracking, market analysis, and competitive intelligence. They do not contain customer ratings or reviews, as Vitacost does not render this data in its public storefront markup.
productId,handle,productUrl- canonical Vitacost product pagetitle,brand,productType,category,tags[]badges[]- promotional/private-label badges Vitacost attaches to the listing, e.g.Vitacost Brands(store brand) orSuperDeal(deep-discount promo)description- plain text (HTML stripped)price,maxPrice- lowest / highest variant pricecomparePrice,onSale,discountPercent- sale trackingcurrency- alwaysUSDvariantCount,availableVariantCount,availableskus[]- up to 20variants[]- up to 30, each withsize,sku,price,comparePrice,available,barcode(UPC),weightLb(shipping weight in pounds) -barcodeis only available forbyHandles/relatedProductslookups (Vitacost's product-detail feed), not the paginated category/search feedsimageUrl,images[]- up to 15options[]- variant option names/values (e.g. size, count)createdAt,updatedAt,publishedAtrelatedToHandle,relatedToUrl- the seed product a result was recommended for (mode =relatedProductsonly)recordType: "product",scrapedAt
These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.
How do you build the workflow end to end?
Open Vitacost Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.
- Set the
modetobyCategoryand choose an initialcategoryto explore. Start with a broad category likevitaminsto get a sense of the available data. - Review the output to confirm the records contain
price,onSale, anddiscountPercentfields. Ensure these are present for products you expect to be on sale. - Increase
maxItemsto a few hundred, then try filtering byminDiscountPercent(e.g., 10 or 20) andonSaleOnlyset to true. - Iterate through different
categoryvalues or usecategoryHandlefor specific, non-listed categories. - When monitoring a brand, set
brandContainsto the exact brand name you need to track. - Schedule the Actor to run periodically to capture changes in
priceanddiscountPercentover time.
How do you apply it? Three worked playbooks
These are Vitacost Scraper's own documented use cases, each worked through as an operating pattern rather than a description.
Use case 1: Price tracking
Outcome: Monitor a category or brand for sale prices and discount depth
Configure: Set mode to byCategory or use brandContains with your target brand. Set onSaleOnly to true and optionally minDiscountPercent to a threshold like 10. Configure maxItems to a value suitable for your category size.
Working method: Begin by tracking a single category or brand, running the Actor daily. Compare the price and discountPercent values over time to identify new sales or changes in discount depth. Use the sortBy control set to price-ascending to easily spot new lowest prices.
Deliverable: A daily updated dataset showing current prices and discount percentages for a specified category or brand, highlighting products that have recently gone on sale or had their discount changed.
Stop condition: The discountPercent field is consistently missing or incorrect for products marked as onSale.
Use case 2: Market research
Outcome: Analyze supplement pricing and brand assortment
Configure: Use mode set to byCategory and select relevant categories like supplements or vitamins. Leave onSaleOnly as false initially to capture all products. Use maxItems to control the dataset size.
Working method: Start by collecting data across several broad categories. Analyze the distribution of price and brand values within each category. Look for brands that appear frequently or at specific price points. Experiment with minPrice and maxPrice to understand price segmentation.
Deliverable: A spreadsheet or database containing a comprehensive list of products, their prices, brands, and categories, allowing for quantitative analysis of the market landscape.
Stop condition: A significant number of records are missing key fields like brand, price, or productType, making assortment analysis unreliable.
Use case 3: Competitive intelligence
Outcome: Compare Vitacost pricing against other health retailers
Configure: For specific product comparisons, set mode to byHandles and provide the exact productHandles or URLs of the products you wish to compare. Otherwise, use byCategory and titleContains to find equivalent products.
Working method: Identify equivalent products on Vitacost and your competitor's site. Use byHandles for direct lookup when product URLs are known. For broader comparisons, use byCategory with titleContains or brandContains to gather data on similar products. Regularly compare the price and onSale status.
Deliverable: A comparison report or dashboard tracking the price and onSale status of specific products across Vitacost and other retailers, updated on a scheduled basis.
Stop condition: The Actor fails to return records for specific productHandles that are known to be live on Vitacost, preventing accurate direct product comparisons.
What breaks, and how do you design around it?
For larger keyword-based result sets, use byCategory mode with the titleContains filter instead. Similarly, relatedProducts also caps results at 10 per seed product; pass multiple productHandles to gather related items for several seeds in one run.
When should you not use Vitacost Scraper?
Do not use Vitacost Scraper if your core requirement is to collect customer ratings and reviews. Vitacost does not render review data in its public storefront markup, so rating/review counts are not reliably extractable without an authenticated, app-specific API. If your use case is to track health and beauty products from a different region, consider Actors like iHerb Scraper - Vitamins, Supplements & Health Products for global vitamin and supplement data, or Watsons Health & Beauty Scraper for Southeast Asian markets. This Actor is also not ideal for general e-commerce product tracking beyond health and wellness; for broader categories like sports gear, alternatives such as Wiggle Scraper or JD Sports Scraper may be more suitable.
What should you check before trusting the output?
- Check for records where
onSaleis true butdiscountPercentis zero, which indicates a data inconsistency. - Verify that
priceandcomparePricevalues are numerically sensible for products reported asonSale. - Inspect
badges[]for unexpected or malformed entries if you are usingbadgesAnyOffor filtering. - Confirm that
imageUrllinks are resolving correctly and returning actual images, not broken references. - If
includeUnavailableis false, ensure no products withavailableset to false are present in the output. - When using
relatedProducts, check thatrelatedToHandleandrelatedToUrlcorrectly point back to your seed products.
None of this proves a record is correct. It gives a scheduled Vitacost Scraper run defined points where it should stop instead of quietly passing bad data downstream.
Frequently asked questions
How much does Vitacost Scraper cost?
On Apify's free plan, Vitacost Scraper costs $0.005 per result, which is $5.00 for every 1,000 results. Apify also bills for platform usage, on top of these charges. Apify's free plan includes $5.00 of monthly prepaid platform usage, which covers up to 1,000 results of this Actor before run-start charges.
Why does keyword search only return up to 10 results?
This API caps relevance results at 10 by platform design. For larger keyword-filtered result sets, use byCategory mode combined with the titleContains input control.
Can I get customer ratings and reviews with this Actor?
No, customer ratings and reviews are not included in the output of Vitacost Scraper. Vitacost does not render review data in its public storefront markup, so rating and review counts are not reliably extractable without an authenticated, app-specific API.
What are 'badges' in the output, and how can I use them?
badges are promotional or private-label badges Vitacost attaches to a listing, such as Vitacost Brands (store brand) or SuperDeal (deep-discount promo). The badges[] output field shows these, and the badgesAnyOf input filter allows you to target products that carry at least one of these designations.
How can I track specific products by their URL or handle?
To track specific products, set the mode input control to byHandles and provide a list of product handles or full product URLs in the productHandles array. The Actor will then look up each of these products individually and return the current details.
Where to go next
When you are ready to run it, open Vitacost Scraper on Apify; the free plan covers up to 1,000 results a month.
Start with the Vitacost Scraper Actor page for the current input schema, pricing tier, and run history.
Other Actors we maintain for related data:
- iHerb Scraper - Vitamins, Supplements & Health Products: Scrape iHerb.com product listings and details.
- Watsons Health & Beauty Scraper: Scrape Watsons Asia health and beauty products across Singapore, Malaysia, and Hong Kong.
- Wiggle Scraper: Scrape Wiggle (wiggle.com) - cycling, running, swimming, and outdoor gear e-commerce.
- JD Sports Scraper: Scrape JD Sports UK (jdsports.co.uk) -- search or browse sneakers, streetwear, and sportswear by category or brand.
Related guides:
- Gymshark Scraper: 3 Practical Use Cases & Operational Playbooks
- Walgreens Scraper: 51 Data Fields, Up to 1,000 Free Results/Month
- Boohoo Fashion Scraper: 3 Practical Use Cases
- Gap Inc Scraper (Gap, Old Navy, Banana Republic, Athleta): Setup, Cost
- Open Food Facts Scraper: 37 Data Fields per Record (2026)
- United Real Estate Homes for Sale Scraper: 3 Practical Use Cases
- Shein Product Scraper: 14 Data Fields, Up to 2,500 Free Results/Month
- StockX Scraper: Three Practical Workflows
Resources
Actor documentation, input schema, and pricing: verified against the published Actor on 2026-10-06.
Actor last updated by its maintainers on 2026-07-13.
Run outcome figures cover the 30 day public window ending 2026-10-06.
Featured actors
Vitacost Scraper
Scrape vitamins, supplements, and health foods from vitacost.com. Browse by category, search by keyword, or look up specific products. Get price, sale price, brand, size, and stock status. No login, no proxy required.
Run on Apify ↗