---
title: "List all tools"
method: GET
path: "/ga4gh/trs/v2/tools"
tags: ["GA4GHV20"]
---

# List all tools

`GET /ga4gh/trs/v2/tools`

This endpoint returns all tools available or a filtered subset using metadata query parameters.

## Query parameters

- `id` string
- `alias` string
- `toolClass` 'CommandLineTool' | 'Workflow'
- `descriptorType` 'CWL' | 'WDL' | 'NFL' | 'GALAXY' | 'SMK' | 'SERVICE' | 'JUPYTER'
- `registry` string
- `organization` string
- `name` string
- `toolname` string
- `description` string
- `author` string
- `checker` boolean
- `offset` string
- `limit` integer

## Response `200`

An array of Tools that match the filter.

- Tool[]
  - `aliases` string[] — Support for this parameter is optional for tool registries that support aliases. A list of strings that can be used to identify this tool which could be straight up URLs. This can be used to expose alternative ids (such as GUIDs) for a tool for registries. Can be used to match tools across registries.
  - `checker_url` string — Optional url to the checker tool that will exit successfully if this tool produced the expected result given test data.
  - `description` string — The description of the tool.
  - `has_checker` boolean — Whether this tool has a checker tool associated with it.
  - `id` string, required — A unique identifier of the tool, scoped to this registry.
  - `meta_version` string — The version of this tool in the registry. Iterates when fields like the description, author, etc. are updated.
  - `name` string — The name of the tool.
  - `organization` string, required — The organization that published the image.
  - `toolclass` ToolClass, required — Describes a class (type) of tool allowing us to categorize workflows, tasks, and maybe even other entities (such as services) separately.
    - `description` string — A longer explanation of what this class is and what it can accomplish.
    - `id` string — The unique identifier for the class.
    - `name` string — A short friendly name for the class.
  - `url` string, required — The URL for this tool in this registry.
  - `versions` ToolVersion[], required — A list of versions for this tool.
    - `author` string[] — Contact information for the author of this version of the tool in the registry. (More complex authorship information is handled by the descriptor).
    - `containerfile` boolean — Reports if this tool has a containerfile available. (For Docker-based tools, this would indicate the presence of a Dockerfile)
    - `descriptor_type` string[] — The type (or types) of descriptors available.
    - `descriptor_type_version` object — A map providing information about the language versions used in this tool. The keys should be the same values used in the `descriptor_type` field, and the value should be an array of all the language versions used for the given `descriptor_type`. Depending on the `descriptor_type` (e.g. CWL) multiple version values may be used in a single tool.
    - `id` string, required — An identifier of the version of this tool for this particular tool registry.
    - `images` ImageData[] — All known docker images (and versions/hashes) used by this tool. If the tool has to evaluate any of the docker images strings at runtime, those ones cannot be reported here.
      - `checksum` Checksum[] — A production (immutable) tool version is required to have a hashcode. Not required otherwise, but might be useful to detect changes. This exposes the hashcode for specific image versions to verify that the container version pulled is actually the version that was indexed by the registry.
        - `checksum` string, required — The hex-string encoded checksum for the data.
        - `type` string, required — The digest method used to create the checksum. The value (e.g. `sha-256`) SHOULD be listed as `Hash Name String` in the https://github.com/ga4gh-discovery/ga4gh-checksum/blob/master/hash-alg.csv[GA4GH Checksum Hash Algorithm Registry]. Other values MAY be used, as long as implementors are aware of the issues discussed in https://tools.ietf.org/html/rfc6920#section-9.4[RFC6920]. GA4GH may provide more explicit guidance for use of non-IANA-registered algorithms in the future.
      - `image_name` string — Used in conjunction with a registry_url if provided to locate images.
      - `image_type` 'Docker' | 'Singularity' | 'Conda'
      - `registry_host` string — A docker registry or a URL to a Singularity registry. Used along with image_name to locate a specific image.
      - `size` integer — Size of the container in bytes.
      - `updated` string — Last time the container was updated.
    - `included_apps` string[] — An array of IDs for the applications that are stored inside this tool.
    - `is_production` boolean — This version of a tool is guaranteed to not change over time (for example, a tool built from a tag in git as opposed to a branch). A production quality tool is required to have a checksum
    - `meta_version` string — The version of this tool version in the registry. Iterates when fields like the description, author, etc. are updated.
    - `name` string — The name of the version.
    - `signed` boolean — Reports whether this version of the tool has been signed.
    - `url` string, required — The URL for this tool version in this registry.
    - `verified` boolean — Reports whether this tool has been verified by a specific organization or individual.
    - `verified_source` string[] — Source of metadata that can support a verified tool, such as an email or URL.

---

[API](https://skmtc.dev/dockstore/apis/dockstore-api.md) · [All operations](https://skmtc.dev/dockstore/apis/dockstore-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/dockstore/dockstore-api/revisions/9d82a4e96aa7/schema)
