Ingredients Online Scraper — Bulk Ingredients & Stock avatar

Ingredients Online Scraper — Bulk Ingredients & Stock

Pricing

from $0.79 / 1,000 product listings

Go to Apify Store
Ingredients Online Scraper — Bulk Ingredients & Stock

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

Andrej Kiva

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Ingredients Online scraper for B2B bulk wholesale ingredients — SKUs, pack sizes, public price ranges, US warehouse inventory, and seller factories as clean JSON.

ActorRole
Ingredients Online Scraper ◄── you are hereUS bulk / nutraceutical ingredient catalog + stock
Europages ScraperBroad EU B2B company directory
WLW ScraperDACH 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.priceGated is 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_cffi Chrome TLS impersonation; proxy optional

Use Cases

Use caseWhat you getWhy it helps
Ingredient sourcingMatching SKUs + factory namesBuild R&D / procurement shortlists
Price & stock monitoringprice + inventory on enriched productsTrack US warehouse availability over time
Factory coverageFactory profile + product listMap who sells what on the marketplace
Catalog exportPaginated listing rows (~3k active SKUs)Local research DB for nutraceuticals / food ingredients
Doc discoverySDS / Spec / Allergen labelsSee which SKUs publish QC documents publicly

Input Parameters

ParameterTypeDefaultDescription
searchQueriesArrayKeyword searches
startUrlsArrayProduct, factory, or catalog URLs
scrapeAllFactoriesBooleanfalseCrawl factories from sitemap
maxItemsInteger50Max dataset rows
maxPagesInteger1Max pages per search / catalog / factory product list
pageSizeInteger20GraphQL page size (1–50)
enrichProductsBooleanfalseListing → full product + inventory
includeInventoryBooleantrueWarehouse qty / lead times on products
includeDocumentsBooleantrueDetect QC document labels on PDPs
includeFactoryProductsBooleantrueNested products on factory records
inStockOnlyBooleanfalseFilter search/catalog to IN_STOCK
requestDelaySecsNumber0.4Delay between requests
proxyConfigurationObjectoffOptional 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

FieldTypeDescription
recordTypeStringlisting | product | factory | error
urlStringCanonical page URL
productId / sku / name / slugProduct identifiers
stockStatusStringIN_STOCK / OUT_OF_STOCK
factoryName / factorySlug / manufacturerIdSeller / factory refs
priceObjectPublic price range + priceGated flag
packOptions / variantsArrayPackage types and child SKUs
inventoryArrayWarehouse locations, qty, lead time
documentLabelsArraySDS, Spec Sheet, Allergen, …
categoriesArrayCategory tree
productsArrayNested SKUs on factory records
searchQuery / page / resultsCountSearch context
scrapedAtStringISO-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 ApifyClient
client = 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.