Ingredients Online Scraper — Bulk Ingredients & Stock
Pricing
from $0.79 / 1,000 product listings
Ingredients Online Scraper — Bulk Ingredients & Stock
Scrape Ingredients Online bulk wholesale ingredients by keyword, product, category, or factory. Export SKUs, pack sizes, public prices, US warehouse inventory, and seller factories for sourcing and monitoring.
Pricing
from $0.79 / 1,000 product listings
Rating
0.0
(0)
Developer
Andrej Kiva
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Ingredients Online scraper for B2B bulk wholesale ingredients — SKUs, pack sizes, public price ranges, US warehouse inventory, and seller factories as clean JSON.
| Actor | Role |
|---|---|
| Ingredients Online Scraper ◄── you are here | US bulk / nutraceutical ingredient catalog + stock |
| Europages Scraper | Broad EU B2B company directory |
| WLW Scraper | DACH B2B suppliers (Wer liefert was) |
Disclaimer: Unofficial Actor for publicly accessible Ingredients Online pages and APIs. Ingredients Online, GWI, and related names are trademarks of their respective owners. Not affiliated with, sponsored by, or endorsed by Ingredients Online / Global Warehouse Industries. Provided for informational and research purposes only. You are responsible for complying with applicable laws and Ingredients Online terms of use.
Need an Ingredients Online API alternative for procurement or competitive monitoring? This Actor scrapes the public Magento GraphQL catalog so you can export wholesale food additives, nutraceutical ingredients, vitamins, botanicals, and factory profiles with stock status and optional warehouse qty / lead times. Run from the Apify Console or automate with Python, Node.js, cURL, or MCP / AI assistants.
When to use this Actor
- Keyword search for bulk ingredients (coconut oil, whey protein, citric acid, botanical extracts, …)
- Catalog crawls of the full wholesale listing grid (
/products/and category pages) - Product enrichment — pack types, variants, public GraphQL price ranges, QC document labels
- US warehouse inventory — qty, location, lead time, restock date via the public warehouse API
- Factory / seller intelligence — manufacturer id + nested SKU lists
- Full factory directory with
scrapeAllFactories(~1.4k sitemap URLs)
When not to use this Actor
- VIP / logged-in-only pricing or QC PDF downloads — many files and some prices stay gated (
price.priceGatedis set when GraphQL withholds numbers) - Checkout, sample-request, or RFQ form automation
- Generic EU B2B company lookup — chain to Europages / WLW instead
- Recipe / grocery / barcode databases — wrong ICP for this Actor
Key Features
- Magento GraphQL search & catalog pagination (typically no headless browser)
- Product detail enrichment with pack variants and public price ranges
- Public warehouse inventory enrichment (US locations)
- Factory pages + sitemap factory dump
- Filters: in-stock only, max pages / page size
- Fast HTTP via
curl_cffiChrome TLS impersonation; proxy optional
Use Cases
| Use case | What you get | Why it helps |
|---|---|---|
| Ingredient sourcing | Matching SKUs + factory names | Build R&D / procurement shortlists |
| Price & stock monitoring | price + inventory on enriched products | Track US warehouse availability over time |
| Factory coverage | Factory profile + product list | Map who sells what on the marketplace |
| Catalog export | Paginated listing rows (~3k active SKUs) | Local research DB for nutraceuticals / food ingredients |
| Doc discovery | SDS / Spec / Allergen labels | See which SKUs publish QC documents publicly |
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQueries | Array | — | Keyword searches |
startUrls | Array | — | Product, factory, or catalog URLs |
scrapeAllFactories | Boolean | false | Crawl factories from sitemap |
maxItems | Integer | 50 | Max dataset rows |
maxPages | Integer | 1 | Max pages per search / catalog / factory product list |
pageSize | Integer | 20 | GraphQL page size (1–50) |
enrichProducts | Boolean | false | Listing → full product + inventory |
includeInventory | Boolean | true | Warehouse qty / lead times on products |
includeDocuments | Boolean | true | Detect QC document labels on PDPs |
includeFactoryProducts | Boolean | true | Nested products on factory records |
inStockOnly | Boolean | false | Filter search/catalog to IN_STOCK |
requestDelaySecs | Number | 0.4 | Delay between requests |
proxyConfiguration | Object | off | Optional Apify Proxy |
Input Example — search + product + factory
{"searchQueries": ["coconut oil"],"startUrls": ["https://www.ingredientsonline.com/food-additives/coconut-oil-cg/","https://www.ingredientsonline.com/factory/cargill/"],"maxItems": 25,"maxPages": 1,"enrichProducts": true,"includeInventory": true,"proxyConfiguration": {"useApifyProxy": false}}
Input Example — factory sitemap dump
{"scrapeAllFactories": true,"includeFactoryProducts": true,"maxItems": 100,"maxPages": 1}
Output
| Field | Type | Description |
|---|---|---|
recordType | String | listing | product | factory | error |
url | String | Canonical page URL |
productId / sku / name / slug | — | Product identifiers |
stockStatus | String | IN_STOCK / OUT_OF_STOCK |
factoryName / factorySlug / manufacturerId | — | Seller / factory refs |
price | Object | Public price range + priceGated flag |
packOptions / variants | Array | Package types and child SKUs |
inventory | Array | Warehouse locations, qty, lead time |
documentLabels | Array | SDS, Spec Sheet, Allergen, … |
categories | Array | Category tree |
products | Array | Nested SKUs on factory records |
searchQuery / page / resultsCount | — | Search context |
scrapedAt | String | ISO-8601 UTC |
Example product row
{"source": "ingredientsonline","recordType": "product","url": "https://www.ingredientsonline.com/food-additives/coconut-oil-cg/","productId": "33491","sku": "110079-CARGILL-99999","name": "Coconut Oil (CG 76) by Cargill","stockStatus": "OUT_OF_STOCK","factoryName": "Cargill","price": {"currency": "USD","lowest": 200,"highest": 200,"hasTier": true,"priceGated": false},"packOptions": [{"code": "pack_type","label": "Package Type","values": [{ "label": "420lb Drum", "valueIndex": 1583 }]}],"inventory": [{"sku": "110079-313-11162-99999","locations": [{"locationName": "GWI-Chino","qty": "0","leadTime": 0,"leadTimeUom": "days"}]}],"documentLabels": ["SDS", "Allergen Statement", "Spec Sheet", "Flow Chart", "Sample COA"],"scrapedAt": "2026-08-08T12:00:00+00:00"}
Integration examples
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('crawloop/ingredientsonline-scraper').call({searchQueries: ['whey protein'],maxItems: 20,enrichProducts: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient(token="YOUR_TOKEN")run = client.actor("crawloop/ingredientsonline-scraper").call(run_input={"searchQueries": ["whey protein"],"maxItems": 20,"enrichProducts": True,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["name"], item.get("sku"), item.get("stockStatus"))
cURL
curl "https://api.apify.com/v2/acts/crawloop~ingredientsonline-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"searchQueries":["citric acid"],"maxItems":10,"enrichProducts":true}'
MCP and AI assistants
Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call this Actor by its Store ID / name.
Example prompts:
- "Run Ingredients Online Scraper for coconut oil and return the top 20 SKUs with price and stock as JSON"
- "Scrape factory cargill on Ingredients Online and list nested products with warehouse inventory"
- "Crawl Ingredients Online factories via sitemap, then run Europages Scraper for the same company names in the EU directory"
Suite next step
After Ingredients Online SKUs and US warehouse stock, map the same suppliers in broader EU industrial directories with Europages Scraper or DACH coverage via WLW Scraper.
FAQ
Is this an Ingredients Online API?
There is no official public product API for most buyers. This Actor is an Ingredients Online scraper / API alternative over public GraphQL, HTML, sitemap, and warehouse endpoints.
Does this Actor log in?
No. Guest-accessible data only.
Why does the site say “Log in to see pricing” while some rows still have prices?
The storefront UI hides prices for guests, but Magento GraphQL often still returns price_range / custom_range. When values are withheld, price.priceGated is true and amounts may be zero.
Can I download SDS / Spec PDFs?
Document labels are detected on product pages. File downloads usually need a registered account and are out of scope.
How large is the catalog?
On the order of ~3k active products and ~1.4k factory pages (varies over time).
Do I need residential proxy?
Usually not for GraphQL catalog/search. Enable Apify Proxy only if you hit blocks.