# UniProt Search Not Working: Causes and Fixes

The single most common reason a UniProt search "fails" is not an outage. It is a query that looks correct but asks the search engine for something slightly different from what you mean, usually a missing field qualifier, a missing `review:true` filter, or an identifier typed into the wrong box. The second most common cause in 2025 and 2026 is structural: UniProtKB has been through a multi-stage reorganization of its protein space between releases 2025_04 and 2026_02, moving tens of millions of unreviewed entries out of UniProtKB and into UniParc, the underlying sequence archive [1]. A search that worked against release 2025_03 can legitimately return nothing today, and no amount of syntax tweaking will bring those entries back into UniProtKB results.

This guide covers [how to use UniProt search](/knowledge/bioinformatics/how-to-use-uniprot-search) correctly, why searches break, a troubleshooting table you can work through top to bottom, and concrete fixes for both the website and the REST API. The goal is a practical UniProt database tutorial organized around failure modes, so you can go from "this returned zero results" to a diagnosis in minutes.

## How UniProt Search Actually Works

A quick primer makes every later fix easier to understand. The UniProt resource has several distinct databases, and the search box behaves differently in each one.

**UniProtKB** (the UniProt Knowledgebase) is the annotated [protein database](/blog/guides/protein-database), split into two sections:

- **Swiss-Prot** contains reviewed entries, meaning each one has been examined and annotated by expert curators. Every reviewed entry has a stable accession (for example, P04637 for human p53) and an entry name (TP53_HUMAN).
- **TrEMBL** contains unreviewed entries, which are computationally annotated and not manually verified. TrEMBL historically held the vast majority of the protein space, including metagenomic assemblies, draft genomes, and strain-level variants.

**UniParc** is the UniProt Archive, a non-redundant store of every [protein sequence](/blog/guides/protein-sequence) UniProt has ever processed. UniParc entries carry UPI identifiers (for example, UPI0000000001), not accessions, and they carry no annotations. When a UniProtKB entry is merged, deleted, or, in the current reorganization, deliberately moved out of UniProtKB, its sequence remains in UniParc.

**UniRef** sets (UniRef100, UniRef90, UniRef50) are clustered, sequence-identity based reference sets built from UniProtKB and UniParc. UniRef100 clusters collapse identical sequences and merging fragments, which is why a UniRef100 search can still surface a sequence whose individual UniParc record is buried.

**Proteomes** are the complete protein sets for a taxon, usually derived from a reference genome assembly.

The main search box on the UniProt website runs a full-text search across annotations. To search a specific field, you append a colon and a qualifier, for example `gene:BRCA1` or `organism_id:9606`. Field names are lowercase. Boolean operators `AND`, `OR`, and `NOT` combine clauses, and double quotes force exact phrase matching, for example `protein_name:"DNA polymerase"`. The `review:true` qualifier restricts results to Swiss-Prot, and `review:false` restricts to TrEMBL. If any of that syntax is off, the search either silently returns zero rows or returns a result set much broader or narrower than intended, which is exactly what "UniProt search not working" looks like in practice.

## Quick Diagnostic Sequence for a Broken Search

![Decision path that tests a control accession first, then checks identifier type and UniParc before blaming the service.](/article-images/illustrations/uniprot-search-not-working-diagnostic-triage.webp)

Run this sequence in order. It takes under ten minutes and separates a syntax problem from a data problem from a service problem.

