---
title: "Update Expert Mode"
method: PATCH
path: "/api/experts/{expert_id}/mode"
tags: ["v2", "experts", "private"]
---

# Update Expert Mode

`PATCH /api/experts/{expert_id}/mode`

## Request

- The document declares no server URL.
- Auth: HTTP bearer

Set the approval mode new web chats with this expert start on.

Threads already open keep the mode stored on them, and the composer's
selector still overrides it per thread. Routines, scheduled follow-ups
and chats driven from a linked chat platform are not gated by it.

## Path parameters

- `expert_id` string, required

## Request body

- ExpertModeUpdate: Set the approval mode new web chats with an expert start on. ``None`` clears it back to the platform default. The field is required, so an empty body cannot clear it by accident.
  - `autopilot_mode` 'ask_first' | 'auto' | 'unsupervised', nullable, required

## Response `200`

Successful Response

- Expert
  - `id` string, required
  - `name` string, required
  - `avatar_url` string, nullable, required
  - `color` string
  - `role` string, required
  - `job_title` string, nullable
  - `tagline` string, nullable, required
  - `bio` string, nullable, required
  - `skills` string[], required
  - `categories` string[]
  - `identity` string, required
  - `voice_preferences` string, required
  - `voice_samples` VoiceSample[]
    - `label` string, required
    - `text` string, required
  - `day_one` ExpertDayOneItem[]
    - `title` string, required
    - `description` string
    - `timing` string
  - `boundaries` string, required
  - `protected_soul_rules` string[], required
  - `is_template` boolean, required
  - `source_template_id` string, nullable, required
  - `is_archived` boolean, required
  - `workflows` ExpertWorkflowRef[], required
    - `id` string, required
    - `store_listing_version_id` string, nullable, required
    - `library_agent_id` string, nullable, required
    - `graph_id` string, nullable, required
    - `name` string, nullable, required
    - `description` string, nullable, required
    - `schedule_cron` string, nullable
    - `schedule_id` string, nullable
    - `chain` ExpertWorkflowChainItem[]
      - `kind` 'integration' | 'input' | 'output' | 'trigger' | 'agent' | 'ai' | 'mcp' | 'human', required
      - `provider` string, nullable
    - `integration_providers` string[]
  - `credential_count` integer
  - `credential_providers` string[]
  - `last_run_at` string, date-time, nullable
  - `last_run_status` string, nullable
  - `weekly_budget` integer, nullable
  - `weekly_spend` integer
  - `schedules_paused_at` string, date-time, nullable
  - `learning_paused_at` string, date-time, nullable
  - `autopilot_mode` 'ask_first' | 'auto' | 'unsupervised', nullable
  - `pod_id` string, nullable
  - `setup_status` 'installing' | 'ready' | 'failed'
  - `setup_failures` string[]

## Other responses

- `401`: Authentication required
- `403`: Approval modes are not enabled for this account
- `404`: Expert not found
- `422`: Validation Error

## Changes

- **2026-10-17** `84284651b3ee`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/significant-gravitas/apis/autogpt-agent-server/changes/api/experts/:expert_id/mode/patch.md)

---

[API](https://skmtc.dev/significant-gravitas/apis/autogpt-agent-server.md) - [All operations](https://skmtc.dev/significant-gravitas/apis/autogpt-agent-server/llms.txt) - [OpenAPI document](https://skmtc.dev/significant-gravitas/apis/autogpt-agent-server/revisions/c508818c16ad?raw)
