Returns the genomic sequence of the specified region of the given species. Supports feature masking and expand options.
| Name | Type | Description | Default | Example Values | 
|---|---|---|---|---|
| region | String | Query region. A maximum of 10Mb is allowed to be requested at any one time | - | X:1000000..1000100:1 X:1000000..1000100:-1 X:1000000..1000100 | 
| species | String | Species name/alias | - | homo_sapiens human | 
| Name | Type | Description | Default | Example Values | 
|---|---|---|---|---|
| callback | String | Name of the callback subroutine to be returned by the requested JSONP response. Required ONLY when using JSONP as the serialisation method. Please see the user guide. | - | randomlygeneratedname | 
| coord_system | String | Filter by coordinate system name | - | contig seqlevel | 
| coord_system_version | String | Filter by coordinate system version | - | GRCh37 | 
| expand_3prime | Int | Expand the sequence downstream of the sequence by this many basepairs. Only available when using genomic sequence type. | - | 1000 | 
| expand_5prime | Int | Expand the sequence upstream of the sequence by this many basepairs. Only available when using genomic sequence type. | - | 1000 | 
| format | Enum(fasta) | Format of the data. | - | fasta | 
| mask | Enum(hard,soft) | Request the sequence masked for repeat sequences. Hard will mask all repeats as N's and soft will mask repeats as lower cased characters. Only available when using genomic sequence type. | - | hard | 
| mask_feature | Boolean | Mask features on the sequence. If sequence is genomic, mask introns. If sequence is cDNA, mask UTRs. Incompatible with the 'mask' option | 0 | 1 | 
use strict;
use warnings;
use HTTP::Tiny;
my $http = HTTP::Tiny->new();
my $server = 'https://rest.ensembl.org';
my $ext = '/sequence/region/human/X:1000000..1000100:1?';
my $response = $http->get($server.$ext, {
  headers => { 'Content-type' => 'text/plain' }
});
die "Failed!\n" unless $response->{success};
print "$response->{content}\n";
import requests, sys
server = "https://rest.ensembl.org"
ext = "/sequence/region/human/X:1000000..1000100:1?"
r = requests.get(server+ext, headers={ "Content-Type" : "text/plain"})
if not r.ok:
  r.raise_for_status()
  sys.exit()
print r.text
import requests, sys
server = "https://rest.ensembl.org"
ext = "/sequence/region/human/X:1000000..1000100:1?"
r = requests.get(server+ext, headers={ "Content-Type" : "text/plain"})
if not r.ok:
  r.raise_for_status()
  sys.exit()
print(r.text)
require 'net/http'
require 'uri'
server='https://rest.ensembl.org'
path = '/sequence/region/human/X:1000000..1000100:1?'
url = URI.parse(server)
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(path, {'Content-Type' => 'text/plain'})
response = http.request(request)
if response.code != "200"
  puts "Invalid response: #{response.code}"
  puts response.body
  exit
end
puts response.body
import java.net.URL;
import java.net.URLConnection;
import java.net.HttpURLConnection;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.Reader;
public class EnsemblRest {
  public static void main(String[] args) throws Exception {
    String server = "https://rest.ensembl.org";
    String ext = "/sequence/region/human/X:1000000..1000100:1?";
    URL url = new URL(server + ext);
    URLConnection connection = url.openConnection();
    HttpURLConnection httpConnection = (HttpURLConnection)connection;
    
    httpConnection.setRequestProperty("Content-Type", "text/plain");
    
    InputStream response = connection.getInputStream();
    int responseCode = httpConnection.getResponseCode();
    if(responseCode != 200) {
      throw new RuntimeException("Response code was not 200. Detected response was "+responseCode);
    }
    String output;
    Reader reader = null;
    try {
      reader = new BufferedReader(new InputStreamReader(response, "UTF-8"));
      StringBuilder builder = new StringBuilder();
      char[] buffer = new char[8192];
      int read;
      while ((read = reader.read(buffer, 0, buffer.length)) > 0) {
        builder.append(buffer, 0, read);
      }
      output = builder.toString();
    } 
    finally {
        if (reader != null) try {
          reader.close(); 
        } catch (IOException logOrIgnore) {
          logOrIgnore.printStackTrace();
        }
    }
    System.out.println(output);
  }
}
library(httr)
library(jsonlite)
library(xml2)
server <- "https://rest.ensembl.org"
ext <- "/sequence/region/human/X:1000000..1000100:1?"
r <- GET(paste(server, ext, sep = ""), content_type("text/plain"))
stop_for_status(r)
print(content(r))
curl 'https://rest.ensembl.org/sequence/region/human/X:1000000..1000100:1?' -H 'Content-type:text/plain'
wget -q --header='Content-type:text/plain' 'https://rest.ensembl.org/sequence/region/human/X:1000000..1000100:1?' -O -
use strict;
use warnings;
use HTTP::Tiny;
my $http = HTTP::Tiny->new();
my $server = 'https://rest.ensembl.org';
my $ext = '/sequence/region/human/ABBA01004489.1:1..100?coord_system=seqlevel';
my $response = $http->get($server.$ext, {
  headers => { 'Content-type' => 'text/x-fasta' }
});
die "Failed!\n" unless $response->{success};
print "$response->{content}\n";
import requests, sys
server = "https://rest.ensembl.org"
ext = "/sequence/region/human/ABBA01004489.1:1..100?coord_system=seqlevel"
r = requests.get(server+ext, headers={ "Content-Type" : "text/x-fasta"})
if not r.ok:
  r.raise_for_status()
  sys.exit()
