Developer Information


BLAST is public domain software.

Web service interface

The NCBI supports two (similar) RESTful interfaces to programmatically submit BLAST searches. Users of the service at the NCBI should respect the usage guidelines below.


Two similar RESTful interfaces are supported for submission of BLAST searches via an HTTP-based interface:

1.) NCBI. Searches are submitted to the NCBI servers. Documentation and sample perl code are available. This is a public resource, so usage limitations apply. Projects that involve a large number of BLAST searches should use the RESTful interface at a cloud provider or stand-alone BLAST.

2.) Cloud Provider. This service is similar to the one offered at the NCBI, and it can be especially useful for projects that involve a large number of BLAST searches or custom databases. See the CloudBlast page for more information.

Usage Guidelines

Do not overload the NCBI servers. If you are intending to perform more than 20 searches in a session you should comply with the following guidelines:

1.) Do not contact the server more often than once every three seconds.

2.) Do not poll for any single RID more often than once a minute.

3.) Use the URL parameter email, and tool, so that we can track your project and contact you if there is a problem.

4.) Run scripts weekends or between 9 pm and 5 am Eastern Time weekday if more than 50 searches will be submitted.

BLAST often runs more efficiently if multiple queries are sent as one search than if each query is sent as an individual search. This is especially true for blastn, megablast, and tblastn. If your queries are short (less than a few hundred bases) we suggest you merge them into one search of up to 10,000 bases

The NCBI servers are a shared resource and not intended for projects that involve a large number of BLAST searches. Stand-alone BLAST and the RESTful API at a cloud provider are provided for such projects.

C++ Toolkit implementation

The currently-maintained implementation of BLAST is part of the NCBI C++ Toolkit. The algorithm core is written in C and a documented C++ API is available. The source code may be downloaded by FTP and browsed with LXR .