1. **Test the service with a known-good query.** Open a private browser window and search for `accession:P04637`. If that returns the human p53 entry, the service is up and the problem is your query or your target entry.
2. **Strip the query down to one clause.** Take your full query and run only the most selective single clause, for example `gene:BRCA1`. If that works, add clauses back one at a time to find the one that breaks the search. This catches unbalanced quotes, missing parentheses, and misspelled qualifiers.
3. **Check your identifier type.** A gene symbol is not an accession is not an entry name. P04637 is an accession, TP53_HUMAN is an entry name, and TP53 is a gene name. Searching `TP53_HUMAN` as a full-text term can behave differently from searching `accession:TP53_HUMAN`, which itself fails because that string lives in the identifier field, not the accession field.
4. **Ask whether the entry should still be in UniProtKB.** If your target is an unreviewed entry, especially from a metagenome, an uncultured organism, or a strain-level genome, check UniParc directly. During the 2025_04 through 2026_02 reorganization, 125.9 million entries that were last present in UniProtKB in 2025 moved into UniParc-only representation [1].
5. **Check the API the same way.** If the website works but your script does not, repeat the query with `curl` against `https://rest.uniprot.org/uniprotkb/search`. This separates a browser problem from an API problem and gives you the raw HTTP status code.
6. **Check release notes and dates.** If your search worked last month and fails today, look at which UniProt release is current. The reorganization stages landed across releases 2025_04 through 2026_02, so results can change between consecutive releases [1].

## Troubleshooting Table

| Symptom | Likely cause | How to confirm | Fix |
|--|--|--|--|
| Zero results for a protein you know exists | Identifier type mismatch, or missing field qualifier | Search `accession:P04637` as a control, then try your identifier in the ID mapping tool | Use the correct qualifier, for example `gene:TP53` or `accession:P04637`, or map identifiers with the UniProt ID mapping service |
| Zero results for an unreviewed entry that existed before 2025 | Entry moved from UniProtKB to UniParc during the reorganization [1] | Copy the sequence and BLAST it against UniParc, or search UniParc by UPI | Search UniParc, or query UniRef100, or pull the sequence from the source proteome or genome record |
| Far fewer results than an older analysis returned | Reorganization removed or moved unreviewed entries lacking designated biologically important data [1] | Compare your result count to a stored older result, and check which release you are querying | Restrict your workflow to retained content (Swiss-Prot, reference proteomes, entries with structures), or fetch legacy sequences from UniParc |
| Results are overwhelmingly low-quality duplicates | Missing `review:true` filter | Check whether hits include near-identical unreviewed entries | Add `review:true` to the query |
| Boolean query returns nonsense or errors | Operator precedence, unbalanced quotes, missing parentheses | Run each clause alone, then recombine with explicit parentheses | Wrap each clause in parentheses, for example `(gene:BRCA1 OR gene:BRCA2) AND review:true` |
| Website returns errors, hangs, or times out | Server load, maintenance, or browser cache corruption | Test `accession:P04637` in a private window and a second browser | Clear cache, retry later, or use the REST API, which is designed for programmatic load |
| Old bookmark returns a 404 | Website restructure changed URL patterns | Compare the failing URL with a URL generated by performing the search fresh | Rebuild the query in the site UI and bookmark the generated URL, and use `rest.uniprot.org` for API calls |
| API returns HTTP 200 but zero results while the website works | Query string encoding problem, or field name typo | Print the exact URL your code built and paste it into a browser | URL-encode spaces as `+` or `%20`, and verify each qualifier against current API documentation |
| Download stops partway through | Browser-based download limits on large result sets | Compare the on-screen result count with the rows in the file | Use the `uniprotkb/stream` endpoint, which streams all results without pagination |
| Sequence similarity search sits in the queue for hours | Shared web BLAST service is busy | Check whether your job status changes over time | Run the search locally with a tool such as MMseqs2, which is substantially faster than BLASTP at archive scale [2] |
| Downstream proteomics pipeline fails against a "UniProt" reference database | Local reference file is stale relative to the current release, or the release pruned entries your spectra match | Check the release date embedded in your local FASTA | Regenerate the local database from the current release, and record the release number in your methods |

## Causes of UniProt Search Failure, From Most Common to Rarest

### 1. Query Syntax Errors

This is the top cause and the easiest to fix. UniProt's search parser is strict about qualifiers.

Common syntax mistakes:

