ParseForge Scrapers

ChEMBL Assays Scraper

parseforge/chembl-assays-scraper

EducationAutomationIntegrations

Scrapes ChEMBL assay records by target ChEMBL ID, assay type, organism, keyword search, or direct assay ID. Returns each assay as a flat row with description, target, confidence score, and metadata.

Run this scraper See the API call
Total users
2
Monthly active
1
Total runs
85
Bookmarked
0
Rating
Not rated yet
Last modified
9 days ago

Overview

ParseForge

ChEMBL Assays Scraper

Scrape ChEMBL assay records by target, type, organism, or keyword, up to a million per run. Each assay comes with its description, target, confidence score, and full metadata. No API key required. Export to CSV, JSON, Excel, or XML.

The ChEMBL web interface is built for browsing one assay at a time, not for exporting filtered lists. This Actor reads the public assay listing directly, applies your filters as it goes, and returns every matching assay in a flat, analysis-ready row. You can pull a single assay by its ChEMBL ID, or sweep thousands of records for a target, organism, or assay type.

Who uses it What they scrape ChEMBL for
Computational chemists Building a local dataset of assays for a specific protein target to train predictive models.
Drug discovery researchers Filtering functional and binding assays for a target organism to prioritize screening cascades.
Bioinformaticians Pulling high-confidence assay IDs to feed into a downstream bioactivity normalization pipeline.
Data curators Exporting assay metadata by type and confidence score for integration into an internal data warehouse.

What it does

This Actor collects ChEMBL assay records by target ChEMBL ID, assay type, organism, keyword search, or direct assay ID, and returns each one as a flat row with its description, target, confidence score, and metadata.

  • ๐ŸŽฏ Target-driven collection: supply a target ChEMBL ID such as CHEMBL203 and get every assay linked to that target.
  • ๐Ÿ”ฌ Assay type filter: restrict results to Binding (B), Functional (F), ADMET (A), Physicochemical (P), Toxicity (T), or Unassigned (U) assays.
  • ๐Ÿงฌ Organism filter: limit results to a specific organism, e.g. Homo sapiens, so you only see assays run on your species of interest.
  • ๐Ÿ” Keyword search: free-text search across assay descriptions to find records mentioning a compound, method, or disease.
  • โœ… Confidence threshold: keep only assays with a confidence score at or above your chosen cutoff, from 0 to 9.
  • ๐Ÿ“Œ Single-assay lookup: paste an exact assay ChEMBL ID like CHEMBL1217643 to retrieve one record without paginating the full list.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with ChEMBL data

๐Ÿงช Build a target-specific assay dataset.

A computational chemist supplies a target ChEMBL ID and organism filter to pull all binding and functional assays for a kinase target, then exports the CSV to train an activity prediction model.

๐Ÿ“Š Audit assay confidence across a target class.

A bioinformatician sets a minimum confidence score of 7 and pulls all assays for a family of GPCR targets, discarding low-confidence records before downstream normalization.

๐Ÿ”Ž Find assays by method or disease keyword.

A drug discovery researcher searches for 'fluorescence polarization' across assay descriptions to locate all records using that readout technology, then filters by organism to keep only human assays.

๐Ÿ“‹ Export assay metadata for data curation.

A data curator pulls all ADMET assays for Homo sapiens with confidence score 5 or above and loads the flat CSV into an internal data catalog for cross-referencing with in-house results.

Why choose this scraper

What you get
No API key Reads the public ChEMBL assay listing directly, no registration or token management.
Fixed schema Every assay returns the same flat fields, ready for pandas, R, or Excel.
High-volume runs Collect up to a million assays in a single run with automatic pagination.
Target-focused Filter by target ChEMBL ID to build a target-specific assay corpus in minutes.

How it compares

This Actor focuses on assay-level metadata collection with flexible filtering, while the ChEMBL Bioactivity Normalizer & QC handles bioactivity record normalization and quality control.

Feature ParseForge ChEMBL Bioactivity Normalizer & QC
Scrapes assay metadata Yes Not listed
Filter by target ChEMBL ID Yes Not listed
Filter by assay type (B, F, A, P, T, U) Yes Not listed
Filter by organism Yes Not listed
Normalizes bioactivity values Not listed Yes
QC flags for ambiguous records Not listed Yes

Configure the run

