Please note that we have implemented https and the URL of the API is

If the example Perl script does not work for you, you may try something a user did, as linked here.

Submitting through the web service

Multiple sequences can be submitted in bulk using a simple POST mechanism. The results are a tab-delimited table.


Sequence and snvlist files

The following fields are required for sequence or snvlist queries. These must be stored in a file for upload using the multipart/form-data protocol:

Genbank identifiers

Genbank queries can use a simple GET mechanism using the gb argument:


Output is specified by the output argument

Perl client example

use LWP::UserAgent;
use HTTP::Request::Common;

my $userAgent = LWP::UserAgent->new(timeout => 1800); #a half-hour

#fileType can be sequences or snvlist
my $request = POST '',
    Content_Type => 'multipart/form-data',
    Content => [ file => ['mySequences.fasta'], fileType => 'sequences', output => 'detail'];

my $response = $userAgent->request($request);
print $response->error_as_HTML . "
" if $response->is_error;

if ($response->is_success) {
     print $response->decoded_content;
} else {
     die $response->status_line;

Python2 client example

#!/usr/bin/env python2
from poster.encode import multipart_encode
from poster.streaminghttp import register_openers
import urllib2


#fileType can be sequences or snvlist
datagen, headers = multipart_encode({"file": open("mySequences.fasta"),'fileType':'sequences','output':'detail'})

request = urllib2.Request("", datagen, headers)
     print urllib2.urlopen(request).read()
except urllib2.HTTPError, e:
     print "HTTP error: %d" % e.code
except urllib2.URLError, e:
     print "Network error: %s" % e.reason.args[1]

Python3 client example

#!/usr/bin/env python3
import requests

    response ="", files={"file": open("mySequences.fasta"),'fileType': ('', 'sequences'),'output':('', 'detail')})
    print(str(response.content, 'utf-8'))
except requests.exceptions.HTTPError as err:
    print("HTTP error: " + err)