print r.text
import requests, sys
server = "https://rest.ensembl.org"
ext = "/sequence/region/human/ABBA01004489.1:1..100?coord_system=seqlevel"
r = requests.get(server+ext, headers={ "Content-Type" : "text/x-fasta"})
if not r.ok:
  r.raise_for_status()
  sys.exit()
print(r.text)
require 'net/http'
require 'uri'
server='https://rest.ensembl.org'
path = '/sequence/region/human/ABBA01004489.1:1..100?coord_system=seqlevel'
url = URI.parse(server)
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(path, {'Content-Type' => 'text/x-fasta'})
response = http.request(request)
if response.code != "200"
  puts "Invalid response: #{response.code}"
  puts response.body
  exit
end
puts response.body
import java.net.URL;
import java.net.URLConnection;
import java.net.HttpURLConnection;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.Reader;
public class EnsemblRest {
  public static void main(String[] args) throws Exception {
    String server = "https://rest.ensembl.org";
    String ext = "/sequence/region/human/ABBA01004489.1:1..100?coord_system=seqlevel";
    URL url = new URL(server + ext);
    URLConnection connection = url.openConnection();
    HttpURLConnection httpConnection = (HttpURLConnection)connection;
    
    httpConnection.setRequestProperty("Content-Type", "text/x-fasta");
    
    InputStream response = connection.getInputStream();
    int responseCode = httpConnection.getResponseCode();
    if(responseCode != 200) {
      throw new RuntimeException("Response code was not 200. Detected response was "+responseCode);
    }
    String output;
    Reader reader = null;
    try {
      reader = new BufferedReader(new InputStreamReader(response, "UTF-8"));
      StringBuilder builder = new StringBuilder();
      char[] buffer = new char[8192];
      int read;
      while ((read = reader.read(buffer, 0, buffer.length)) > 0) {
        builder.append(buffer, 0, read);
      }
      output = builder.toString();
    } 
    finally {
        if (reader != null) try {
          reader.close(); 
        } catch (IOException logOrIgnore) {
          logOrIgnore.printStackTrace();
        }
    }
    System.out.println(output);
  }
}
library(httr)
library(jsonlite)
library(xml2)
server <- "https://rest.ensembl.org"
ext <- "/sequence/region/human/ABBA01004489.1:1..100?coord_system=seqlevel"
r <- GET(paste(server, ext, sep = ""), content_type("text/x-fasta"))
stop_for_status(r)
print(content(r))
curl 'https://rest.ensembl.org/sequence/region/human/ABBA01004489.1:1..100?coord_system=seqlevel' -H 'Content-type:text/x-fasta'
wget -q --header='Content-type:text/x-fasta' 'https://rest.ensembl.org/sequence/region/human/ABBA01004489.1:1..100?coord_system=seqlevel' -O -
use strict;
use warnings;
use HTTP::Tiny;
my $http = HTTP::Tiny->new();
my $server = 'https://rest.ensembl.org';
my $ext = '/sequence/region/human/X:1000000..1000100:1?expand_3prime=60;expand_5prime=60';
my $response = $http->get($server.$ext, {
  headers => { 'Content-type' => 'text/x-fasta' }
});
die "Failed!\n" unless $response->{success};
print "$response->{content}\n";
import requests, sys
server = "https://rest.ensembl.org"
ext = "/sequence/region/human/X:1000000..1000100:1?expand_3prime=60;expand_5prime=60"
r = requests.get(server+ext, headers={ "Content-Type" : "text/x-fasta"})
if not r.ok:
  r.raise_for_status()
  sys.exit()
