9.8 KiB
Ensembl REST API Endpoints Reference
Comprehensive documentation of all 17 API endpoint categories available in the Ensembl REST API (Release 115, September 2025).
Base URLs:
- Current assemblies:
https://rest.ensembl.org - GRCh37/hg19 (human):
https://grch37.rest.ensembl.org
Rate Limits:
- Anonymous: 15 requests/second
- Registered: 55,000 requests/hour
1. Archive
Retrieve historical information about retired Ensembl identifiers.
GET /archive/id/:id
- Retrieve archived entries for a retired identifier
- Example:
/archive/id/ENSG00000157764(retired gene ID)
2. Comparative Genomics
Access gene trees, genomic alignments, and homology data across species.
GET /alignment/region/:species/:region
- Get genomic alignments for a region
- Example:
/alignment/region/human/2:106040000-106040050:1?species_set_group=mammals
GET /genetree/id/:id
- Retrieve gene tree for a gene family
- Example:
/genetree/id/ENSGT00390000003602
GET /genetree/member/id/:id
- Get gene tree by member gene ID
- Example:
/genetree/member/id/ENSG00000139618
GET /homology/id/:id
- Find orthologs and paralogs for a gene
- Parameters:
target_species,type(orthologues, paralogues, all) - Example:
/homology/id/ENSG00000139618?target_species=mouse
GET /homology/symbol/:species/:symbol
- Find homologs by gene symbol
- Example:
/homology/symbol/human/BRCA2?target_species=mouse
3. Cross References
Link external database identifiers to Ensembl objects.
GET /xrefs/id/:id
- Get external references for Ensembl ID
- Example:
/xrefs/id/ENSG00000139618
GET /xrefs/symbol/:species/:symbol
- Get cross-references by gene symbol
- Example:
/xrefs/symbol/human/BRCA2
GET /xrefs/name/:species/:name
- Search for objects by external name
- Example:
/xrefs/name/human/NP_000050
4. Information
Query metadata about species, assemblies, biotypes, and database versions.
GET /info/species
- List all available species
- Returns species names, assemblies, taxonomy IDs
GET /info/assembly/:species
- Get assembly information for a species
- Example:
/info/assembly/human(returns GRCh38.p14)
GET /info/assembly/:species/:region
- Get detailed information about a chromosomal region
- Example:
/info/assembly/human/X
GET /info/biotypes/:species
- List all available biotypes (gene types)
- Example:
/info/biotypes/human
GET /info/analysis/:species
- List available analysis types
- Example:
/info/analysis/human
GET /info/data
- Get general information about the current Ensembl release
5. Linkage Disequilibrium (LD)
Calculate linkage disequilibrium between variants.
GET /ld/:species/:id/:population_name
- Calculate LD for a variant
- Example:
/ld/human/rs1042522/1000GENOMES:phase_3:KHV
GET /ld/pairwise/:species/:id1/:id2
- Calculate LD between two variants
- Example:
/ld/pairwise/human/rs1042522/rs11540652
6. Lookup
Identify species and database information for identifiers.
GET /lookup/id/:id
- Look up object by Ensembl ID
- Parameter:
expand(include child objects) - Example:
/lookup/id/ENSG00000139618?expand=1
POST /lookup/id
- Batch lookup multiple IDs
- Submit JSON array of IDs
- Example:
{"ids": ["ENSG00000139618", "ENSG00000157764"]}
GET /lookup/symbol/:species/:symbol
- Look up gene by symbol
- Parameter:
expand(include transcripts) - Example:
/lookup/symbol/human/BRCA2?expand=1
7. Mapping
Convert coordinates between assemblies, cDNA, CDS, and protein positions.
GET /map/cdna/:id/:region
- Map cDNA coordinates to genomic
- Example:
/map/cdna/ENST00000288602/100..300
GET /map/cds/:id/:region
- Map CDS coordinates to genomic
- Example:
/map/cds/ENST00000288602/1..300
GET /map/translation/:id/:region
- Map protein coordinates to genomic
- Example:
/map/translation/ENSP00000288602/1..100
GET /map/:species/:asm_one/:region/:asm_two
- Map coordinates between assemblies
- Example:
/map/human/GRCh37/7:140453136..140453136/GRCh38
POST /map/:species/:asm_one/:asm_two
- Batch assembly mapping
- Submit JSON array of regions
8. Ontologies and Taxonomy
Search biological ontologies and taxonomic classifications.
GET /ontology/id/:id
- Get ontology term information
- Example:
/ontology/id/GO:0005515
GET /ontology/name/:name
- Search ontology by term name
- Example:
/ontology/name/protein%20binding
GET /taxonomy/classification/:id
- Get taxonomic classification
- Example:
/taxonomy/classification/9606(human)
GET /taxonomy/id/:id
- Get taxonomy information by ID
- Example:
/taxonomy/id/9606
9. Overlap
Find genomic features overlapping a region.
GET /overlap/id/:id
- Get features overlapping a gene/transcript
- Parameters:
feature(gene, transcript, cds, exon, repeat, etc.) - Example:
/overlap/id/ENSG00000139618?feature=transcript
GET /overlap/region/:species/:region
- Get all features in a genomic region
- Parameters:
feature(gene, transcript, variation, regulatory, etc.) - Example:
/overlap/region/human/7:140424943..140624564?feature=gene
GET /overlap/translation/:id
- Get protein features
- Example:
/overlap/translation/ENSP00000288602
10. Phenotype Annotations
Retrieve disease and trait associations.
GET /phenotype/accession/:species/:accession
- Get phenotypes by ontology accession
- Example:
/phenotype/accession/human/EFO:0003767
GET /phenotype/gene/:species/:gene
- Get phenotype associations for a gene
- Example:
/phenotype/gene/human/ENSG00000139618
GET /phenotype/region/:species/:region
- Get phenotypes in genomic region
- Example:
/phenotype/region/human/7:140424943-140624564
GET /phenotype/term/:species/:term
- Search phenotypes by term
- Example:
/phenotype/term/human/cancer
11. Regulation
Access regulatory feature and binding motif data.
GET /regulatory/species/:species/microarray/:microarray/:probe
- Get microarray probe information
- Example:
/regulatory/species/human/microarray/HumanWG_6_V2/ILMN_1773626
GET /species/:species/binding_matrix/:binding_matrix_id
- Get transcription factor binding matrix
- Example:
/species/human/binding_matrix/ENSPFM0001
12. Sequence
Retrieve genomic, transcript, and protein sequences.
GET /sequence/id/:id
- Get sequence by ID
- Parameters:
type(genomic, cds, cdna, protein),format(json, fasta, text) - Example:
/sequence/id/ENSG00000139618?type=genomic
POST /sequence/id
- Batch sequence retrieval
- Example:
{"ids": ["ENSG00000139618", "ENSG00000157764"]}
GET /sequence/region/:species/:region
- Get genomic sequence for region
- Parameters:
coord_system,format - Example:
/sequence/region/human/7:140424943..140624564?format=fasta
POST /sequence/region/:species
- Batch region sequence retrieval
13. Transcript Haplotypes
Compute transcript haplotypes from phased genotypes.
GET /transcript_haplotypes/:species/:id
- Get transcript haplotypes
- Example:
/transcript_haplotypes/human/ENST00000288602
14. Variant Effect Predictor (VEP)
Predict functional consequences of variants.
GET /vep/:species/hgvs/:hgvs_notation
- Predict variant effects using HGVS notation
- Parameters: numerous VEP options
- Example:
/vep/human/hgvs/ENST00000288602:c.803C>T
POST /vep/:species/hgvs
- Batch VEP analysis with HGVS
- Example:
{"hgvs_notations": ["ENST00000288602:c.803C>T"]}
GET /vep/:species/id/:id
- Predict effects for variant ID
- Example:
/vep/human/id/rs699
POST /vep/:species/id
- Batch VEP by variant IDs
GET /vep/:species/region/:region/:allele
- Predict effects for region and allele
- Example:
/vep/human/region/7:140453136:C/T
POST /vep/:species/region
- Batch VEP by regions
15. Variation
Query genetic variation data and associated publications.
GET /variation/:species/:id
- Get variant information by ID
- Parameters:
pops(include population frequencies),genotypes - Example:
/variation/human/rs699?pops=1
POST /variation/:species
- Batch variant queries
- Example:
{"ids": ["rs699", "rs6025"]}
GET /variation/:species/pmcid/:pmcid
- Get variants from PubMed Central article
- Example:
/variation/human/pmcid/PMC5002951
GET /variation/:species/pmid/:pmid
- Get variants from PubMed article
- Example:
/variation/human/pmid/26318936
16. Variation GA4GH
Access genomic variation data using GA4GH standards.
POST /ga4gh/beacon
- Query beacon for variant presence
GET /ga4gh/features/:id
- Get feature by ID in GA4GH format
POST /ga4gh/features/search
- Search features using GA4GH protocol
POST /ga4gh/variants/search
- Search variants using GA4GH protocol
Response Formats
Most endpoints support multiple response formats:
- JSON (default):
Content-Type: application/json - FASTA: For sequence data
- XML: Some endpoints support XML
- Text: Plain text output
Specify format using:
Content-Typeheader- URL parameter:
content-type=text/x-fasta - File extension:
/sequence/id/ENSG00000139618.fasta
Common Parameters
Many endpoints share these parameters:
- expand: Include child objects (transcripts, proteins)
- format: Output format (json, xml, fasta)
- db_type: Database type (core, otherfeatures, variation)
- object_type: Type of object to return
- species: Species name (can be common or scientific)
Error Codes
- 200: Success
- 400: Bad request (invalid parameters)
- 404: Not found (ID doesn't exist)
- 429: Rate limit exceeded
- 500: Internal server error
Best Practices
- Use batch endpoints for multiple queries (more efficient)
- Cache responses to minimize API calls
- Check rate limit headers in responses
- Handle 429 errors by respecting
Retry-Afterheader - Use appropriate content types for sequence data
- Specify assembly when querying older genome versions
- Enable expand parameter when you need full object details