Broad Institute GA4GH Tool Registry API

The GA4GH Tool Registry API from Broad Institute — 7 operation(s) for ga4gh tool registry.

Operations 7

GET /ga4gh/v1/tools/{id} List one specific tool, acts as an anchor for self references #
GET /ga4gh/v1/tools/{id}/versions List versions of a tool #
GET /ga4gh/v1/tools/{id}/versions/{version-id} List one specific tool version, acts as an anchor for self references #
GET /ga4gh/v1/tools List all tools #
GET /ga4gh/v1/tools/{id}/versions/{version-id}/{type}/descriptor Get the tool descriptor (WDL) for the specified tool #
GET /ga4gh/v1/metadata Return some metadata that is useful for describing this registry #
GET /ga4gh/v1/tool-classes List all tool types #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/broad-institute:broad-institute-ga4gh-tool-registry-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

broad-institute-ga4gh-tool-registry-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Terra GA4GH Tool Registry API
  description: Terra API
  termsOfService: https://app.terra.bio/#terms-of-service
  license:
    name: BSD
    url: http://opensource.org/licenses/BSD-3-Clause
  version: '0.1'
servers:
- url: /
security:
- oidc: []
tags:
- name: GA4GH Tool Registry
paths:
  /ga4gh/v1/tools/{id}:
    get:
      tags:
      - GA4GH Tool Registry
      summary: List one specific tool, acts as an anchor for self references
      description: This endpoint returns one specific tool (which has ToolVersions nested inside it)
      parameters:
      - name: id
        in: path
        description: A unique identifier of the tool, scoped to this registry, for example `123456`
        required: true
        schema:
          type: string
      responses:
        200:
          description: A tool.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tool'
      x-passthrough: true
      x-passthrough-target: agora
      operationId: getGa4ghV1ToolsById
      x-operation-id-source: derived
  /ga4gh/v1/tools/{id}/versions:
    get:
      tags:
      - GA4GH Tool Registry
      summary: List versions of a tool
      description: Returns all versions of the specified tool
      parameters:
      - name: id
        in: path
        description: A unique identifier of the tool, scoped to this registry, for example `123456`
        required: true
        schema:
          type: string
      responses:
        200:
          description: An array of tool versions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ToolVersion'
      x-passthrough: true
      x-passthrough-target: agora
      operationId: getGa4ghV1ToolsByIdVersions
      x-operation-id-source: derived
  /ga4gh/v1/tools/{id}/versions/{version-id}:
    get:
      tags:
      - GA4GH Tool Registry
      summary: List one specific tool version, acts as an anchor for self references
      description: This endpoint returns one specific tool version
      parameters:
      - name: id
        in: path
        description: A unique identifier of the tool, scoped to this registry, for example `123456`
        required: true
        schema:
          type: string
      - name: version-id
        in: path
        description: An identifier of the tool version, scoped to this registry, for example `v1`
        required: true
        schema:
          type: string
      responses:
        200:
          description: A tool version.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToolVersion'
      x-passthrough: true
      x-passthrough-target: agora
      operationId: getGa4ghV1ToolsByIdVersionsByVersionId
      x-operation-id-source: derived
  /ga4gh/v1/tools:
    get:
      tags:
      - GA4GH Tool Registry
      summary: List all tools
      description: This endpoint returns all tools available.
      responses:
        200:
          description: An array of Tools that match the filter.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Tool'
      x-passthrough: true
      x-passthrough-target: agora
      operationId: getGa4ghV1Tools
      x-operation-id-source: derived
  /ga4gh/v1/tools/{id}/versions/{version-id}/{type}/descriptor:
    get:
      tags:
      - GA4GH Tool Registry
      summary: Get the tool descriptor (WDL) for the specified tool
      description: Returns the WDL descriptor for the specified tool.
      parameters:
      - name: type
        in: path
        description: 'The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata.

          '
        required: true
        schema:
          type: string
          enum:
          - WDL
          - plain-WDL
      - name: id
        in: path
        description: "A unique identifier of the tool, scoped to this registry, for example `123456`.\n\n  *In Terra, this must be a namespace + \":\" + name. For instance, if your namespace\n  is 'foo' and name is 'bar', this must be 'foo:bar'.*\n"
        required: true
        schema:
          type: string
      - name: version-id
        in: path
        description: "An identifier of the tool version for this particular tool registry, for example `v1`.\n\n  *In Terra, this must be an integer representing the method snapshot id.*\n"
        required: true
        schema:
          type: string
      responses:
        200:
          description: The tool descriptor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToolDescriptor'
        404:
          description: The tool can not be output in the specified type.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-passthrough: true
      x-passthrough-target: agora
      operationId: getGa4ghV1ToolsByIdVersionsByVersionIdByTypeDescriptor
      x-operation-id-source: derived
  /ga4gh/v1/metadata:
    get:
      tags:
      - GA4GH Tool Registry
      summary: Return some metadata that is useful for describing this registry
      responses:
        200:
          description: A Metadata object describing this service.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
      x-passthrough: true
      x-passthrough-target: agora
      operationId: getGa4ghV1Metadata
      x-operation-id-source: derived
  /ga4gh/v1/tool-classes:
    get:
      tags:
      - GA4GH Tool Registry
      summary: List all tool types
      description: This endpoint returns all tool-classes available
      responses:
        200:
          description: An array of methods that match the filter.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ToolClass'
      x-passthrough: true
      x-passthrough-target: agora
      operationId: getGa4ghV1ToolClasses
      x-operation-id-source: derived