- **Missing colon or wrong field name.** `gene BRCA1` is a full-text search for two words, not a gene field query. `GENE:BRCA1` fails because field names are lowercase.
- **Unquoted multi-word phrases.** `protein_name:DNA polymerase` is parsed as a protein_name search for "DNA" followed by a full-text search for "polymerase". Write `protein_name:"DNA polymerase"`.
- **Assuming implicit AND.** Write operators explicitly. `BRCA1 BRCA2` is a full-text search for entries containing either term as text, not the intersection you may have intended.
- **Forgetting Boolean precedence.** `review:true AND gene:A OR gene:B` groups as `(review:true AND gene:A) OR gene:B`, returning every gene B entry regardless of review status. Parenthesize: `review:true AND (gene:A OR gene:B)`.
- **Searching an entry name in the accession field.** `accession:TP53_HUMAN` returns nothing because TP53_HUMAN is an entry name, not an accession.

The fastest fix is the one-clause test from the diagnostic sequence. Most "broken" searches resolve after adding quotes or parentheses and correcting a qualifier.

### 2. Identifier Confusion and ID Mapping Failures

Bioinformatics workflows constantly shuffle between gene symbols, UniProtKB accessions, entry names, Ensembl IDs, RefSeq accessions, and UniParc UPIs. These are different identifier systems with different coverage, and searches fail when the wrong type lands in the search box.

The UniProt ID mapping service handles conversion. You supply a list of identifiers, declare the source database (for example, Gene_Name or RefSeq), and declare the target (UniProtKB). The service returns mapped UniProt accessions with a mapping score reflecting how unambiguous the mapping is. Two practical rules:

- A one-to-many mapping means your source identifier matched several UniProt entries. Do not silently take the first row, because gene symbols in particular are ambiguous across organisms.
- A zero-result mapping is itself information. It usually means the identifier is outdated, species-mismatched, or refers to a sequence that no longer carries an active UniProtKB accession, which brings us to the reorganization.

### 3. The UniProtKB Reorganization and the Moving Target of Search Results

![Calculation subtracting 58.9 million entries designated for removal from 200.0 million retained entries to reach 141.2 million.](/article-images/illustrations/uniprot-search-not-working-reorganization-counts.webp)

This is the cause that caught many pipelines off guard starting in late 2025, and it is structural rather than cosmetic.

UniProtKB underwent a major, multi-stage reorganization of its protein space implemented from release 2025_04 through release 2026_02 [1]. In an analysis of UniProtKB and UniParc records accessed on 20 January 2026, 125.9 million entries were last present in UniProtKB in 2025 and are now represented in UniParc, while about 200.0 million entries remained in UniProtKB. Of the retained entries, 58.9 million were designated for removal in release 2026_02, leaving 141.2 million classified as retained [1].

The reorganization keeps:

- All reviewed UniProtKB/Swiss-Prot entries, the expert-curated subset
- Proteins from selected reference proteomes
- Unreviewed entries that carry additional biologically important data, including experimentally determined three-dimensional structures [1]

The stated goals are reduced redundancy, easier navigation, and a protein set that is more tractable for annotation and routine searches [1]. The cost falls on the edge of the database. Visibility is reduced for protein sequences from uncultured microorganisms and metagenomic surveys, for phylogenetically underrepresented lineages, particularly many archaeal groups, for proteins of the so-called dark proteome, and for strain-level variants of well-studied species such as Escherichia coli [1].

For troubleshooting purposes, this explains a specific and now common failure signature: **your query returns nothing, your syntax is correct, and the sequence is not gone from UniProt entirely, it is only gone from UniProtKB.** The sequences themselves persist in UniParc, so nothing is irretrievably lost, but searches restricted to UniProtKB will not find them [1].

How to fix a search broken by the reorganization:

