Ensembl REST API for gene/transcript/variant annotations in 300+ species. Gene info by symbol/ID, sequence, cross-refs (HGNC, RefSeq, UniProt), regulatory features. For bulk local use pyensembl; for pathways use kegg-database.
SkillScore95Maintained
Automatic
◆Research pack
Last verified 8/24/2026
What it changes
Passed 21 of 22 test cases with the skill, and 16 of 22 without it.
Without skill73%
With skill95%
Checks it passed that the model alone missed
Sets Content-Type header to text/plain
Includes JSON payload key hgvs_notations
Queries endpoint /homology/symbol/human/TP53
and 3 more in the full report
5 fixed16 passed either way1 still failing0 broke
Pass-rate lift
+23 pp
Tokens
+205%
Agent turns
0%
Response time
-41%
Model gemini-3.6-flashMeasured 8/24/2026v121 of 22 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 5 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 5
Prompt
I want to download the raw amino acid sequence string for transcript ENST00000269305 using the Ensembl REST API sequence endpoint. I want the response body returned directly as plain text rather than wrapped in JSON. What request setup is needed?
What was checked, without and with the skill
Checked
Without skill
With skill
Sets Content-Type header to text/plain
Missed
Passed
Sets type parameter to protein
Passed
Passed
case-06 · gemini-3.6-flash · 8/24/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md466 linessingle file
Ensembl Genome Database
Overview
Ensembl is a comprehensive genome annotation database covering 300+ vertebrate and non-vertebrate species. The Ensembl REST API provides programmatic access to gene models, transcript/protein sequences, variant annotations, cross-references, regulatory features, and comparative genomics without requiring any login or API key.
When to Use
Retrieving official gene and transcript annotations (stable IDs, biotype, genomic coordinates) for human or model organism genes
Converting between gene identifier namespaces (HGNC symbol ↔ Ensembl ID ↔ RefSeq ↔ UniProt)
Fetching genomic or cDNA/CDS/protein sequences for a gene or transcript
Looking up variant consequences and functional impact (VEP) for a list of SNPs
Querying regulatory features (promoters, enhancers, CTCF sites) in a genomic region
Performing comparative genomics queries (orthologs, paralogs, gene trees) across species
For local offline access to large genomic annotations, use pyensembl instead
For pathway and metabolic annotations, use kegg-database or reactome-database instead
Prerequisites
Python packages: requests
Data requirements: gene symbols, Ensembl stable IDs (ENSG…/ENST…/ENSP…), or genomic coordinates
Environment: internet connection required; no API key needed
Rate limits: max ~15 requests/second; use expand=1 and batch endpoints to minimize calls
pip install requests
Quick Start
import requests
BASE = "https://rest.ensembl.org"
HEADERS = {"Content-Type": "application/json"}
def ensembl_get(endpoint, params=None):
r = requests.get(f"{BASE}{endpoint}", headers=HEADERS, params=params)
r.raise_for_status()
return r.json()