ParseForge Scrapers

UniProt Protein Sequence & Annotation Scraper

parseforge/uniprot-scraper

EducationDeveloper toolsBusiness

Scrapes UniProt protein entries by search query or accession and returns each one as a flat row with gene names, organism, sequence metadata, functional keywords, and optional full sequence string.

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

Overview

ParseForge

UniProt Protein Sequence & Annotation Scraper

Scrape protein sequences, annotations, and functional data from UniProt by search query or accession, up to a million entries per run. Every record returns gene names, organism, sequence length, molecular weight, subcellular location, and functional keywords. Export to JSON, CSV, Excel, or XML.

UniProt's website is built for manual browsing, not bulk retrieval. Downloading protein data for a whole family or organism means writing custom scripts, handling pagination, and parsing multiple data formats. This Actor reads the UniProt REST API directly, accepts the full UniProt query syntax, and returns every matching protein entry in one consistent flat schema. No API key registration required.

Who uses it What they scrape UniProt for
Bioinformaticians Fetching all reviewed human proteins for a proteome-wide analysis pipeline.
Drug discovery researchers Extracting target protein metadata, including function and subcellular location, for a candidate list.
Computational biologists Building a local dataset of protein sequences and annotations for a specific taxonomic group.
Academic labs Collecting protein entries by keyword, such as a disease association, for a literature review.

What it does

This Actor collects UniProt protein entries by search query or single accession and returns each one as a flat row with annotations, sequence metadata, and optional full sequence string.

  • ๐Ÿ”ฌ Full UniProt query syntax: filter by reviewed status, organism, gene name, keyword, subcellular location, evidence level, sequence length range, and more.
  • ๐Ÿงฌ Optional sequence string: toggle the full amino-acid sequence on or off. Sequence length and molecular weight are always included.
  • ๐Ÿ“„ Single accession mode: supply one UniProt accession to fetch a specific entry, bypassing the search query.
  • ๐Ÿ“Š Flat row output: each protein returns as one row with gene names, organism, functional keywords, and computed properties.

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

What you can do with UniProt data

๐Ÿงช Build a human proteome dataset.

A bioinformatician runs the query 'reviewed:true AND organism_id:9606' to collect all Swiss-Prot human proteins with their gene names, sequences, and functional annotations for downstream analysis.

๐Ÿ’Š Screen drug targets by subcellular location.

A drug discovery researcher filters for 'cc_subcellular_location:nucleus' to identify nuclear proteins as potential targets and exports the list with molecular weights and functional keywords.

๐Ÿญ Collect mouse proteins in a size range.

A computational biologist uses 'taxonomy_id:10090 AND length:[100 TO 500]' to gather all mouse proteins between 100 and 500 amino acids for a structural study.

๐Ÿ”Ž Retrieve a single entry by accession.

A researcher supplies the accession 'P00533' to fetch the full annotated record for EGFR, including its sequence, gene name, and functional description.

Why choose this scraper

What you get
No API key Reads the public UniProt REST API with no registration or key management.
Full query power Supports the complete UniProt query field syntax for precise filtering.
Sequence control Fetch only the metadata you need, or include the full sequence string when required.
Scalable Retrieve up to a million protein entries in a single run for paid users.

How it compares

Two other UniProt scrapers exist on Apify. This Actor differentiates by supporting the full UniProt query syntax, optional sequence string toggling, and a higher maximum item count for paid users.

Feature ParseForge UniProt Protein Scraper - Sequences, Genes & Function UniProt Proteins Scraper - Protein Metadata
Full UniProt query syntax Yes Not listed Not listed
Single accession fetch Yes Yes Not listed
Full amino-acid sequence string Optional toggle Yes Not listed
Subcellular location filter Yes Not listed Not listed
Max items per run (paid) 1,000,000 Not listed Not listed
No API key required Yes Yes Not listed

Configure the run

Drive the Actor from a UniProt query string or a single accession, and set a maximum item count to control the size of your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "query": "reviewed:true AND organism_id:9606",
  "maxItems": 10,
  "fetchSequence": false,
  "pageSize": 500
}

