Incidecoder Ingredients Scraper avatar

Incidecoder Ingredients Scraper

Pricing

from $2.34 / 1,000 item extracteds

Go to Apify Store
Incidecoder Ingredients Scraper

Incidecoder Ingredients Scraper

Search public INCIDecoder products and export complete ingredient lists, functions, explanations, ratings, and formulation flags.

Pricing

from $2.34 / 1,000 item extracteds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Export public INCIDecoder ingredients data as structured product records for formulation research. Search by product or brand, or supply exact product URLs. Each result includes product identity, brand, the ordered full ingredient list, normalized ingredient links, functions, explanations, aliases, disclosed irritancy and comedogenicity values, INCIDecoder ratings, and formulation flags.

Who is it for?

  • Cosmetic formulators comparing disclosed ingredient functions.
  • Product and category teams researching competing formulations.
  • Data analysts building normalized cosmetic ingredient datasets.
  • Researchers tracking source-disclosed formulation flags.
  • Catalog teams enriching known products with ordered ingredient details.

Why use this Actor?

The source presents valuable details across an overview, a comparison table, and expanded ingredient cards. This Actor joins those surfaces into one stable nested record. It preserves source order and normalized links, avoids loading product images, deduplicates products found through multiple inputs, and charges only for useful product rows.

What can you use it for?

  • Compare formulations across products or brands.
  • Build ingredient-function and product-flag datasets.
  • Enrich an existing cosmetic catalog from known INCIDecoder URLs.
  • Schedule repeat runs and compare datasets in your own database or automation.

Extracted data

FieldMeaning
productNameProduct name shown by the source.
brandProduct brand when disclosed.
productUrlCanonical INKEE Decoder product page.
descriptionSource product description.
uploadedAtSource-disclosed upload date.
imageUrlPublic product image URL, without downloading the image.
flagsFormulation flags such as alcohol-free.
ingredientCountNumber of ingredients in source order.
ingredientNamesSpreadsheet-friendly ordered names.
ingredientsFull normalized ingredient objects.
scrapedAtExtraction timestamp.

Getting started

  1. Open the Actor input page.
  2. Add a product or brand term under Product or brand searches.
  3. Optionally add exact public product URLs.
  4. Choose a product limit.
  5. Start the run.
  6. Open the Product results dataset view.
  7. Export JSON, CSV, Excel, XML, or connect the dataset API.

Input parameters

FieldDescription
searchQueriesProduct, brand, or formulation terms to search.
startUrlsExact public INCIDecoder product pages.
maxItemsMaximum product records (default 20, maximum 1,000).
maxRequestRetriesBounded transient retries from 0 to 5.

Provide at least one search query or product URL. Both modes deduplicate canonical product URLs and obey the same maxItems limit.

{
"searchQueries": ["CeraVe cleanser"],
"maxItems": 3
}

Output example

{
"productName": "Cleanser",
"brand": "CeraVe",
"productUrl": "https://inkeedecoder.com/products/cerave-cleanser",
"flags": ["alcohol-free", "fragrance & essentialoil-free"],
"ingredientCount": 22,
"ingredientNames": ["Purified Water", "Cocamidopropyl Hydroxysultaine", "Glycerin"],
"ingredients": [
{
"position": 1,
"name": "Purified Water",
"url": "https://inkeedecoder.com/ingredients/water",
"functions": ["solvent"],
"alsoCalled": ["Aqua", "Water"],
"irritancy": null,
"comedogenicity": null,
"rating": null
}
]
}

Output details

One default-dataset row represents one product. The nested ingredients array preserves source order and contains position, name, normalized url, functions, explanation, alsoCalled, irritancy, comedogenicity, and rating. Product fields include productName, brand, description, uploadedAt, imageUrl, flags, ingredientCount, ingredientNames, productUrl, and scrapedAt.

Missing source disclosures are returned as null or empty arrays rather than inferred.

How much does it cost to scrape INCIDecoder product ingredients?

Pay-per-event pricing has a $0.005 run start and a BRONZE product-result rate of $0.0039 per product. A run that returns 10 products emits 10 item events; a run that returns 100 emits 100 item events, in addition to the single start event. Higher usage tiers reduce the per-product rate. Failed, duplicate, and rejected pages are not charged as product results. Apify platform usage may also apply according to your plan.

Example workflows

Brand formulation scan

Search a brand and cap the result count for a bounded snapshot. Store each dated dataset in your warehouse and compare ingredient arrays between snapshots.

Exact catalog enrichment

Map your known product URLs into startUrls. Join returned rows to your catalog by productUrl, then index ingredientNames for filtering.

Function research

Flatten each nested ingredients array downstream. Group by functions, keeping productName, brand, and ingredient position as context.

Run with the API

cURL

curl -X POST "https://api.apify.com/v2/acts/automation-lab~incidecoder-cosmetic-products-ingredients/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"startUrls":[{"url":"https://incidecoder.com/products/cerave-cleanser"}],"maxItems":1}'

After completion, fetch items from the run's default dataset.

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/incidecoder-cosmetic-products-ingredients').call({
searchQueries: ['CeraVe cleanser'],
maxItems: 3,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/incidecoder-cosmetic-products-ingredients').call(
run_input={'searchQueries': ['CeraVe cleanser'], 'maxItems': 3}
)
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

MCP setup and prompts

Claude Code

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/incidecoder-cosmetic-products-ingredients"

Claude Desktop, Cursor, and VS Code

Add this MCP JSON configuration in the client's MCP settings:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/incidecoder-cosmetic-products-ingredients"
}
}
}

Example prompts:

  • "Run the INCIDecoder Actor for CeraVe cleanser and summarize ingredient functions."
  • "Extract these two INCIDecoder product URLs and compare formulation flags."
  • "Return a table of ingredient name, position, function, and rating for this product."

Integrations

Use the Apify MCP server to run this Actor from compatible AI clients. Scheduled Tasks, webhooks, Make, Zapier, Google Sheets, and database integrations can turn recurring runs into formulation-monitoring workflows.

Reliability and limitations

  • Only public INCIDecoder/INKEE Decoder product pages are supported.
  • Search exports products visible in the public source search response; it does not claim exhaustive catalog coverage.
  • Ratings, flags, functions, and explanations are source disclosures, not medical or safety advice.
  • The source can rename fields, redirect its domain, rate-limit requests, or remove pages. Transient retries are bounded.
  • The Actor does not bypass login, CAPTCHA, or private content.

Legality and responsible use

Scrape only public data and comply with INCIDecoder's terms, applicable laws, and your intended use. Avoid excessive request volume. Product and ingredient descriptions belong to their respective owners.

Troubleshooting

  • No records: check that an exact URL points to /products/... or broaden the search term.
  • Page not found: verify the product still exists publicly; redirects between INCIDecoder and INKEE Decoder are normalized automatically.
  • Temporary upstream error: retry later or increase maxRequestRetries within the supported bound.

Tips for reliable runs

  • Prefer exact product URLs when reproducibility matters.
  • Use specific search terms instead of a broad one-word query.
  • Keep maxItems close to the volume you actually need.
  • Schedule at a reasonable cadence and compare datasets downstream.
  • Treat missing ratings as missing source disclosure, not a negative rating.

FAQ

Does it return every ingredient?

Yes, it preserves the complete ingredient overview order shown on each successfully parsed product page.

Can I search and submit URLs together?

Yes. Results are deduplicated before extraction and capped by maxItems.

Does it assess ingredient safety?

No. It exports source-disclosed ratings and flags without producing medical, regulatory, or safety conclusions.

Explore other automation-lab Actors for product catalogs, public datasets, and research automation.