---
title: "List Tools"
method: GET
path: "/v1/tools"
tags: ["API v1", "Tools", "Tools Discovery"]
---

# List Tools

`GET /v1/tools`

## Request

- Base URL: `https://api.xpander.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.xpander.ai/v1/tools`
- Auth: API key in header `x-api-key`

Unified catalog of attachable tools: connectors, agents, workflows, custom functions, and MCP servers. Filter with ?type=.

## Query parameters

- `type` 'connector' | 'agent' | 'workflow' | 'custom_function' | 'mcp': Kind of attachable tool in the unified catalog.
- `query` string, nullable: Optional search query.
- `page` integer
- `per_page` integer

## Response `200`

Successful Response

- PaginatedResponseToolCatalogItem
  - `items` ToolCatalogItem[], required
    - `kind` 'connector' | 'agent' | 'workflow' | 'custom_function' | 'mcp', required: Kind of attachable tool in the unified catalog.
    - `id` string, required: Identifier to attach this tool: connector_id, agent_id, workflow_id, custom_function_id, or mcp registry id.
    - `name` string, required: Display name.
    - `description` string, nullable: What the tool does.
    - `logo` string, nullable: Logo/icon identifier.
    - `status` string, nullable: Connector status ('ready' means usable). Connectors only.
    - `total_operations` integer, nullable: Number of operations available. Connectors only.
    - `using_built_in_auth` boolean, nullable: Whether xpander manages auth for this connector.
    - `connections` ConnectionSummary[], nullable: Existing connections for this connector in your org. Connectors only.
      - `id` string, required: Unique identifier of this connection. Use this ID when referencing the connection in operations or agent tool configuration.
      - `name` string, required: Human-readable name for this connection instance (e.g., 'Production Slack', 'Dev Jira').
      - `access_scope` string, nullable: Who can use this connection. 'organizational' is visible to all org members. 'personal' is only visible to the connection owner.
      - `is_service_account` boolean, nullable: Whether this connection uses a service account (shared org-level credentials) rather than personal user credentials.
      - `per_user` boolean, nullable: Per-user OAuth placeholder: this connection holds no credential of its own; each user signs in individually and tokens are stored per connection+user.
      - `owner` string, nullable: User ID of the connection owner. Only relevant for personal connections.
      - `version` string, nullable: The connector version this connection is pinned to. May differ from the connector's latest version.
      - `open_api_spec_id` string, nullable: OpenAPI spec ID this connection uses. May differ from the connector's default spec if the connection is pinned to a specific version.
      - `status` string, nullable: Connection status ('ready' means authorized/usable).
      - `created_at` string, date-time, nullable: Optional creation date of the connection.
    - `supports_user_auth` boolean, nullable: The connector declares oauth2, so per-user sign-in is possible. Connectors only.
    - `orgOwned` boolean, nullable: The caller's organization owns this connector row, making it manageable (replace spec, delete). Connectors only.
    - `transport` string, nullable: MCP transport. MCP only.
    - `auth_type` string, nullable: MCP auth type. MCP only.
    - `url` string, nullable: MCP server URL. MCP only.
  - `total` integer, required
  - `page` integer, required
  - `per_page` integer, required
  - `total_pages` integer, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/xpander/apis/xpander-ai-api-service.md) - [All operations](https://skmtc.dev/xpander/apis/xpander-ai-api-service/llms.txt) - [OpenAPI document](https://skmtc.dev/xpander/apis/xpander-ai-api-service/revisions/4389ec0875d0?raw)