components:
  schemas:
    Metadata:
      required:
      - api-version
      - version
      type: object
      properties:
        version:
          type: string
          description: The version of this registry
        api-version:
          type: string
          description: The version of the GA4GH tool-registry API supported by this registry
        country:
          type: string
          description: A country code for the registry (ISO 3166-1 alpha-3)
        friendly-name:
          type: string
          description: A friendly name that can be used in addition to the hostname to describe a registry
      description: Describes this registry to better allow for mirroring and indexing.
    ToolClass:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for the class
        name:
          type: string
          description: A short friendly name for the class
        description:
          type: string
          description: A longer explanation of what this class is and what it can accomplish
      description: Describes a class (type) of tool allowing us to categorize workflows, tools, and maybe even other entities (such as services) separately
    ToolVersion:
      required:
      - id
      - meta-version
      - url
      type: object
      properties:
        name:
          type: string
          description: The name of the version.
        url:
          type: string
          description: The URL for this tool in this registry, for example `http://agora.broadinstitute.org/tools/123456/1`
        id:
          type: string
          description: An identifier of the version of this tool for this particular tool registry, for example `v1`
        image:
          type: string
          description: The docker path to the image (and version) for this tool. (e.g. quay.io/seqware/seqware_full/1.1). This always returns an empty string.
        descriptor-type:
          type: array
          description: The type (or types) of descriptors available.
          items:
            type: string
            enum:
            - WDL
        dockerfile:
          type: boolean
          description: Reports if this tool has a dockerfile available. This always returns false.
        meta-version:
          type: string
          description: The version of this tool version in the registry. Iterates when fields like the description, author, etc. are updated.
      description: A tool version describes a particular iteration of a tool as described by a reference to a specific image and dockerfile.
    Tool:
      required:
      - author
      - id
      - meta-version
      - organization
      - toolclass
      - url
      - versions
      type: object
      properties:
        url:
          type: string
          description: The URL for this tool in this registry, for example `http://agora.broadinstitute.org/tools/123456`
        id:
          type: string
          description: A unique identifier of the tool, scoped to this registry, for example `123456` or `123456_v1`
        organization:
          type: string
          description: The organization that published the image.
        toolname:
          type: string
          description: The name of the tool.
        toolclass:
          $ref: '#/components/schemas/ToolClass'
        description:
          type: string
          description: The description of the tool.
        author:
          type: string
          description: Contact information for the author of this tool entry in the registry. (More complex authorship information is handled by the descriptor)
        meta-version:
          type: string
          description: The version of this tool in the registry. Iterates when fields like the description, author, etc. are updated.
        contains:
          type: array
          description: An array of IDs for the applications that are stored inside this tool (for example `https://bio.tools/tool/mytum.de/SNAP2/1`). This always returns an empty array.
          items:
            type: string
        verified:
          type: boolean
          description: Reports whether this tool has been verified by a specific organization or individual.  This always returns false.
        verified-source:
          type: string
          description: Source of metadata that can support a verified tool, such as an email or URL
        signed:
          type: boolean
          description: Reports whether this tool has been signed.  This always returns false.
        versions:
          type: array
          description: A list of versions for this tool
          items:
            $ref: '#/components/schemas/ToolVersion'
      description: A tool (or described tool) describes one pairing of a tool as described in a descriptor file (which potentially describes multiple tools) and a Docker image.
    Error:
      type: object
      properties:
        code:
          type: integer
          format: int32
          default: 500
        message:
          type: string
          default: Internal Server Error
    ToolDescriptor:
      required:
      - descriptor
      - type
      type: object
      properties:
        type:
          type: string
          enum:
          - WDL
        descriptor:
          type: string
          description: The descriptor that represents this version of the tool. (WDL)
        url:
          type: string
          description: Optional url to the tool descriptor used to build this image, should include version information, and can include a git hash (e.g. https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl )
      description: A tool descriptor is a metadata document that describes one or more tools.
  securitySchemes:
    oidc:
      type: oauth2
      x-tokenName: id_token
      flows:
        authorizationCode:
          authorizationUrl: OAUTH_AUTHORIZATION_URL
          scopes: {}
          tokenUrl: OAUTH_TOKEN_URL
    oidc_google_billing_scope:
      type: oauth2
      x-tokenName: id_token
      flows:
        authorizationCode:
          authorizationUrl: OAUTH_AUTHORIZATION_URL_WITH_GOOGLE_BILLING_SCOPE
          scopes: {}
          tokenUrl: OAUTH_TOKEN_URL_WITH_GOOGLE_BILLING_SCOPE