print r.text
import requests, sys
server = "https://rest.ensembl.org"
ext = "/sequence/region/human/X:1000000..1000100:1?expand_3prime=60;expand_5prime=60"
r = requests.get(server+ext, headers={ "Content-Type" : "text/x-fasta"})
if not r.ok:
  r.raise_for_status()
  sys.exit()
print(r.text)
require 'net/http'
require 'uri'
server='https://rest.ensembl.org'
path = '/sequence/region/human/X:1000000..1000100:1?expand_3prime=60;expand_5prime=60'
url = URI.parse(server)
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(path, {'Content-Type' => 'text/x-fasta'})
response = http.request(request)
if response.code != "200"
  puts "Invalid response: #{response.code}"
  puts response.body
  exit
end
puts response.body
import java.net.URL;
import java.net.URLConnection;
import java.net.HttpURLConnection;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.Reader;
public class EnsemblRest {
  public static void main(String[] args) throws Exception {
    String server = "https://rest.ensembl.org";
    String ext = "/sequence/region/human/X:1000000..1000100:1?expand_3prime=60;expand_5prime=60";
    URL url = new URL(server + ext);
    URLConnection connection = url.openConnection();
    HttpURLConnection httpConnection = (HttpURLConnection)connection;
    
    httpConnection.setRequestProperty("Content-Type", "text/x-fasta");
    
    InputStream response = connection.getInputStream();
    int responseCode = httpConnection.getResponseCode();
    if(responseCode != 200) {
      throw new RuntimeException("Response code was not 200. Detected response was "+responseCode);
    }
    String output;
    Reader reader = null;
    try {
      reader = new BufferedReader(new InputStreamReader(response, "UTF-8"));
      StringBuilder builder = new StringBuilder();
      char[] buffer = new char[8192];
      int read;
      while ((read = reader.read(buffer, 0, buffer.length)) > 0) {
        builder.append(buffer, 0, read);
      }
      output = builder.toString();
    } 
    finally {
        if (reader != null) try {
          reader.close(); 
        } catch (IOException logOrIgnore) {
          logOrIgnore.printStackTrace();
        }
    }
    System.out.println(output);
  }
}
library(httr)
library(jsonlite)
library(xml2)
server <- "https://rest.ensembl.org"
ext <- "/sequence/region/human/X:1000000..1000100:1?expand_3prime=60;expand_5prime=60"
r <- GET(paste(server, ext, sep = ""), content_type("text/x-fasta"))
stop_for_status(r)
print(content(r))
curl 'https://rest.ensembl.org/sequence/region/human/X:1000000..1000100:1?expand_3prime=60;expand_5prime=60' -H 'Content-type:text/x-fasta'
wget -q --header='Content-type:text/x-fasta' 'https://rest.ensembl.org/sequence/region/human/X:1000000..1000100:1?expand_3prime=60;expand_5prime=60' -O -
use strict;
use warnings;
use HTTP::Tiny;
my $http = HTTP::Tiny->new();
my $server = 'https://rest.ensembl.org';
my $ext = '/sequence/region/human/X:1000000..1000100:1?';
my $response = $http->get($server.$ext, {
  headers => { 'Content-type' => 'application/json' }
});
die "Failed!\n" unless $response->{success};
use JSON;
use Data::Dumper;
if(length $response->{content}) {
  my $hash = decode_json($response->{content});
  local $Data::Dumper::Terse = 1;
  local $Data::Dumper::Indent = 1;
  print Dumper $hash;
  print "\n";
}
import requests, sys
server = "https://rest.ensembl.org"
ext = "/sequence/region/human/X:1000000..1000100:1?"
r = requests.get(server+ext, headers={ "Content-Type" : "application/json"})
if not r.ok:
  r.raise_for_status()
  sys.exit()
decoded = r.json()
print repr(decoded)
import requests, sys
server = "https://rest.ensembl.org"
ext = "/sequence/region/human/X:1000000..1000100:1?"
r = requests.get(server+ext, headers={ "Content-Type" : "application/json"})
if not r.ok:
  r.raise_for_status()
  sys.exit()
decoded = r.json()
print(repr(decoded))
require 'net/http'
require 'uri'
server='https://rest.ensembl.org'
path = '/sequence/region/human/X:1000000..1000100:1?'
url = URI.parse(server)
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(path, {'Content-Type' => 'application/json'})
response = http.request(request)
if response.code != "200"
  puts "Invalid response: #{response.code}"
  puts response.body
  exit
