Files
2025-11-30 08:30:10 +08:00

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:

  1. Content-Type header
  2. URL parameter: content-type=text/x-fasta
  3. 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

  1. Use batch endpoints for multiple queries (more efficient)
  2. Cache responses to minimize API calls
  3. Check rate limit headers in responses
  4. Handle 429 errors by respecting Retry-After header
  5. Use appropriate content types for sequence data
  6. Specify assembly when querying older genome versions
  7. Enable expand parameter when you need full object details