Skip Header

You are using a version of browser that may not display all the features of this website. Please consider upgrading your browser.

Programmatic access

Last modified June 2, 2017

UniProt provides several application programming interfaces (APIs) to query and access its data programmatically:

UniProt website REST API

What: RESTful URLs that can be bookmarked, linked and used in programs for all entries, queries and tools available through this website. Data is available in all formats provided on the website, e.g. text, XML, RDF, FASTA, GFF, tab-separated for UniProtKB protein data.
Why: Access data and tools from the UniProt website with any programming language.
Documentation: http://www.uniprot.org/help/api

Proteins REST API

What: Extended REST API with annotations imported and mapped from Large Scale data Sources (LSS), such as 1000Genomes, ExAC, PeptideAtlas, MaxQB and HPA via the variation, proteomics, and antigen services.
Why: Access data sets mapped to UniProt and integrated through a single service.
Documentation: http://www.ebi.ac.uk/proteins/api/doc/

UniProt SPARQL API

What: SPARQL API for all UniProt data. An SQL-like graph query language that allows to perform complex queries across all UniProt data, as well as across other resources that provide a SPARQL enpoint, such as Ensembl or Wikidata.
Why: Access data from UniProt, and other resources, using a low-cost alternative to importing the data into e.g. a relational database and building a local data warehouse.
Documentation: http://sparql.uniprot.org

UniProt Java API

What: A Java library that provides a stable remote API for programmatically accessing UniProt data.
Why: Access data and tools from UniProt using Java.
Documentation: https://www.ebi.ac.uk/uniprot/japi/