- **Search UniParc by sequence.** Copy your protein sequence into the UniParc sequence search. UniParc returns the UPI identifier and lists any cross-references to other databases.
- **Use UniRef100.** If an exact UniParc hit is hard to identify directly, a UniRef100 cluster query can surface the sequence through its cluster representative.
- **Pull from the source.** For metagenomic or strain-specific sequences, go back to the submitting proteome or genome record, which may sit in the linked nucleotide or assembly resources rather than in UniProtKB.
- **Restructure the query to match retained content.** If your workflow needs a stable, well-annotated protein set, the reorganized UniProtKB is actually easier to work with. Anchor queries to `review:true`, to reference proteome accessions, or to entries with structural data rather than to exhaustive TrEMBL coverage [1].

### 4. Service Load, Maintenance, and Browser Problems

Sometimes the search engine itself is the problem. Symptoms include timeout errors, a search that hangs indefinitely, or a UI that renders but returns errors. Confirm the service is healthy by searching a control accession such as `accession:P04637` in a private window. If the control works, the service is fine. If the control also fails, the issue is server-side or browser-side.

- Clear cache and cookies for the UniProt domain, because stale JavaScript from an earlier website version is a known source of broken UI behavior after site updates.
- Try a different browser to rule out an extension or cached asset problem.
- Retry during a lower-traffic period. Heavy shared services, especially the web BLAST queue, slow down when many users submit large jobs simultaneously.
- For anything scripted, prefer the REST API over web scraping. The API endpoints at `rest.uniprot.org` are built for programmatic use and isolate you from front-end changes.

### 5. Programmatic Access Failures

When a script reports that UniProt search is not working, the usual culprits are URL encoding, pagination, and changed endpoints.

The current REST search endpoint pattern is:

```
https://rest.uniprot.org/uniprotkb/search?query=<query>&fields=<fields>&format=<format>&size=<size>
```

A minimal, correct example that returns human BRCA1 reviewed entries as TSV:

```
curl "https://rest.uniprot.org/uniprotkb/search?query=reviewed:true+AND+gene:BRCA1+AND+organism_id:9606&format=tsv&fields=accession,id,protein_name"
```

Frequent programmatic failure modes:

- **Unencoded spaces.** Spaces inside a query must be encoded as `+` or `%20`. A raw space in a URL can produce a silent empty result or a malformed request error.
- **Assuming one response contains everything.** The search endpoint paginates. If you request `size=25` and treat one page as the full result set, your "empty-looking" output is really just page one, or, if you mishandle the cursor link, nothing after it. Follow the `Link` response header, which contains the next cursor, until it is absent.
- **Wrong endpoint for large downloads.** For complete result sets, use `uniprotkb/stream` with the same query parameters. The stream endpoint bypasses pagination entirely.
- **Assuming the website URL and the API URL are interchangeable.** The human-facing site and the REST API are separate systems. When the site is under maintenance, the API often still answers, and vice versa.

A compact Python pattern for paginated retrieval:

```python
import requests

url = "https://rest.uniprot.org/uniprotkb/search"
params = {
    "query": "reviewed:true AND organism_id:9606 AND go:0005634",
    "fields": "accession,id,protein_name,organism_name",
    "format": "tsv",
    "size": "500",
}

rows = []
while url:
    r = requests.get(url, params=params, timeout=60)
    r.raise_for_status()
    if rows == []:
        rows.append(r.text.splitlines())  # header
    lines = r.text.splitlines()[1:]
    rows.extend(lines)
    url = r.links.get("next", {}).get("url")  # follow cursor
    params = None  # next URL already contains query parameters

print(len(rows) - 1, "entries retrieved")
```

The key detail is following `r.links["next"]` until it disappears. Scripts that stop after the first page undercount, and scripts that hardcode a single URL from a browser session often contain parameters the API does not accept.

### 6. Bulk Retrieval and ID Mapping Job Failures

Bulk ID mapping is asynchronous. You submit a job, poll for completion, then download results. Failures come from three places:

- **Polling too fast or quitting too early.** Large jobs take minutes. Check the job status endpoint until it reports a completed state before attempting the download.
- **Requesting an unsupported field combination.** If the download format does not include the fields you need, the results look empty even though the mapping succeeded.
- **Feeding mixed identifier types into one job.** A file containing both accessions and gene symbols will partially fail. Split by type and run separate jobs.