end
require 'rubygems'
require 'json'
require 'yaml'
result = JSON.parse(response.body)
puts YAML::dump(result)
import java.net.URL;
import java.net.URLConnection;
import java.net.HttpURLConnection;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.Reader;
public class EnsemblRest {
  public static void main(String[] args) throws Exception {
    String server = "https://rest.ensembl.org";
    String ext = "/sequence/region/human/X:1000000..1000100:1?";
    URL url = new URL(server + ext);
    URLConnection connection = url.openConnection();
    HttpURLConnection httpConnection = (HttpURLConnection)connection;
    
    httpConnection.setRequestProperty("Content-Type", "application/json");
    
    InputStream response = connection.getInputStream();
    int responseCode = httpConnection.getResponseCode();
    if(responseCode != 200) {
      throw new RuntimeException("Response code was not 200. Detected response was "+responseCode);
    }
    String output;
    Reader reader = null;
    try {
      reader = new BufferedReader(new InputStreamReader(response, "UTF-8"));
      StringBuilder builder = new StringBuilder();
      char[] buffer = new char[8192];
      int read;
      while ((read = reader.read(buffer, 0, buffer.length)) > 0) {
        builder.append(buffer, 0, read);
      }
      output = builder.toString();
    } 
    finally {
        if (reader != null) try {
          reader.close(); 
        } catch (IOException logOrIgnore) {
          logOrIgnore.printStackTrace();
        }
    }
    System.out.println(output);
  }
}
library(httr)
library(jsonlite)
library(xml2)
server <- "https://rest.ensembl.org"
ext <- "/sequence/region/human/X:1000000..1000100:1?"
r <- GET(paste(server, ext, sep = ""), content_type("application/json"))
stop_for_status(r)
# use this if you get a simple nested list back, otherwise inspect its structure
# head(data.frame(t(sapply(content(r),c))))
head(fromJSON(toJSON(content(r))))
curl 'https://rest.ensembl.org/sequence/region/human/X:1000000..1000100:1?' -H 'Content-type:application/json'
wget -q --header='Content-type:application/json' 'https://rest.ensembl.org/sequence/region/human/X:1000000..1000100:1?' -O -
use strict;
use warnings;
use HTTP::Tiny;
my $http = HTTP::Tiny->new();
my $server = 'https://rest.ensembl.org';
my $ext = '/sequence/region/human/X:1000000..1000100:1?mask=soft';
my $response = $http->get($server.$ext, {
  headers => { 'Content-type' => 'text/x-fasta' }
});
die "Failed!\n" unless $response->{success};
print "$response->{content}\n";
import requests, sys
server = "https://rest.ensembl.org"
ext = "/sequence/region/human/X:1000000..1000100:1?mask=soft"
r = requests.get(server+ext, headers={ "Content-Type" : "text/x-fasta"})
if not r.ok:
  r.raise_for_status()
  sys.exit()
print r.text
import requests, sys
server = "https://rest.ensembl.org"
ext = "/sequence/region/human/X:1000000..1000100:1?mask=soft"
r = requests.get(server+ext, headers={ "Content-Type" : "text/x-fasta"})
if not r.ok:
  r.raise_for_status()
  sys.exit()
print(r.text)
require 'net/http'
require 'uri'
server='https://rest.ensembl.org'
path = '/sequence/region/human/X:1000000..1000100:1?mask=soft'
url = URI.parse(server)
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(path, {'Content-Type' => 'text/x-fasta'})
response = http.request(request)
if response.code != "200"
  puts "Invalid response: #{response.code}"
  puts response.body
  exit