Drive the Actor from a target ChEMBL ID, assay type, organism, keyword search, or a direct assay ID, alone or in combination, and filters run as each assay is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
 "maxItems": 10
}

A larger pull:

{
 "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

  1. Create a free Apify account with $5 in credit.
  2. Open the ChEMBL Assays Scraper.
  3. Set your inputs and any filters, then click Start.
  4. 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 ChEMBL 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/chembl-assays-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 filters are not too restrictive. Try removing the organism or confidence score filter, or broaden your keyword search. Also verify that your target ChEMBL ID is correct by looking it up on the ChEMBL website.

Why does my organism filter return zero assays?

The organism field requires an exact match. Use the spelling as it appears on ChEMBL, such as 'Homo sapiens' with a capital H and a space. Try running without the organism filter first to see what organism names appear in your results.

The run stopped before reaching my maxItems limit.

This means there are no more matching assays to collect. Your combination of filters may match fewer records than your requested maximum. Try relaxing one or more filters to broaden the result set.

I got an error when using an assay ChEMBL ID.

Ensure the ID is formatted correctly as CHEMBL followed by digits, such as CHEMBL1217643. If the ID is valid but still fails, the assay may have been deprecated or removed from ChEMBL. Verify the ID on the ChEMBL website.

Can I resume a run that timed out?

Apify runs cannot be resumed mid-way. If you hit a timeout, reduce the maxItems value or narrow your filters to collect fewer records per run, then run multiple smaller jobs if needed.

FAQ

Question Answer
Do I need a ChEMBL API key to use this scraper? No. This Actor reads the public ChEMBL assay listing pages directly, so no registration, API key, or authentication is required.
What is a ChEMBL assay ID and where do I find one? A ChEMBL assay ID looks like CHEMBL1217643 and appears in the URL of any assay page on the ChEMBL website. You can also find them by searching the ChEMBL interface and copying the ID from the results.
Can I filter assays by the protein target? Yes. Use the Target ChEMBL ID field with an ID like CHEMBL203 to return only assays linked to that specific target.
What does the confidence score mean? ChEMBL assigns each assay a confidence score from 0 to 9 that reflects how reliably the assay is linked to its target. A score of 7 or above indicates a direct, high-confidence link, while lower scores suggest indirect or inferred relationships.
How do I search for a specific assay type like Binding or Functional? Use the Assay type dropdown to select B for Binding, F for Functional, A for ADMET, P for Physicochemical, T for Toxicity, or U for Unassigned. The Actor will return only assays matching that type code.
Can I combine filters, like target and organism together? Yes. All input fields work together. For example, you can set a target ChEMBL ID, choose Homo sapiens as the organism, and set a minimum confidence score to narrow results to high-confidence human assays for that target.
How many assays can I scrape in one run? You can set the maximum up to 1,000,000 assays per run. The Actor handles pagination automatically and stops when it reaches your limit or exhausts the matching records.
What export formats are supported? Your dataset can be exported to CSV, JSON, Excel, or XML from the Apify platform after the run completes.
Does this Actor also scrape bioactivity data for each assay? No. This Actor scrapes assay-level metadata such as description, target, type, organism, and confidence score. For bioactivity data like IC50 or Ki values, use a dedicated bioactivity scraper or normalizer.
Is the organism filter case-sensitive? Yes. The organism filter expects an exact match as it appears in ChEMBL, such as 'Homo sapiens' or 'Mus musculus'. Check the ChEMBL website for the exact spelling used in assay records.

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 EMBL-EBI. 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

FieldTypeWhat it doesDefault
maxItems integer How many assays to collect per run. 10
assayChemblId string Exact assay id such as `CHEMBL1217643`. Skips list pagination. not set
targetChemblId string Filter by an exact target id such as `CHEMBL203`. not set
search string Free-text search across the assay description. not set
assayType string (7 options) ChEMBL assay type code (B Binding, F Functional, A ADMET, P Physicochemical, T Toxicity, U Unassigned). not set
organism string Exact organism filter, e.g. `Homo sapiens`. not set
minConfidenceScore integer Keep only assays with confidence score >= this value (0 to 9). not set

Pricing

from $7.50 per 1,000 results

Charged forWhat it isPrice 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.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~chembl-assays-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "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.

Related scrapers

Run ChEMBL Assays Scraper on Apify All scrapers