### 7. Local Database Staleness in Downstream Pipelines

A special case deserves its own section, because it surfaces as "UniProt search not working" inside tools rather than on the website. Any local resource derived from UniProt goes stale. For example, DigestedProteinDB, a key-value database of in silico digested peptides built from UniProtKB/Swiss-Prot and TrEMBL sequences, was constructed from 252 million UniProtKB protein sequences yielding 5.9 billion tryptic peptides, requiring roughly 250 GB of disk and 16 GB of RAM and about two days to build, with median mass-range query latency near 7 ms [3]. A proteomics search engine pointed at a peptide database built from a pre-reorganization release will not match spectra against entries that the reorganization moved or removed, and results will diverge from a search run against the current release [1][3].

The fix is release discipline. Regenerate local resources after major releases, record the release number with every result, and treat a mismatch between your local database version and the live UniProt release as a first-class suspect when searches disagree between systems.

### 8. Sequence Similarity Search Bottlenecks

When the web BLAST service is slow, local alternatives solve both the queue and the reproducibility problem. PDBe-SIFTS, the open-source pipeline that maps UniProt Knowledgebase sequences to [Protein Data Bank](/blog/guides/protein-data-bank) structures, replaced BLASTP with MMseqs2 for its archive-scale searches. On the complete Protein Data Bank archive, MMseqs2 reduced UniProtKB search time from hours to minutes, roughly 22 to 36 times faster than BLASTP, while recovering curated mappings at top rank in 93.1 percent of cases [2]. The remaining discrepancies involved genuinely ambiguous biological cases such as highly conserved proteins, chimeric constructs, and close orthologs [2].

The practical takeaway is that a slow or unresponsive web similarity search is not a dead end. MMseqs2-based local searching is fast enough to run against UniProt-scale data on ordinary hardware and produces results you can cite by version, which the shared web service cannot guarantee.

## Worked Fixes: From Zero Results to a Working Query

### Fix 1, Find a Protein Whose Entry Has Moved

Suppose you previously retrieved an unreviewed entry for a metagenomic protein and the same accession now returns nothing in UniProtKB.

1. Copy the protein sequence in FASTA format.
2. On the UniProt site, run a sequence search against UniParc rather than UniProtKB.
3. Record the UPI identifier returned.
4. If you need annotations, check the cross-references listed on the UniParc entry, and check whether a related reviewed entry now covers the same protein family. The reorganization's logic is that many unreviewed duplicates are better represented by a retained curated or reference-proteome entry [1].
5. If the sequence exists only as the UniParc record, download it from there and treat UniParc as the canonical source in your workflow, documenting the UPI.

### Fix 2, Repair a Boolean Query

Take a query that returned nonsense:

```
reviewed:true AND gene:BRCA1 OR organism_name:"Homo sapiens"
```

Parsed as written, this returns reviewed BRCA1 entries plus every human entry. Rewritten with explicit grouping:

```
reviewed:true AND (gene:BRCA1 OR gene:BRCA2) AND organism_name:"Homo sapiens"
```

Test each parenthesized clause independently before recombining. This habit alone resolves a large share of "UniProt search not working" reports.

### Fix 3, Retrieve All Results Instead of One Page

A common report is that an API search "only returns some results" or "misses entries". The search endpoint paginates by default. Two correct patterns:

- **Cursor pagination.** Read the `Link` header from each response and follow the `next` URL until it is absent. The Python example above implements this.
- **Stream download.** Replace `search` with `stream` in the path:

```
curl "https://rest.uniprot.org/uniprotkb/stream?query=reviewed:true+AND+organism_id:9606&format=tsv&fields=accession,id,protein_name" -o human_reviewed.tsv
```

The stream endpoint returns every matching entry in one response, which is what bulk workflows should use.

### Fix 4, Rebuild a Local Reference Database After a Release Change

If a proteomics or similarity-search pipeline suddenly misses hits that it found before:

