biothings-client
Python Client for BioThings API services.
What it is and what it does
biothings_client is a Python wrapper that simplifies access to BioThings API services—a collection of web APIs providing structured biological and chemical data. It offers both synchronous and asynchronous clients for querying genes, genetic variants, chemicals/drugs, diseases, genesets, and taxa. The package abstracts away HTTP details, allowing developers to call methods like getgene(), getvariant(), or getchem() directly and receive structured JSON responses with annotations from multiple sources (RefSeq, PubChem, ClinVar, etc.).
The package has minimal dependencies (httpx for HTTP, importlib-metadata and typing-extensions for compatibility) and supports Python 3.7 and above. Optional extras enable DataFrame output for pandas users and local query caching via SQLite (Python 3.8+ only). It is actively maintained and widely used in bioinformatics workflows.
Use it for:
- Query gene annotations by ID or symbol to retrieve RefSeq IDs, protein sequences, and genomic coordinates.
- Look up genetic variants by position to access clinical significance, population frequencies, and structural predictions.
- Retrieve chemical/drug properties by InChI key or PubChem ID for compound analysis and property lookup.
- Batch query taxa by taxon ID to explore lineage, common names, and taxonomic rank information.
- Build async pipelines to fetch disease or geneset annotations without blocking on network I/O.
- Cache query results locally to reduce API calls and speed up repeated lookups in research workflows.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
biothings_client provides Python wrappers to query gene, variant, chemical, disease, geneset, and taxon data from BioThings API services via synchronous or asynchronous clients.
Yes. biothings_client is a stable, actively maintained wrapper for widely-used bioinformatics APIs with low install friction, permissive licensing, no known vulnerabilities, and support for modern Python versions. Install it if you need programmatic access to gene, variant, chemical, disease, or taxon data; skip it only if you prefer direct HTTP calls or need a different data source.
Install
biothings-client on PyPI
pip
pip install biothings-clientuv
uv add biothings-clientpoetry
poetry add biothings-clientInstalling biothings-client
Before you install
Low install friction with only three runtime dependencies (httpx, importlib-metadata, typing-extensions). Actively maintained with a recent release 22 days ago. Supports Python 3.7 and above, though caching features require Python 3.8+.
License in practice
Licensed under BSD-3-Clause (permissive), allowing commercial and private use with minimal restrictions beyond retaining the license notice.
Quickstart
pip install biothings_client
from biothings_client import get_client
mv = get_client("variant")
result = mv.getvariant("chr7:g.140453134T>C")
Requires Python 3.7 or higher; caching support requires Python 3.8+. Optional dataframe support requires pandas; optional caching requires hishel and anysqlite.
Verify before relying
- Whether the package's 20 GitHub stars reflects sufficient community adoption for production bioinformatics workflows.
- Performance characteristics and rate limits when querying large datasets or running concurrent async requests.
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — httpx, importlib-metadata, typing-extensions |
| Maintenance | actively maintained — 22 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,497,051/month — #3,834 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: biothings_client-0.5.1-py3-none-any.whl
Keywords: biology, variant, gene, taxon, taxonomy, species, drug, chemical, disease, phenotype, geneset, annotation, web, service, client, api, mygene.info, myvariant.info, mychem.info, mydisease.info, mygeneset.info, mytaxon.info
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
mygeneMygene is a Python wrapper for the MyGene.Info…
permissive · top 5,000 on PyPI
varcodeVarcode loads and analyzes genomic variant…
permissive · top 15,000 on PyPI
biontyBionty provides access to and management of…
unclear · top 15,000 on PyPI
bioA command-line toolkit that simplifies common…
permissive · top 5,000 on PyPI
cellxgene-censusProvides a Python API to query and retrieve…
permissive · top 15,000 on PyPI
biotiteBiotite provides a unified Python library for…
permissive · top 5,000 on PyPI
gtfparseParses GTF (gene transfer format) files into…
permissive · top 15,000 on PyPI
deepbiopDeepBioP is a deep learning preprocessing…
permissive · top 15,000 on PyPI
pyensemblPyEnsembl provides a Python interface to query…
permissive · top 15,000 on PyPI
PubChemPyPubChemPy is a Python wrapper around the…
permissive · top 5,000 on PyPI