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

# List Agent Presets

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

Starting points for a new agent: tools, skills, triggers and an instruction.

## Path parameters

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

## Response `200`

Successful Response

- AgentPresetResponse[]
  - `description` string, nullable
  - `id` string, required
  - `instruction` string
  - `name` string, required
  - `preferred_models` string[]
  - `skills` PresetSkillResponse[], required
    - `description` string, nullable
    - `id` string, required
    - `name` string, required
  - `tools` union[], required
    - 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'
  - `triggers` TriggerSpec[], required
    - `allowed_methods` string[] — HTTP methods accepted on the webhook endpoint.
    - `channel_credentials` object, nullable — Channel credentials (bot_token, SMTP password, etc). Stored encrypted in the secret store. Never returned in responses.
    - `conditions` object — Optional conditions evaluated against event data before firing.
    - `cron_expression` string, nullable — 5- or 6-field cron expression (required when trigger_type='cron').
    - `data_extractor` string, nullable — Polling extractor identifier (e.g. 'imap', 'rss').
    - `data_extractor_config` object, nullable — Connection/auth details for the polling extractor.
    - `description` string — Short summary of what this trigger does.
    - `enabled` boolean — Whether the trigger is active immediately on creation.
    - `event_types` string[] — Event types to filter on (empty list = accept all events).
    - `failure_threshold` integer — Auto-disable after this many consecutive failed executions.
    - `name` string, required — Human-readable trigger name.
    - `task_parameters` object — Parameters merged into the task created when the trigger fires.
    - `timezone` string — IANA timezone for cron evaluation (e.g. 'UTC', 'America/New_York').
    - `trigger_type` 'cron' | 'webhook' | 'polling', required — 'cron' for scheduled, 'webhook' for inbound HTTP, 'polling' for extractor-driven.
    - `validation_rules` object — Per-channel validation rules (signature secrets, allowed senders, etc).
    - `webhook_config` object, nullable — Channel-specific configuration (bot tokens, signing keys, etc).
    - `webhook_id` string, nullable — Public webhook path segment. Auto-generated if omitted for webhook triggers.
    - `webhook_type` string — Channel type: 'generic', 'telegram', 'slack', 'discord', etc.
  - `unavailable_skills` string[]

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-26** `286327d8bd86` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/agentarea/apis/agentarea-api/changes/v1/workspaces/:workspace/agents/presets/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/286327d8bd86?raw)
