BIOSERVICES: access to biological web services programmatically

BioServices Current version: 1.7.12 (Apr 08, 2021)

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 github page 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, KeGG, PDB, etc) as well as a framework to easily implement Web Service wrappers (based on WSDL/SOAP protocol or nowadays mostly REST protocol).

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 (from EBI mostly but not only; NCBI, KEGG, etc):

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.eutils.EUtils Interface to NCBI Entrez Utilities service
bioservices.ensembl.Ensembl Interface to the Ensembl service
bioservices.kegg.KEGG Interface to the KEGG service
bioservices.muscle.MUSCLE Interface to the MUSCLE service.
bioservices.pdb.PDB Interface to PDB service (new API Jan 2021)
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. Some of the services may be down. BioServices developers are not responsible for the maintenance or failure of underlying services. Generally speaking (and by experience) the services are up most of the time.


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. Since version 1.6.0, we also make use of pandas and matplotlib to offer some extra functionalities.

User guide