---
title: "Fetch Tools"
method: GET
path: "/v2/tools"
tags: ["Tools V2"]
---

# Fetch Tools

`GET /v2/tools`

## Query parameters

- `show_bundled` boolean
- `ids` string[], nullable
- `toolkit_ids` string[], nullable
- `names` string[], nullable
- `query` string, nullable — Search by name and description
- `limit` integer, nullable — Limit the number of results returned
- `offset` integer, nullable — Skip the first N results
- `sort` 'asc' | 'desc' | 'recent'

## Response `200`

Successful Response

- union
  - ToolsResponseWithPagination
    - `data` ToolOut[], required
      - `id` string, uuid, nullable
      - `tenant_id` string, nullable
      - `tenant_name` string, nullable
      - `title` string, nullable
      - `description` string, required
      - `created_on` string, date-time, nullable
      - `created_by` string, nullable
      - `created_by_username` string, nullable
      - `updated_at` string, date-time, nullable
      - `tags` unknown[], nullable
        - unknown
      - `name` string, required
      - `permission` 'read_only' | 'write_only' | 'read_write' | 'admin', required — The permission level required to use this tool.
      - `input_schema` ToolRequestBodyOutput — A request body for a tool.
        - `type` 'object' | 'string'
        - `properties` object
        - `required` string[], nullable
      - `output_schema` ToolResponseBodyOutput — A response body for a tool.
        - `type` 'object' | 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'null'
        - `description` string, nullable
        - `properties` object, nullable
        - `items` JsonSchemaObjectOutput — A JSON Schema object that defines the structure and validation rules for JSON data.
          - `type` 'object' | 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'null'
          - `title` string, nullable
          - `description` string, nullable
          - `properties` object, nullable
          - `required` string[], nullable
          - `items` JsonSchemaObjectOutput — recursive
          - `default` unknown
          - `enum` unknown[], nullable
            - unknown
          - `minimum` number, nullable
          - `maximum` number, nullable
          - `minLength` integer, nullable
          - `maxLength` integer, nullable
          - `pattern` string, nullable
          - `format` string, nullable
          - `in` 'query' | 'header' | 'path' | 'body', nullable
          - `aliasName` string, nullable
          - `anyOf` JsonSchemaObjectOutput[], nullable
          - `oneOf` JsonSchemaObjectOutput[], nullable
          - `allOf` JsonSchemaObjectOutput[], nullable
        - `required` string[], nullable
        - `format` string, nullable
        - `anyOf` JsonSchemaObjectOutput[], nullable
          - `type` 'object' | 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'null'
          - `title` string, nullable
          - `description` string, nullable
          - `properties` object, nullable
          - `required` string[], nullable
          - `items` JsonSchemaObjectOutput — recursive
          - `default` unknown
          - `enum` unknown[], nullable
            - unknown
          - `minimum` number, nullable
          - `maximum` number, nullable
          - `minLength` integer, nullable
          - `maxLength` integer, nullable
          - `pattern` string, nullable
          - `format` string, nullable
          - `in` 'query' | 'header' | 'path' | 'body', nullable
          - `aliasName` string, nullable
          - `anyOf` JsonSchemaObjectOutput[], nullable
          - `oneOf` JsonSchemaObjectOutput[], nullable
          - `allOf` JsonSchemaObjectOutput[], nullable
        - `oneOf` JsonSchemaObjectOutput[], nullable
          - `type` 'object' | 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'null'
          - `title` string, nullable
          - `description` string, nullable
          - `properties` object, nullable
          - `required` string[], nullable
          - `items` JsonSchemaObjectOutput — recursive
          - `default` unknown
          - `enum` unknown[], nullable
            - unknown
          - `minimum` number, nullable
          - `maximum` number, nullable
          - `minLength` integer, nullable
          - `maxLength` integer, nullable
          - `pattern` string, nullable
          - `format` string, nullable
          - `in` 'query' | 'header' | 'path' | 'body', nullable
          - `aliasName` string, nullable
          - `anyOf` JsonSchemaObjectOutput[], nullable
          - `oneOf` JsonSchemaObjectOutput[], nullable
          - `allOf` JsonSchemaObjectOutput[], nullable
        - `allOf` JsonSchemaObjectOutput[], nullable
          - `type` 'object' | 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'null'
          - `title` string, nullable
          - `description` string, nullable
          - `properties` object, nullable
          - `required` string[], nullable
          - `items` JsonSchemaObjectOutput — recursive
          - `default` unknown
          - `enum` unknown[], nullable
            - unknown
          - `minimum` number, nullable
          - `maximum` number, nullable
          - `minLength` integer, nullable
          - `maxLength` integer, nullable
          - `pattern` string, nullable
          - `format` string, nullable
          - `in` 'query' | 'header' | 'path' | 'body', nullable
          - `aliasName` string, nullable
          - `anyOf` JsonSchemaObjectOutput[], nullable
          - `oneOf` JsonSchemaObjectOutput[], nullable
          - `allOf` JsonSchemaObjectOutput[], nullable
      - `binding` ToolBindingOutput — A binding of the tool to a specific runtime environment such as an OpenAPI endpoint or local Python function.
        - `openapi` OpenApiToolBindingOutput — A binding for a tool that uses an OpenAPI endpoint.
          - `http_method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', required
          - `http_path` string, required
          - `security` OpenApiSecurityScheme[]
            - `type` 'apiKey' | 'http' | 'oauth2' | 'openIdConnect', nullable
            - `scheme` 'basic' | 'bearer' | 'oauth', nullable
            - `in` 'query' | 'header' | 'cookie', nullable
            - `name` string, nullable
            - `description` string, nullable
            - `open_id_connect_url` string, nullable
            - `flows` object, nullable
          - `servers` string[]
          - `connection_id` string, nullable
          - `callback` CallbackBindingOutput — A binding for a tool that uses a callback URL.
            - `callback_url` string, required — The URL to send the callback to
            - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', required — HTTP methods supported for callbacks.
            - `input_schema` ToolRequestBodyOutput — A request body for a tool.
              - …
            - `output_schema` ToolResponseBodyOutput, required — A response body for a tool.
              - …
          - `acknowledgement` AcknowledgementResponseBodyOutput — An acknowledgment for the tools that are async
            - `output_schema` ToolResponseBodyOutput, required — A response body for a tool.
              - …
        - `python` PythonToolBinding — A binding for a tool that uses a Python function.
          - `function` string, required — The fully qualified name of the Python function to call.
          - `requirements` string[] — details of any requirements that are to be installed along with tool
          - `connections` object, nullable — details of the credential connections of the Python tool
        - `wxflows` WxFlowsToolBinding — A binding for a tool that uses a watsonx.ai Flows agent.
          - `endpoint` string, required — The wxflows endpoint.
          - `flow_name` string, required — The name of the flow to call.
          - `security` OpenApiSecurityScheme — A security scheme for an OpenAPI endpoint.
            - `type` 'apiKey' | 'http' | 'oauth2' | 'openIdConnect', nullable
            - `scheme` 'basic' | 'bearer' | 'oauth', nullable
            - `in` 'query' | 'header' | 'cookie', nullable
            - `name` string, nullable
            - `description` string, nullable
            - `open_id_connect_url` string, nullable
            - `flows` object, nullable
        - `skill` SkillToolBinding — A binding for a tool that uses a watsonx Orchestrate Skill.
          - `skillset_id` string, required — The ID of the skillset containing the skill to call.
          - `skill_id` string, required — The ID of the skill to call.
          - `skill_operation_path` string, required — The path to the skill operation to call.
          - `http_method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', required
        - `client_side` ClientSideToolBinding — A binding for a tool that is executed on the client side.
        - `conversational_search` ConversationalSearchToolBinding
          - `conversational_search_config` object
          - `connections` unknown[]
            - unknown
          - `version` string
        - `mcp` MCPToolBinding — A binding for a tool that from MCP server.
          - `server_url` string, nullable — mcp server url to connect to
          - `source` 'public-registry' | 'files', nullable
          - `env` object, nullable — details of the envs to be set
          - `command` string, nullable — command to start the mcp server
          - `args` string[] — arguments to start the mcp server
          - `transport` string, nullable — transport protocol of remote mcp
          - `connections` object, nullable — details of the credential connections of the Python tool
        - `flow` FlowToolBindingOutput — A binding for a tool that uses a flow. A flow tool is called as an OpenAPI tool.
          - `http_method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', nullable
          - `http_path` string, nullable
          - `security` OpenApiSecurityScheme[]
            - `type` 'apiKey' | 'http' | 'oauth2' | 'openIdConnect', nullable
            - `scheme` 'basic' | 'bearer' | 'oauth', nullable
            - `in` 'query' | 'header' | 'cookie', nullable
            - `name` string, nullable
            - `description` string, nullable
            - `open_id_connect_url` string, nullable
            - `flows` object, nullable
          - `servers` string[]
          - `connection_id` string, nullable
          - `callback` CallbackBindingOutput — A binding for a tool that uses a callback URL.
            - `callback_url` string, required — The URL to send the callback to
            - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', required — HTTP methods supported for callbacks.
            - `input_schema` ToolRequestBodyOutput — A request body for a tool.
              - …
            - `output_schema` ToolResponseBodyOutput, required — A response body for a tool.
              - …
          - `acknowledgement` AcknowledgementResponseBodyOutput — An acknowledgment for the tools that are async
            - `output_schema` ToolResponseBodyOutput, required — A response body for a tool.
              - …
          - `flow_id` string — The ID of the flow to call.
          - `version` string — The version of the flow to call.
          - `dependencies` FlowDependencies — Tools and agents dependencies of a flow tool
            - `tools` string[]
            - `agents` string[]
          - `model` object, nullable — The flow model to be used to generate an OpenAPI spec. This won't be stored.
        - `langflow` LangflowToolBinding — A binding for a tool that uses Langflow.
          - `langflow_id` string, nullable — The ID of langflow that is binded
          - `project_id` string, nullable — The ID of project in which Langflow is created
          - `langflow_version` string, nullable — The version of the Langflow tool binded
          - `connections` object, nullable — details of the credential connections of the Langflow tool
      - `display_name` string, required
      - `uid` union
        - string
        - string, uuid
      - `collab_idf` union
        - string
        - string, uuid
      - `environment_id` union
        - string
        - string, uuid
      - `toolkit_id` union
        - string
        - string, uuid
      - `is_async` boolean — Whether the tool execution is asynchronous
      - `restrictions` string, nullable — Whether the tool is editable or not
      - `bundled_agent_id` union
        - string
        - string, uuid
    - `total` integer, required
    - `limit` integer, required
    - `offset` integer, required
    - `result_count` integer, required
  - ToolOut[]
    - `id` string, uuid, nullable
    - `tenant_id` string, nullable
    - `tenant_name` string, nullable
    - `title` string, nullable
    - `description` string, required
    - `created_on` string, date-time, nullable
    - `created_by` string, nullable
    - `created_by_username` string, nullable
    - `updated_at` string, date-time, nullable
    - `tags` unknown[], nullable
      - unknown
    - `name` string, required
    - `permission` 'read_only' | 'write_only' | 'read_write' | 'admin', required — The permission level required to use this tool.
    - `input_schema` ToolRequestBodyOutput — A request body for a tool.
      - `type` 'object' | 'string'
      - `properties` object
      - `required` string[], nullable
    - `output_schema` ToolResponseBodyOutput — A response body for a tool.
      - `type` 'object' | 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'null'
      - `description` string, nullable
      - `properties` object, nullable
      - `items` JsonSchemaObjectOutput — A JSON Schema object that defines the structure and validation rules for JSON data.
        - `type` 'object' | 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'null'
        - `title` string, nullable
        - `description` string, nullable
        - `properties` object, nullable
        - `required` string[], nullable
        - `items` JsonSchemaObjectOutput — recursive
        - `default` unknown
        - `enum` unknown[], nullable
          - unknown
        - `minimum` number, nullable
        - `maximum` number, nullable
        - `minLength` integer, nullable
        - `maxLength` integer, nullable
        - `pattern` string, nullable
        - `format` string, nullable
        - `in` 'query' | 'header' | 'path' | 'body', nullable
        - `aliasName` string, nullable
        - `anyOf` JsonSchemaObjectOutput[], nullable
        - `oneOf` JsonSchemaObjectOutput[], nullable
        - `allOf` JsonSchemaObjectOutput[], nullable
      - `required` string[], nullable
      - `format` string, nullable
      - `anyOf` JsonSchemaObjectOutput[], nullable
        - `type` 'object' | 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'null'
        - `title` string, nullable
        - `description` string, nullable
        - `properties` object, nullable
        - `required` string[], nullable
        - `items` JsonSchemaObjectOutput — recursive
        - `default` unknown
        - `enum` unknown[], nullable
          - unknown
        - `minimum` number, nullable
        - `maximum` number, nullable
        - `minLength` integer, nullable
        - `maxLength` integer, nullable
        - `pattern` string, nullable
        - `format` string, nullable
        - `in` 'query' | 'header' | 'path' | 'body', nullable
        - `aliasName` string, nullable
        - `anyOf` JsonSchemaObjectOutput[], nullable
        - `oneOf` JsonSchemaObjectOutput[], nullable
        - `allOf` JsonSchemaObjectOutput[], nullable
      - `oneOf` JsonSchemaObjectOutput[], nullable
        - `type` 'object' | 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'null'
        - `title` string, nullable
        - `description` string, nullable
        - `properties` object, nullable
        - `required` string[], nullable
        - `items` JsonSchemaObjectOutput — recursive
        - `default` unknown
        - `enum` unknown[], nullable
          - unknown
        - `minimum` number, nullable
        - `maximum` number, nullable
        - `minLength` integer, nullable
        - `maxLength` integer, nullable
        - `pattern` string, nullable
        - `format` string, nullable
        - `in` 'query' | 'header' | 'path' | 'body', nullable
        - `aliasName` string, nullable
        - `anyOf` JsonSchemaObjectOutput[], nullable
        - `oneOf` JsonSchemaObjectOutput[], nullable
        - `allOf` JsonSchemaObjectOutput[], nullable
      - `allOf` JsonSchemaObjectOutput[], nullable
        - `type` 'object' | 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'null'
        - `title` string, nullable
        - `description` string, nullable
        - `properties` object, nullable
        - `required` string[], nullable
        - `items` JsonSchemaObjectOutput — recursive
        - `default` unknown
        - `enum` unknown[], nullable
          - unknown
        - `minimum` number, nullable
        - `maximum` number, nullable
        - `minLength` integer, nullable
        - `maxLength` integer, nullable
        - `pattern` string, nullable
        - `format` string, nullable
        - `in` 'query' | 'header' | 'path' | 'body', nullable
        - `aliasName` string, nullable
        - `anyOf` JsonSchemaObjectOutput[], nullable
        - `oneOf` JsonSchemaObjectOutput[], nullable
        - `allOf` JsonSchemaObjectOutput[], nullable
    - `binding` ToolBindingOutput — A binding of the tool to a specific runtime environment such as an OpenAPI endpoint or local Python function.
      - `openapi` OpenApiToolBindingOutput — A binding for a tool that uses an OpenAPI endpoint.
        - `http_method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', required
        - `http_path` string, required
        - `security` OpenApiSecurityScheme[]
          - `type` 'apiKey' | 'http' | 'oauth2' | 'openIdConnect', nullable
          - `scheme` 'basic' | 'bearer' | 'oauth', nullable
          - `in` 'query' | 'header' | 'cookie', nullable
          - `name` string, nullable
          - `description` string, nullable
          - `open_id_connect_url` string, nullable
          - `flows` object, nullable
        - `servers` string[]
        - `connection_id` string, nullable
        - `callback` CallbackBindingOutput — A binding for a tool that uses a callback URL.
          - `callback_url` string, required — The URL to send the callback to
          - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', required — HTTP methods supported for callbacks.
          - `input_schema` ToolRequestBodyOutput — A request body for a tool.
            - `type` 'object' | 'string'
            - `properties` object
            - `required` string[], nullable
          - `output_schema` ToolResponseBodyOutput, required — A response body for a tool.
            - `type` 'object' | 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'null'
            - `description` string, nullable
            - `properties` object, nullable
            - `items` JsonSchemaObjectOutput — A JSON Schema object that defines the structure and validation rules for JSON data.
              - …
            - `required` string[], nullable
            - `format` string, nullable
            - `anyOf` JsonSchemaObjectOutput[], nullable
              - …
            - `oneOf` JsonSchemaObjectOutput[], nullable
              - …
            - `allOf` JsonSchemaObjectOutput[], nullable
              - …
        - `acknowledgement` AcknowledgementResponseBodyOutput — An acknowledgment for the tools that are async
          - `output_schema` ToolResponseBodyOutput, required — A response body for a tool.
            - `type` 'object' | 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'null'
            - `description` string, nullable
            - `properties` object, nullable
            - `items` JsonSchemaObjectOutput — A JSON Schema object that defines the structure and validation rules for JSON data.
              - …
            - `required` string[], nullable
            - `format` string, nullable
            - `anyOf` JsonSchemaObjectOutput[], nullable
              - …
            - `oneOf` JsonSchemaObjectOutput[], nullable
              - …
            - `allOf` JsonSchemaObjectOutput[], nullable
              - …
      - `python` PythonToolBinding — A binding for a tool that uses a Python function.
        - `function` string, required — The fully qualified name of the Python function to call.
        - `requirements` string[] — details of any requirements that are to be installed along with tool
        - `connections` object, nullable — details of the credential connections of the Python tool
      - `wxflows` WxFlowsToolBinding — A binding for a tool that uses a watsonx.ai Flows agent.
        - `endpoint` string, required — The wxflows endpoint.
        - `flow_name` string, required — The name of the flow to call.
        - `security` OpenApiSecurityScheme — A security scheme for an OpenAPI endpoint.
          - `type` 'apiKey' | 'http' | 'oauth2' | 'openIdConnect', nullable
          - `scheme` 'basic' | 'bearer' | 'oauth', nullable
          - `in` 'query' | 'header' | 'cookie', nullable
          - `name` string, nullable
          - `description` string, nullable
          - `open_id_connect_url` string, nullable
          - `flows` object, nullable
      - `skill` SkillToolBinding — A binding for a tool that uses a watsonx Orchestrate Skill.
        - `skillset_id` string, required — The ID of the skillset containing the skill to call.
        - `skill_id` string, required — The ID of the skill to call.
        - `skill_operation_path` string, required — The path to the skill operation to call.
        - `http_method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', required
      - `client_side` ClientSideToolBinding — A binding for a tool that is executed on the client side.
      - `conversational_search` ConversationalSearchToolBinding
        - `conversational_search_config` object
        - `connections` unknown[]
          - unknown
        - `version` string
      - `mcp` MCPToolBinding — A binding for a tool that from MCP server.
        - `server_url` string, nullable — mcp server url to connect to
        - `source` 'public-registry' | 'files', nullable
        - `env` object, nullable — details of the envs to be set
        - `command` string, nullable — command to start the mcp server
        - `args` string[] — arguments to start the mcp server
        - `transport` string, nullable — transport protocol of remote mcp
        - `connections` object, nullable — details of the credential connections of the Python tool
      - `flow` FlowToolBindingOutput — A binding for a tool that uses a flow. A flow tool is called as an OpenAPI tool.
        - `http_method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', nullable
        - `http_path` string, nullable
        - `security` OpenApiSecurityScheme[]
          - `type` 'apiKey' | 'http' | 'oauth2' | 'openIdConnect', nullable
          - `scheme` 'basic' | 'bearer' | 'oauth', nullable
          - `in` 'query' | 'header' | 'cookie', nullable
          - `name` string, nullable
          - `description` string, nullable
          - `open_id_connect_url` string, nullable
          - `flows` object, nullable
        - `servers` string[]
        - `connection_id` string, nullable
        - `callback` CallbackBindingOutput — A binding for a tool that uses a callback URL.
          - `callback_url` string, required — The URL to send the callback to
          - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', required — HTTP methods supported for callbacks.
          - `input_schema` ToolRequestBodyOutput — A request body for a tool.
            - `type` 'object' | 'string'
            - `properties` object
            - `required` string[], nullable
          - `output_schema` ToolResponseBodyOutput, required — A response body for a tool.
            - `type` 'object' | 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'null'
            - `description` string, nullable
            - `properties` object, nullable
            - `items` JsonSchemaObjectOutput — A JSON Schema object that defines the structure and validation rules for JSON data.
              - …
            - `required` string[], nullable
            - `format` string, nullable
            - `anyOf` JsonSchemaObjectOutput[], nullable
              - …
            - `oneOf` JsonSchemaObjectOutput[], nullable
              - …
            - `allOf` JsonSchemaObjectOutput[], nullable
              - …
        - `acknowledgement` AcknowledgementResponseBodyOutput — An acknowledgment for the tools that are async
          - `output_schema` ToolResponseBodyOutput, required — A response body for a tool.
            - `type` 'object' | 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'null'
            - `description` string, nullable
            - `properties` object, nullable
            - `items` JsonSchemaObjectOutput — A JSON Schema object that defines the structure and validation rules for JSON data.
              - …
            - `required` string[], nullable
            - `format` string, nullable
            - `anyOf` JsonSchemaObjectOutput[], nullable
              - …
            - `oneOf` JsonSchemaObjectOutput[], nullable
              - …
            - `allOf` JsonSchemaObjectOutput[], nullable
              - …
        - `flow_id` string — The ID of the flow to call.
        - `version` string — The version of the flow to call.
        - `dependencies` FlowDependencies — Tools and agents dependencies of a flow tool
          - `tools` string[]
          - `agents` string[]
        - `model` object, nullable — The flow model to be used to generate an OpenAPI spec. This won't be stored.
      - `langflow` LangflowToolBinding — A binding for a tool that uses Langflow.
        - `langflow_id` string, nullable — The ID of langflow that is binded
        - `project_id` string, nullable — The ID of project in which Langflow is created
        - `langflow_version` string, nullable — The version of the Langflow tool binded
        - `connections` object, nullable — details of the credential connections of the Langflow tool
    - `display_name` string, required
    - `uid` union
      - string
      - string, uuid
    - `collab_idf` union
      - string
      - string, uuid
    - `environment_id` union
      - string
      - string, uuid
    - `toolkit_id` union
      - string
      - string, uuid
    - `is_async` boolean — Whether the tool execution is asynchronous
    - `restrictions` string, nullable — Whether the tool is editable or not
    - `bundled_agent_id` union
      - string
      - string, uuid

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/ibm/apis/wxo-server-api.md) · [All operations](https://skmtc.net/ibm/apis/wxo-server-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ibm/wxo-server-api/revisions/82c114c37196/schema)
