Incidecoder Ingredients Scraper
Pricing
from $2.34 / 1,000 item extracteds
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
Maintained by CommunityActor 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
| Field | Meaning |
|---|---|
productName | Product name shown by the source. |
brand | Product brand when disclosed. |
productUrl | Canonical INKEE Decoder product page. |
description | Source product description. |
uploadedAt | Source-disclosed upload date. |
imageUrl | Public product image URL, without downloading the image. |
flags | Formulation flags such as alcohol-free. |
ingredientCount | Number of ingredients in source order. |
ingredientNames | Spreadsheet-friendly ordered names. |
ingredients | Full normalized ingredient objects. |
scrapedAt | Extraction timestamp. |
Getting started
- Open the Actor input page.
- Add a product or brand term under Product or brand searches.
- Optionally add exact public product URLs.
- Choose a product limit.
- Start the run.
- Open the Product results dataset view.
- Export JSON, CSV, Excel, XML, or connect the dataset API.
Input parameters
| Field | Description |
|---|---|
searchQueries | Product, brand, or formulation terms to search. |
startUrls | Exact public INCIDecoder product pages. |
maxItems | Maximum product records (default 20, maximum 1,000). |
maxRequestRetries | Bounded 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 ApifyClientclient = 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().itemsprint(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
maxRequestRetrieswithin 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
maxItemsclose 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.
Related Actors
Explore other automation-lab Actors for product catalogs, public datasets, and research automation.