BIOSERVICES: access to biological web services programmatically

BioServices Current version: 1.7.10 (Nov 23, 2020)

Citations:If you use BioServices, please cite Cokelaer et al, Bioinformatics (2013). See bioinformatics link for details.
Python version:Python 2.7, 3.6, 3.7
Issues:Please fill a report on github


Contributions to implement new wrappers are more than welcome. See BioServices wiki to join the development, and the Developer Guide on how to implement new wrappers. Although contributors have their names in the header files, you can also look at the Contributors directly.

Overview and Installation


BioServices is a Python package that provides access to many Bioinformatics Web Services (e.g., UniProt) and a framework to easily implement Web Service wrappers (based on WSDL/SOAP or REST protocols).

The primary goal of BioServices is to use Python as a glue language to provide a programmatic access to Biological Web Services. By doing so, elaboration of new applications that combine several Web Services should be fostered.

One of the main philosophy of BioServices is to make use of the existing REST or SOAP/WSDL Web Services and therefore existing databases, not to re-invent new databases.

The first release of BioServices provides a wrapping to more than 18 Web Services (more if we consider BioMart and PSICQUIC portals that link to many other Web Services).

Here are only some of Web Services that are available in BioServices:

bioservices.arrayexpress.ArrayExpress Interface to the ArrayExpress service
bioservices.biomodels.BioModels Interface to the BioModels service
bioservices.chembl.ChEMBL New ChEMBL API bioservices 1.6.0
bioservices.chebi.ChEBI Interface to ChEBI
bioservices.kegg.KEGG Interface to the KEGG service
bioservices.muscle.MUSCLE Interface to the MUSCLE service.
bioservices.pdb.PDB Interface to part of the PDB service
bioservices.uniprot.UniProt Interface to the UniProt service
bioservices.unichem.UniChem Interface to the UniChem service
bioservices.ncbiblast.NCBIblast Interface to the NCBIblast service.

Full list is available in the User Guide and Reference here below.


BioServices is available on PyPi, the Python package repository. The following command should install BioServices and its dependencies automatically provided you have pip on your system:

pip install bioservices

If not, please see the external pip installation page or pip installation entry. You may also find information in the troubleshootings page section about known issues.

Regarding the dependencies, BioServices depends on the following packages: BeautifulSoup4 (for parsing XML), SOAPpy and suds (to access to SOAP/WSDL services; suds is used by ChEBI only for which SOAPpy fails to correctly fetch the service) and easydev. All those packages should be installed automatically when using pip installer.

User guide