A larger pull:

{
  "query": "reviewed:true AND organism_id:9606",
  "maxItems": 200,
  "fetchSequence": false,
  "pageSize": 500
}

Pricing

Pay-per-result: $0.0375 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $3.75
1,000 results $37.50
10,000 results $375.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 UniProt Protein Sequence & Annotation 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 UniProt 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/uniprot-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check your query syntax. UniProt queries use a specific field format like 'gene:BRCA1' or 'organism_id:9606'. A typo or invalid field name will return zero matches. Test your query on the UniProt website first to confirm it returns results.

Why is my run limited to 10 items?

Free Apify accounts are capped at 10 items as a preview. Upgrade to a paid plan to increase the limit up to 1,000,000 proteins per run.

Why is the sequence field empty?

The full amino-acid sequence is only included when you set 'Include Sequence String' to true. By default, this option is off to keep response sizes smaller. Sequence length and molecular weight are always returned.

Why does my query with special characters fail?

Some characters in UniProt queries, like square brackets for ranges, need to be URL-encoded when passed via HTTP. The Actor handles this encoding for you, but if you are using the API directly, ensure your query string is properly escaped.

Why is the run slow for large queries?

The Actor paginates through results at up to 500 entries per request, which is UniProt's maximum page size. Large queries with hundreds of thousands of results will take time proportional to the total count. Reduce your result set with more specific query filters to speed it up.

FAQ

Question Answer
Do I need a UniProt API key? No. This Actor reads the public UniProt REST API endpoints that do not require authentication or an API key.
What query syntax can I use? The Actor accepts the full UniProt query field syntax. You can filter by reviewed status, organism ID, gene name, keyword, subcellular location, evidence level, sequence length, and many other fields. See the UniProt query fields documentation for the complete list.
Can I fetch the full amino-acid sequence? Yes. Set the 'Include Sequence String' option to true, and the full sequence will be embedded in every record. When off, you still get the sequence length and molecular weight.
How many proteins can I scrape in one run? Free users are limited to 10 items as a preview. Paid Apify users can set a maximum up to 1,000,000 proteins per run.
Can I fetch a single protein by its accession number? Yes. Supply an accession like 'P00533' in the accession field, and the Actor will return that one entry, ignoring any search query.
What output formats are supported? You can export your dataset to JSON, CSV, Excel, or XML from the Apify platform.
Does this scrape the UniProt website? No. It calls the official UniProt REST API programmatically, which is the recommended way to retrieve data in bulk.
What organism IDs should I use? Use NCBI taxonomy IDs. For example, 9606 for human, 10090 for mouse, 10116 for rat, and 559292 for yeast. You can find these on the NCBI Taxonomy website.
Can I filter for only Swiss-Prot reviewed entries? Yes. Include 'reviewed:true' in your query to restrict results to the manually annotated Swiss-Prot section of UniProtKB.
Is the sequence length always returned? Yes. Sequence length and molecular weight are always included in every record, regardless of whether you enable the full sequence string.

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 UniProt Consortium. 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
query string UniProt query syntax. Examples: - reviewed:true AND organism_id:9606: human Swiss-Prot proteins - keyword:KW-0181: collagen - gene:BRCA1: by gene name - cc_subcellular_location:nucleus: by subcellular location - existence:1: evidence at protein level - taxonomy_id:10090 AND length:[100 TO 500]: mouse 100โ€“500aa proteins See https://www.uniprot.org/help/query-fields for the full field list. Ignored when an accession is supplied. reviewed:true AND organism_id:9606
accession string Fetch one specific entry by UniProt accession (e.g. P00533). Bypasses the search query when set. not set
maxItems integer Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000 10
fetchSequence boolean Embed the full amino-acid sequence string in every record. Off by default, the sequence length and molecular weight are always returned regardless. false
pageSize integer Entries per API request (UniProt max 500). 500

Pricing

from $28.12 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.02812 to $0.0375

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~uniprot-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 UniProt Protein Sequence & Annotation Scraper on Apify All scrapers