---
title: "Set the workspace intelligence level"
method: PATCH
path: "/v1/model-settings"
tags: ["model-settings"]
---

# Set the workspace intelligence level

`PATCH /v1/model-settings`

## Request

- Base URL: `https://api.patricia.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.patricia.app/v1/model-settings`
- Auth: HTTP bearer

Choose one intelligence level for regular workspace work, save your own model and thinking choice, or restore Patricia's recommended levels. Quick checks and messages that ask Patricia to take more time keep their separate levels. Changes take effect on the next run.

## Headers

- `X-Tenant-Id` string, nullable

## Request body

- ModelSettingsUpdate: PATCH body: pick a level, build a custom setup, or restore the recommendation.
  - `tier` string, nullable: The intelligence level for regular work: deep, balanced, or fast.
  - `custom` CustomModelUpdate: A workspace's own model + thinking choice for everyday work.
    - `model_id` string, required
    - `effort` string, nullable
  - `reset_to_recommended` boolean

## Response `200`

Successful Response

- ModelSettingsResponse: The workspace's effective reasoning state, plus what it can choose from.
  - `tiers` ModelTierView[], required
    - `key` string, required
    - `label` string, required
    - `description` string, required
    - `used_for` string[], required
    - `model_id` string, required
    - `model_label` string, required
    - `reasoning` boolean, required
    - `thinking_label` string, required
    - `posture_label` string, required
    - `cost_label` string, required
    - `between_steps_label` string, required
    - `effort` string, nullable, required
    - `is_chat_default` boolean, required
    - `overridden` boolean, required
    - `fallback_model_id` string, nullable
    - `fallback_model_label` string, nullable
    - `fallback_effort` string, nullable
    - `fallback_posture_label` string, nullable
    - `fallback_note` string
  - `selected_tier` string, nullable, required
  - `using_recommended_routing` boolean, required
  - `using_recommended` boolean, required
  - `models` ModelChoice[], required
    - `id` string, required
    - `label` string, required
    - `description` string, required
    - `provider_label` string, required
    - `cost_label` string, required
    - `thinking_options` ThinkingOption[], required
      - `value` string, required
      - `label` string, required
      - `description` string, required
    - `recommended` boolean, required
    - `warning` string
  - `custom_tier` string, required
  - `custom_scope_note` string, required
  - `custom` CustomSetupView: The workspace's own model + thinking choice, when it has one.
    - `tier` string, required
    - `model_id` string, required
    - `model_label` string, required
    - `effort` string, nullable, required
    - `thinking_label` string, required
    - `posture_label` string, required
  - `model_choice_locked` boolean
  - `model_choice_locked_note` string, nullable

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `402`: Choosing a level or a setup needs a paid plan (`PAID_PLAN_REQUIRED`).
- `403`: Forbidden. Inspect response body `code` for the specific reason (for example: PERMISSION_DENIED, EMAIL_NOT_VERIFIED, TENANT_ACCESS_REQUIRED, ROLE_UNRESOLVED)
- `404`: Not found
- `409`: Conflict
- `422`: Validation error

---

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