ensembl API for agents (unofficial) — JSON over curl | clify
Ensembl (ensembl.org) genome browser: search thousands of genome assemblies, read genome metadata and stats, look up genes, transcripts, proteins, homologues, external references and variants (with predicted consequences), and fetch reference sequence through Ensembl's public JSON and GraphQL APIs.
Host: ensembl.org. Call these verified read commands with plain curl; no install, key, or account. Use the public JSON API with plain curl. No install, key, account, or browser is needed. Example: curl 'https://clify-dev.netlify.app/sites.json'. Start with /search?q=weather, then call /abc/COMMAND. Responses are one JSON object. The hosted MCP and GitHub repo are also available.
Commands
search-genomes
Search genome assemblies by name. Can list every assembly of one species by taxonomy id, and can sort (e.g. by contig N50) and paginate. Params: query, species_taxonomy_id, sort, order, page, per_page
curl 'https://clify-dev.netlify.app/ensembl/search-genomes?query=mouse&species_taxonomy_id=9606&sort=contig_n50&page=1&per_page=20'
export-genomes-csv
Download genome search results as CSV text, matching search-genomes for the same query. Params: query*, species_taxonomy_id
curl 'https://clify-dev.netlify.app/ensembl/export-genomes-csv?query=mouse&species_taxonomy_id=9606'
get-genome
Get metadata for one genome by its UUID: assembly, providers, annotation version/date, release and reference status. Params: genome_id*
curl 'https://clify-dev.netlify.app/ensembl/get-genome'
get-genome-stats
Get statistics for a genome: assembly (N50, length, GC%), coding, non-coding, pseudogene and variation counts. Params: genome_id*
curl 'https://clify-dev.netlify.app/ensembl/get-genome-stats'
get-genome-example-objects
Get example gene, location and variant ids for a genome. These are handy starting points for gene and variant lookups. Params: genome_id*
curl 'https://clify-dev.netlify.app/ensembl/get-genome-example-objects'
list-popular-species
List popular species with their taxonomy id and number of available genomes. Params: none
curl 'https://clify-dev.netlify.app/ensembl/list-popular-species'
list-genome-groups
List genome group categories, such as external projects like VGP and BGE, with genome counts. Params: none
curl 'https://clify-dev.netlify.app/ensembl/list-genome-groups'
get-genome-counts
Get the total number of genomes in Ensembl and the count per taxonomic group (Animals, Archaea, …). Params: none
curl 'https://clify-dev.netlify.app/ensembl/get-genome-counts'
list-releases
List Ensembl data releases (name, type integrated/partial, is_current). Params: current_only
curl 'https://clify-dev.netlify.app/ensembl/list-releases?current_only=true'
search-genes
Search genes by symbol, name or stable id within one genome. Returns stable ids, biotype and location. Params: query*, genome_id, page, per_page
curl 'https://clify-dev.netlify.app/ensembl/search-genes'
search-variants
Search variants (e.g. by rsID) within one genome. Params: query*, genome_id, page, per_page
curl 'https://clify-dev.netlify.app/ensembl/search-variants'
get-gene-summary
Get a gene's versioned stable id, symbol, chromosome location, strand and biotype. Params: geneId*, genomeId
curl 'https://clify-dev.netlify.app/ensembl/get-gene-summary'
get-gene-overview
Get a gene's full name, alternative symbols (synonyms), HGNC accession and biotype. Params: geneId*, genomeId
curl 'https://clify-dev.netlify.app/ensembl/get-gene-overview'
get-gene-structure
Get a gene's transcripts with exon layout, CDS coordinates, protein product ids and canonical/MANE flags. This is what the feature explorer gene view draws. Params: geneId*, genomeId
curl 'https://clify-dev.netlify.app/ensembl/get-gene-structure'
list-gene-transcripts
List all transcripts of a gene with biotype, length, canonical/MANE status and protein length. Also returns the gene location and region checksum. Params: geneId*, genomeId
curl 'https://clify-dev.netlify.app/ensembl/list-gene-transcripts'
get-gene-external-references
Get cross-references (NCBI Gene, HGNC, OMIM, GeneCards, UniProt, RefSeq, …) for a gene and for each of its transcripts and proteins. Params: geneId*, genomeId
curl 'https://clify-dev.netlify.app/ensembl/get-gene-external-references'
get-gene-homologies
List homologues/orthologues of a gene in other species, with homology type and percent identity/coverage. Params: geneId*, genomeId
curl 'https://clify-dev.netlify.app/ensembl/get-gene-homologies'
get-transcript
Get one transcript's location, exons, CDS coordinates and protein product (id, length, sequence checksum). Params: transcriptId*, genomeId
curl 'https://clify-dev.netlify.app/ensembl/get-transcript'
get-protein-domains
Get a protein's length and its domain/family matches (Pfam, PANTHER, InterPro, …) with positions. Params: productId*, genomeId
curl 'https://clify-dev.netlify.app/ensembl/get-protein-domains'
get-protein-structure-stats
Get PDBe summary counts for a UniProt accession: number of PDB structures, ligands, interaction partners and similar proteins. Params: uniprot_id*
curl 'https://clify-dev.netlify.app/ensembl/get-protein-structure-stats'
get-variant
Get variant details: location, alleles, allele type, dbSNP source, VEP prediction, citation count, phenotype assertions and population allele frequencies. Params: variantId*, genomeId
curl 'https://clify-dev.netlify.app/ensembl/get-variant'
get-variant-consequences
Get the predicted molecular consequences of each allele of a variant on overlapping transcripts: consequence terms plus cDNA, CDS and protein positions with ref/alt. Params: variantId*, genomeId
curl 'https://clify-dev.netlify.app/ensembl/get-variant-consequences'
get-region
Get a chromosome/region's length, topology and sequence checksum. Use the checksum with get-sequence. Params: regionName*, genomeId
curl 'https://clify-dev.netlify.app/ensembl/get-region'
get-sequence
Fetch raw DNA or protein sequence (plain text) for a sequence checksum over a coordinate range, via refget. Uses 0-based start and exclusive end. Params: checksum*, start, end
curl 'https://clify-dev.netlify.app/ensembl/get-sequence?start=230710027&end=230710068'