NCBI BLAST+ 1) 2) 3) is a sequence similarity search program. The emphasis is to find regions of sequence similarity, which will yield functional and evolutionary clues about the structure and function of the query sequence. WU-BLAST and NCBI BLAST are distinctly different software packages, although they have a common lineage for some portions of their code, so the services do their work differently, obtain different results and offer different features.

For more information see:

Web service registry entries:


We kindly ask all users of EMBL-EBI Web Services to submit tool jobs in batches of no more than 30 at a time and not to submit more until the results and processing is complete. Please ensure that a valid email address is provided. Excessive usage of a particular resource will be dealt with in accordance with EMBL-EBI's Terms of Use. Please contact us if you need further information.


Sample clients are provided for a number of programming languages. For details of how to use these clients, download the client and run the program without any arguments.

Language Download Requirements
Java ncbiblast.jar Java 8
Perl LWP and XML::Simple
PHP ncbiblast_lib_php_file.php, ncbiblast_cli_php_file.php, ncbiblast_web_php_file.php PHP file_get_contents and PHP SimpleXML
Python urllib2 and xmltramp
Python3 urllib3, and xmltramp2
Ruby ncbiblast_net_http.rb net/http and REXML

For further details of these tool-kits and workflow platforms see our Guide to Web Services.


The WADL for the NCBI BLAST (REST) service:


The service consists of a number of resources which indicate errors through the use of HTTP status codes.


List parameter names.


Parameters none


An XML document containing a list of parameter names.

For example:


Get detailed information about a parameter.


Parameters $parameterId: the name of the parameter


An XML document providing details about the parameter.

For example:

If the named parameter does not exist for the tool, a 400 HTTP status code will be returned with the message “com.sun.jersey.api.container.ContainerCheckedException: java.lang.Exception: parameter not found”.


Submit a job with the specified parameters.


POST email User e-mail address. See Why do you need my e-mail address?
title an optional title for the job.
program BLAST program to use to perform the search.
matrix Scoring matrix to be used in the search.
alignments Maximum number of alignments displayed in the output.
scores Maximum number of scores displayed in the output.
exp E-value threshold.
dropoff Amount score must drop before extension of hits is halted.
match_scores Match/miss-match scores to generate a scoring matrix for for nucleotide searches.
gapopen Penalty for the initiation of a gap.
gapext Penalty for each base/residue in a gap.
filter Low complexity sequence filter to process the query sequence before performing the search.
seqrange Region of the query sequence to use for the search. Default: whole sequence.
gapalign Perform gapped alignments.
compstats Compositional adjustment or compositional statistics mode to use.
align Alignment format to use in output.
stype Query sequence type. One of: dna, rna or protein.
sequence Query sequence. The use of fasta formatted sequence is recommended.
database List of database names for search.

Note: this request must be made using POST, if GET is used a 405 HTTP status is returned with the description “The specified HTTP method is not allowed for the requested resource”.

More detailed information about each parameter, including valid values can be obtained using the getParameterDetails(parameterId) operation.


A plain text document containing the job identifier.


Get the status of a submitted job.


Parameters $jobId: job identifier


A plain text document containing the job status.

The values for the status are:

  • RUNNING: the job is currently being processed.
  • FINISHED: job has finished, and the results can then be retrieved.
  • ERROR: an error occurred attempting to get the job status.
  • FAILURE: the job failed.
  • NOT_FOUND: the job cannot be found.

Further details can be found in Synchronous and Asynchronous Access: JDispatcher.


Get available result types for a finished job.


Parameters $jobId: job identifier


An XML document detailing the available result types.


Get the job result of the specified type.


Parameters $jobId: job identifier
$resultType: type of result to retrieve. See resulttypes.


A document containing the result in the requested format. The MIME type of the returned document is set according to the format.

1) Camacho, C., Coulouris, G., Avagyan, V., Ma, N., Papadopoulos, J., Bealer, K. and Madden T.L. (2009)
BLAST+: architecture and applications.
BMC Bioinformatics 10:421
PubMed: 20003500
DOI: 10.1186/1471-2105-10-421
2) Altschul S.F., Madden T.L., Schaffer A.A., Zhang J., Zhang Z., Miller W. and Lipman D.J. (1997)
Gapped BLAST and PSI-BLAST: a new generation of protein database search programs.
Nucleic Acids Res. 25(17):3389-402.
PubMed: 9254694
DOI: 10.1093/nar/25.17.3389
3) Altschul, S.F., Gish, W., Miller, W., Myers, E.W. and Lipman, D.J. (1990)
Basic local alignment search tool.
Journal of Molecular Biology 215(3):403-10
PubMed: 2231712
services/sss/ncbi_blast_rest.txt · Last modified: 2017/02/15 14:33 by chojnasm