1. Identify the release your local database was built from.
2. Regenerate the local resource from the current release, whether that is a FASTA file, a formatted BLAST database, or a specialized store such as the digested-peptide key-value design described above [3].
3. Re-run a small positive-control search, for example a well-annotated Swiss-Prot protein, to confirm the rebuilt resource answers queries correctly.
4. Record the release number in your analysis metadata so future mismatches are diagnosable.

## Common Mistakes and Limitations

- **Treating zero results as evidence of absence.** After the reorganization, absence from UniProtKB no longer means absence from UniProt. Search UniParc before concluding a sequence is unavailable, since the sequences persist there even when UniProtKB visibility ends [1].
- **Confusing UniParc UPIs with UniProtKB accessions.** A UPI identifies a sequence in the archive and carries no annotation. Citing a UPI where a reviewer expects a UniProtKB accession will read as an error. Know which identifier system your result came from.
- **Using unreviewed TrEMBL entries for annotation-heavy conclusions.** Unreviewed entries are computationally annotated. If your conclusion depends on annotation quality, restrict to `review:true` and say so in your methods.
- **Not recording the release number.** UniProt changes with every release, and the 2025_04 through 2026_02 window changed the searchable protein space dramatically [1]. A result without a release number cannot be reproduced reliably.
- **Scraping the website HTML instead of using the API.** Front-end markup changes without warning, and scraping violates the spirit of the service. The REST API exists precisely for programmatic access and is the supported interface.
- **Assuming the API and the website will always agree.** They can behave differently during maintenance windows and they paginate differently. When results disagree, run the same query by hand on both and compare counts.
- **Interpreting structural mappings uncritically.** Even automated sequence-structure mapping recovers curated mappings at top rank in only about 93 percent of archive-scale cases, with residual ambiguity concentrated in conserved proteins, chimeric constructs, and close orthologs [2]. Treat automated mappings as strong evidence, not ground truth.

One limitation on scope: this article addresses database mechanics and troubleshooting, not the biological interpretation of any specific result. Individual analyses require domain judgment about the organisms, proteins, and annotation evidence involved.

## Prevention Practices

- **Pin release versions in your workflow.** Store the UniProt release identifier alongside every downloaded dataset and local database build. This converts "the search changed" into a checkable fact.
- **Prefer the REST API with cursor pagination or the stream endpoint** for anything scripted, and never parse the website HTML.
- **Keep UniParc in your fallback path.** For any workflow that touches unreviewed or metagenomic sequences, write the UniParc lookup step into the protocol now, before a release change forces you to improvise [1].
- **Test with a control accession after every release.** One query for `accession:P04637` confirms the service and gives you a stable reference point for result counts.
- **Version your local derived databases.** Whether you maintain a FASTA, a BLAST index, or a peptide-level store, rebuild on schedule and label the build with its source release [3].
- **Monitor release notes.** The reorganization unfolded across multiple releases between 2025_04 and 2026_02, and reading the notes for each release explains result-count changes that would otherwise look like search failures [1].
- **Record exact queries in your methods.** Store the literal query string, the endpoint, and the date. This is the difference between a reproducible search and a anecdote.

## Frequently Asked Questions

### Why does my UniProt search return nothing for a protein I know exists?

First check that you are using the right identifier type, since accessions, entry names, and gene symbols are different fields. Then search UniParc, because entries moved out of UniProtKB during the recent reorganization remain there.

### What is the difference between UniProtKB, UniParc, and UniRef?

UniProtKB holds annotated entries split into reviewed Swiss-Prot and unreviewed TrEMBL. UniParc is the non-redundant archive of all sequences ever processed, identified by UPI numbers without annotations. UniRef sets are identity-based clusters built from both.

### How do I search a specific field in UniProt?

Append a lowercase qualifier and colon, for example `gene:BRCA1`, `organism_id:9606`, or `protein_name:"DNA polymerase"`. Combine clauses with explicit `AND`, `OR`, and `NOT` inside parentheses.