end
puts response.body
import java.net.URL;
import java.net.URLConnection;
import java.net.HttpURLConnection;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.Reader;
public class EnsemblRest {
  public static void main(String[] args) throws Exception {
    String server = "https://rest.ensembl.org";
    String ext = "/sequence/region/human/X:1000000..1000100:1?mask=soft";
    URL url = new URL(server + ext);
    URLConnection connection = url.openConnection();
    HttpURLConnection httpConnection = (HttpURLConnection)connection;
    
    httpConnection.setRequestProperty("Content-Type", "text/x-fasta");
    
    InputStream response = connection.getInputStream();
    int responseCode = httpConnection.getResponseCode();
    if(responseCode != 200) {
      throw new RuntimeException("Response code was not 200. Detected response was "+responseCode);
    }
    String output;
    Reader reader = null;
    try {
      reader = new BufferedReader(new InputStreamReader(response, "UTF-8"));
      StringBuilder builder = new StringBuilder();
      char[] buffer = new char[8192];
      int read;
      while ((read = reader.read(buffer, 0, buffer.length)) > 0) {
        builder.append(buffer, 0, read);
      }
      output = builder.toString();
    } 
    finally {
        if (reader != null) try {
          reader.close(); 
        } catch (IOException logOrIgnore) {
          logOrIgnore.printStackTrace();
        }
    }
    System.out.println(output);
  }
}
library(httr)
library(jsonlite)
library(xml2)
server <- "https://rest.ensembl.org"
ext <- "/sequence/region/human/X:1000000..1000100:1?mask=soft"
r <- GET(paste(server, ext, sep = ""), content_type("text/x-fasta"))
stop_for_status(r)
print(content(r))
curl 'https://rest.ensembl.org/sequence/region/human/X:1000000..1000100:1?mask=soft' -H 'Content-type:text/x-fasta'
wget -q --header='Content-type:text/x-fasta' 'https://rest.ensembl.org/sequence/region/human/X:1000000..1000100:1?mask=soft' -O -
use strict;
use warnings;
use HTTP::Tiny;
my $http = HTTP::Tiny->new();
my $server = 'https://rest.ensembl.org';
my $ext = '/sequence/region/human/X:1000000..1000100:1?';
my $response = $http->get($server.$ext, {
  headers => { 'Content-type' => 'text/x-fasta' }
});
die "Failed!\n" unless $response->{success};
print "$response->{content}\n";
import requests, sys
server = "https://rest.ensembl.org"
ext = "/sequence/region/human/X:1000000..1000100:1?"
r = requests.get(server+ext, headers={ "Content-Type" : "text/x-fasta"})
if not r.ok:
  r.raise_for_status()
  sys.exit()
print r.text
import requests, sys
server = "https://rest.ensembl.org"
ext = "/sequence/region/human/X:1000000..1000100:1?"
r = requests.get(server+ext, headers={ "Content-Type" : "text/x-fasta"})
if not r.ok:
  r.raise_for_status()
  sys.exit()
print(r.text)
require 'net/http'
require 'uri'
server='https://rest.ensembl.org'
path = '/sequence/region/human/X:1000000..1000100:1?'
url = URI.parse(server)
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(path, {'Content-Type' => 'text/x-fasta'})
response = http.request(request)
if response.code != "200"
  puts "Invalid response: #{response.code}"
  puts response.body
  exit
end
puts response.body
import java.net.URL;
import java.net.URLConnection;
import java.net.HttpURLConnection;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.Reader;
public class EnsemblRest {
  public static void main(String[] args) throws Exception {
    String server = "https://rest.ensembl.org";
    String ext = "/sequence/region/human/X:1000000..1000100:1?";
    URL url = new URL(server + ext);
    URLConnection connection = url.openConnection();
    HttpURLConnection httpConnection = (HttpURLConnection)connection;
    
    httpConnection.setRequestProperty("Content-Type", "text/x-fasta");
    
    InputStream response = connection.getInputStream();
    int responseCode = httpConnection.getResponseCode();
    if(responseCode != 200) {
      throw new RuntimeException("Response code was not 200. Detected response was "+responseCode);
    }
    String output;
    Reader reader = null;
    try {
      reader = new BufferedReader(new InputStreamReader(response, "UTF-8"));
      StringBuilder builder = new StringBuilder();
      char[] buffer = new char[8192];
      int read;
      while ((read = reader.read(buffer, 0, buffer.length)) > 0) {
        builder.append(buffer, 0, read);
      }
      output = builder.toString();
    } 
    finally {
        if (reader != null) try {
          reader.close(); 
        } catch (IOException logOrIgnore) {
          logOrIgnore.printStackTrace();
        }
    }
    System.out.println(output);
  }
}
library(httr)
library(jsonlite)
library(xml2)
server <- "https://rest.ensembl.org"
ext <- "/sequence/region/human/X:1000000..1000100:1?"
r <- GET(paste(server, ext, sep = ""), content_type("text/x-fasta"))
stop_for_status(r)
print(content(r))
curl 'https://rest.ensembl.org/sequence/region/human/X:1000000..1000100:1?' -H 'Content-type:text/x-fasta'
wget -q --header='Content-type:text/x-fasta' 'https://rest.ensembl.org/sequence/region/human/X:1000000..1000100:1?' -O -
| Methods | GET | 
| Response formats | fasta json seqxml text yaml jsonp | 
| Slice length | 1e7 |