Client programs and API for use with iRODS (Integrated Rule-Oriented Data System).

baton |bəˈtän| noun, A short stick or staff or something resembling one.

Client programs and API for use with iRODS (Integrated Rule-Oriented Data System).

baton is a supplement to the command line client programs (ils, imeta etc.) provided with a standard iRODS installation. Its focus is metadata operations for iRODS collections and data objects. baton is spelled with a lower case letter 'b'.

The features it provides are:

  • A single JSON format for listing results, composing queries and performing updates.
  • Listing of data objects and collections as JSON, including their metadata (AVUs), file size, access control lists (ACLs) and creation and modification timestamps.
  • Queries on metadata, on access control lists (ACLs), creation and modification timestamps and timestamp ranges. The full range of iRODS query operators is supported.
  • Optional unbuffered IO for IPC via pipes, with fine-grained error reporting for batch operations.
  • Simplified API over the iRODS general query API to ease construction of new custom queries.
  • Downloading data objects as files or embedded in JSON (if data object content is UTF-8).



The baton source code is available from its GitHub page. Instructions on how to build and install the software are found in the README file.

baton supports the iRODS 3.3.x and iRODS 4.1.x series. You will need one of these installed prior to building.

Further information

The baton Unix manpage and HTML manual are included in the distribution. The HTML manual is also available online.

baton is licensed under version 2 of the GNU General Public License.


If you need help or have any queries, please contact us using the details below.

Keith James