---
title: "List Agents"
method: GET
path: "/v1/workspaces/{workspace}/agents"
tags: ["v1", "protected", "agents"]
---

# List Agents

`GET /v1/workspaces/{workspace}/agents`

List the agents in this workspace the caller may read.

The workspace column narrows the query to one tenant; the graph then decides
which of those rows this caller sees. A plain member reads them all through
the root-project role their membership grants, so the two answers usually
agree -- the point is that revoking that role now actually removes the rows,
instead of leaving a tuple nobody consults.

## Path parameters

- `workspace` string, required — Slug of the workspace the request acts in

## Response `200`

Successful Response

- AgentResponse[]
  - `a2ui_enabled` boolean, nullable
  - `agent_type` string
  - `description` string, nullable
  - `id` string, uuid, required
  - `instruction` string, nullable
  - `is_catalog` boolean
  - `model_id` string, nullable
  - `name` string, required
  - `planning` boolean, nullable
  - `registry_item_id` string, nullable
  - `skills` object[], nullable
  - `slug` string, required
  - `status` string, required
  - `tools` union[], nullable
    - union
      - CodeToolConfig
        - `name` string, required
        - `settings` CodeToolSettings — Settings for a built-in code toolset.
          - `disabled_methods` string[], nullable
          - `requires_user_confirmation` boolean, nullable
        - `type` 'code'
      - McpToolConfigOutput
        - `name` string, required
        - `settings` McpToolSettings — Settings for an MCP server tool (a subset of the server's tools).
          - `allowed_tools` McpToolPermission[], nullable
            - `requires_user_confirmation` boolean, nullable
            - `tool_name` string, required
          - `requires_user_confirmation` boolean, nullable
        - `type` 'mcp'
      - AgentToolConfig
        - `name` string, required
        - `settings` AgentToolSettings — Settings for an agent-to-agent (delegation) tool. ``a2a_url`` selects the *remote* transport binding; absent → same-platform direct delegation. Lives here only — A2A is a per-edge binding, not a property every tool type carries.
          - `a2a_url` string, nullable
          - `description_override` string, nullable
          - `requires_user_confirmation` boolean, nullable
        - `type` 'agent'
      - OpenApiToolConfig
        - `name` string, required
        - `settings` OpenApiToolSettings — Settings for an OpenAPI connection tool. ``load_mode`` picks schema disclosure: "explicit" inlines every operation's schema into each LLM call (legacy); "searchable" defers them behind a ``load_tools`` meta-tool. Honored only for openapi tools — which is exactly why it lives here and nowhere else.
          - `allowed_tools` string[], nullable
          - `load_mode` 'explicit' | 'searchable', nullable
          - `openapi_connection_id` string, nullable
          - `requires_user_confirmation` boolean, nullable
        - `type` 'openapi'
  - `update_available` boolean

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-26** `286327d8bd86` — 1 warning
  - removed the optional property `items/events_config` from the response with the `200` status
- **2026-09-26** `d3ad8e1a3681` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/agentarea/apis/agentarea-api/changes/v1/workspaces/:workspace/agents/get.md)

---

[API](https://skmtc.dev/agentarea/apis/agentarea-api.md) · [All operations](https://skmtc.dev/agentarea/apis/agentarea-api/llms.txt) · [OpenAPI document](https://skmtc.dev/agentarea/apis/agentarea-api/revisions/c926881f6c6e?raw)
