ECHA Europe Chemicals Scraper
parseforge/echa-europe-chemicals-scraper
AutomationIntegrations
Scrapes chemical substance records from the ECHA public database by name, CAS number, or EC number. Returns REACH registration, CLP classification, candidate list status, and physical properties as flat rows.
- Total users
- 5
- Monthly active
- 0
- Total runs
- 99
- Bookmarked
- 0
- Rating
- Not rated yet
- Last modified
- 8 days ago
Overview
ECHA Europe Chemicals Scraper
Scrape chemical substance data from ECHA's public database by name, CAS number, or EC number. Each record returns regulatory summaries, hazard classifications, physical properties, and identifiers. Export to CSV, JSON, Excel, or XML.
ECHA's website holds the EU's central chemical inventory, but manual lookups are slow when you need to screen hundreds of substances. This actor reads the public search results directly, takes a chemical name, CAS number, or EC number, and returns each match in a flat, consistent schema. No API key or registration is required.
| Who uses it | What they scrape ECHA for |
|---|---|
| Regulatory compliance officers | Check REACH registration status and hazard data for a list of substances. |
| Product safety specialists | Pull harmonised classification and labelling for safety data sheet authoring. |
| Environmental researchers | Gather persistent, bioaccumulative, and toxic (PBT) assessments across chemical groups. |
| Chemical procurement teams | Verify substance identity and regulatory obligations before sourcing. |
What it does
This Actor collects chemical substance records from the ECHA database by search term and returns each one as a flat row.
- ๐ Flexible search: Input a substance name, CAS number, or EC number to find the exact chemical you need.
- ๐ Regulatory snapshot: Each record includes REACH registration data, CLP classification, and candidate list status.
- โ๏ธ Scalable collection: Set a maximum number of chemicals to collect, from a single lookup to a million per run.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with ECHA data
๐ Screen a substance inventory for REACH compliance.
A compliance officer pastes a list of CAS numbers and runs the actor to flag any substance missing a registration dossier.
โ ๏ธ Populate safety data sheets with harmonised classifications.
A product safety specialist scrapes hazard and precautionary statements for a new formulation to draft Section 2 of the SDS.
๐ Monitor substances of very high concern (SVHC).
An environmental researcher collects the candidate list status for a set of chemicals to track regulatory risk in a supply chain.
๐ฌ Build a chemical property database for modelling.
A data scientist extracts physical properties and structural identifiers from ECHA to train a QSAR model.
Why choose this scraper
| What you get | |
|---|---|
| Regulatory data | REACH registration, CLP classification, and authorisation list status |
| Hazard information | Hazard statements, precautionary codes, and pictograms |
| Substance identity | CAS number, EC number, IUPAC name, and molecular formula |
| Physical properties | Boiling point, melting point, density, and appearance |
How it compares
No other Store actor targets ECHA the same way, so the honest comparison is with the alternatives teams actually weigh.
| ECHA Europe Chemicals Scraper | Build it in-house | By hand | |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When ECHA changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |
Configure the run
Drive the Actor with a chemical name, CAS number, or EC number, and set a maximum number of substances to collect per run. The Input tab lists every parameter.
A first run with the defaults:
{
"search": "benzene",
"maxItems": 10
}
A larger pull:
{
"search": "benzene",
"maxItems": 200
}
Pricing
Pay-per-result: $0.0085 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $0.85 |
| 1,000 results | $8.50 |
| 10,000 results | $85.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the ECHA Europe Chemicals Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to ECHA through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/echa-europe-chemicals-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check that your search term is spelled correctly and matches a substance name, CAS number, or EC number in ECHA's database. Try a shorter or more general term.
The actor returns fewer results than my maxItems setting.
ECHA's search may return fewer substances than your maximum if the term is specific. Try a broader search term to collect more records.
Some fields are empty in my dataset.
Not all substances have complete dossiers. Empty fields mean ECHA has not published that data for the substance. This is expected for less common chemicals.
The run times out on a large maxItems value.
Increase the run timeout in your Apify actor settings, or split your collection into multiple runs with smaller maxItems values.
I get an error when searching by CAS number.
Ensure the CAS number includes hyphens in the correct format, for example 71-43-2. ECHA's search expects the standard CAS notation.
FAQ
| Question | Answer |
|---|---|
| What search terms can I use? | You can search by chemical name, CAS number, or EC number. The actor passes your term directly to ECHA's public search and collects the results. |
| What data does each record contain? | Each record includes substance identifiers, REACH registration status, CLP hazard classification, candidate list status, and physical properties when available in the public dossier. |
| Do I need an ECHA account or API key? | No. This actor reads the publicly available information on the ECHA website, so no registration or API key is required. |
| How many chemicals can I collect in one run? | You set the maximum number of chemicals with the maxItems field. The actor can collect up to one million substances per run. |
| Can I scrape a list of CAS numbers all at once? | The actor accepts one search term per run. To process a list, run the actor once per term, or use Apify's task scheduling to iterate over a list of inputs. |
| Does it return the full dossier text? | The actor returns the structured summary data from the search results and substance overview pages, not the full dossier PDFs. |
| What export formats are supported? | You can export your dataset to CSV, JSON, Excel, or XML from the Apify platform. |
| Is the data in English? | ECHA publishes substance data in English. The actor returns the data as it appears on the public site. |
| How fresh is the data? | The actor reads the live ECHA website on each run, so you always get the latest published information. |
| Can I filter by regulatory status? | The actor collects all results for your search term. You can filter the exported dataset by REACH status, candidate list, or other fields after the run. |
Related actors
Browse the full ParseForge collection for more scrapers.
๐ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by European Chemicals Agency. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| search | string | Substance name, CAS number, or EC number. | benzene |
| maxItems | integer | How many chemicals to collect per run. | 10 |
Pricing
from $7.50 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| result | Single result in the default dataset. | $0.0075 to $0.0085 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~echa-europe-chemicals-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
No reviews yet. Be the first.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