### Is UniProt down, and how can I tell?

Search `accession:P04637` in a private browser window. If the control entry appears, the service is up and the problem is your query. If it fails across browsers, clear cache and retry, or switch to the REST API.

### How do I download large result sets from UniProt programmatically?

Use the REST API at rest.uniprot.org. For complete result sets use the uniprotkb stream endpoint, and for paginated retrieval follow the next URL in the response Link header until it disappears.

### Why did my old UniProt URL stop working?

Website restructures change URL patterns, and some deep links from older versions return 404. Rebuild the search in the current interface and bookmark the URL it generates.

### How can I run a sequence similarity search when the UniProt web BLAST is slow?

Run the search locally. MMseqs2-based tools complete UniProt-scale searches in minutes rather than hours and give you version-stable, reproducible results.

### Which UniProt section should I search for my project?

Use reviewed Swiss-Prot entries when annotation quality matters, UniProtKB broadly when you need maximum coverage of retained entries, and UniParc when you need any sequence ever seen by UniProt, including those moved out of UniProtKB.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Why does my UniProt search return nothing for a protein I know exists?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "First check that you are using the right identifier type, since accessions, entry names, and gene symbols are different fields. Then search UniParc, because entries moved out of UniProtKB during the recent reorganization remain there."
      }
    },
    {
      "@type": "Question",
      "name": "What is the difference between UniProtKB, UniParc, and UniRef?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "UniProtKB holds annotated entries split into reviewed Swiss-Prot and unreviewed TrEMBL. UniParc is the non-redundant archive of all sequences ever processed, identified by UPI numbers without annotations. UniRef sets are identity-based clusters built from both."
      }
    },
    {
      "@type": "Question",
      "name": "How do I search a specific field in UniProt?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Append a lowercase qualifier and colon, for example gene:BRCA1, organism_id:9606, or protein_name:\"DNA polymerase\". Combine clauses with explicit AND, OR, and NOT inside parentheses."
      }
    },
    {
      "@type": "Question",
      "name": "Is UniProt down, and how can I tell?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Search accession:P04637 in a private browser window. If the control entry appears, the service is up and the problem is your query. If it fails across browsers, clear cache and retry, or switch to the REST API."
      }
    },
    {
      "@type": "Question",
      "name": "How do I download large result sets from UniProt programmatically?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Use the REST API at rest.uniprot.org. For complete result sets use the uniprotkb stream endpoint, and for paginated retrieval follow the next URL in the response Link header until it disappears."
      }
    },
    {
      "@type": "Question",
      "name": "Why did my old UniProt URL stop working?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Website restructures change URL patterns, and some deep links from older versions return 404. Rebuild the search in the current interface and bookmark the URL it generates."
      }
    },
    {
      "@type": "Question",
      "name": "How can I run a sequence similarity search when the UniProt web BLAST is slow?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Run the search locally. MMseqs2-based tools complete UniProt-scale searches in minutes rather than hours and give you version-stable, reproducible results."
      }
    },
    {
      "@type": "Question",
      "name": "Which UniProt section should I search for my project?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Use reviewed Swiss-Prot entries when annotation quality matters, UniProtKB broadly when you need maximum coverage of retained entries, and UniParc when you need any sequence ever seen by UniProt, including those moved out of UniProtKB."
      }
    }
  ]
}
</script>

## Sources

1. [UniProt data pruning and the growing invisibility of the dark proteome.](https://pubmed.ncbi.nlm.nih.gov/42889534/)
2. [PDBe-SIFTS: An open-source tool for Structure Integration with Function, Taxonomy, and Sequences, featuring improved alignment, scoring scheme, and accelerated search.](https://pubmed.ncbi.nlm.nih.gov/42885203/)
3. [DigestedProteinDB: A Compact and Scalable Key-Value Database for In Silico Peptide Digestion and Mass-Based Search.](https://pubmed.ncbi.nlm.nih.gov/42360919/)