> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Devin Desktop のモデルの許可リストを更新する

> Team の Devin Desktop のモデルの許可リストをプログラムで置き換えます。許可するモデル UID とタグを設定し、ETag を使って現在の状態との整合性をチェックします。

## 概要

あなたの Team のモデルの許可リストを置き換えます。これは、管理者が Devin Desktop の組織のコントロールで管理する設定と同じものです。リクエストボディには、望ましい状態全体を指定します。2 つのリストは、保存済みのリストを上書きします。

まだ確認していない変更を誤って上書きしないよう、リクエストの `If-Match` には、[List Models](/ja/desktop/accounts/api-reference/list-models) のレスポンスで取得した `ETag` を指定する必要があります。そのレスポンス以降に許可リスト、利用可能なモデル、またはその料金が変更されている場合、更新は `412` で拒否されます。その場合は、モデル一覧を再取得してください。

> [!NOTE]
>
> このエンドポイントはアルファ版 (`v2alpha`) です。リクエストおよびレスポンスの形式は変更される可能性があります。

## 認証

`Authorization` ヘッダーに APIキーを指定します：

```
Authorization: Bearer <api-key>
```

Devin の[サービスユーザーAPIキー](/ja/api-reference/authentication) (`cog_...`) を利用してください。[List Models](/ja/desktop/accounts/api-reference/list-models) に必要な **Use Devin Desktop** 権限に加えて、サービスユーザーのロールには **Windsurf 管理者** 権限 (`account.windsurf.admin`) も必要です。この権限は built-in の Account Admin ロールに含まれています。この権限がないサービスユーザーは、モデルの一覧は取得できますが、このエンドポイントでは `403` が返されます。

## リクエスト

**If-Match** `string` *required*

現在の状態を反映した `GET /api/v2alpha/models` レスポンスの `ETag` ヘッダー。必須です。`*` は使用できません。

**allowed\_model\_uids** `string[]` *required*

ユーザーが選択できるモデルの UID (例：`["claude-sonnet-4-5"]`) 。タグのみでモデルを許可する場合は `[]` を渡します。

**allowed\_model\_tags** `string[]` *required*

ユーザーが選択できるモデルのタグ。`provider-anthropic` や `provider-openai` などのプロバイダータグも指定できます。指定したモデル UID のみを許可する場合は `[]` を渡します。

両方のフィールドが必須です。未定義のフィールドを含むリクエストは拒否されます。

### リクエスト例

```bash theme={null}
ETAG=$(curl -s -D - -o /dev/null https://server.codeium.com/api/v2alpha/models \
  -H "Authorization: Bearer $DEVIN_API_KEY" | awk 'tolower($1)=="etag:" {print $2}' | tr -d '\r')

curl -X PUT https://server.codeium.com/api/v2alpha/models \
  -H "Authorization: Bearer $DEVIN_API_KEY" \
  -H "If-Match: $ETAG" \
  -H "Content-Type: application/json" \
  -d '{"allowed_model_uids": ["claude-sonnet-4-5"], "allowed_model_tags": ["provider-anthropic"]}'
```

## レスポンス

成功した場合、レスポンスは [List Models](/ja/desktop/accounts/api-reference/list-models) と同じ形式で、新しい許可リストが適用された内容になります。具体的には、`allowed` flag を含むすべてのモデル、保存済みの `allowed_model_uids` と `allowed_model_tags`、および新しい `ETag` ヘッダーが返されます。

## エラーレスポンス

エラーは `{"error": "<message>"}` の形式で返されます。

| ステータス | 原因 |
| - | - |
| `400` | ボディが JSON ではない、未定義のフィールドが含まれている、または `allowed_model_uids` か `allowed_model_tags` が指定されていない。あるいは `filter` クエリパラメーターが指定されている (このパラメーターを受け付けるのは [List Models](/ja/desktop/accounts/api-reference/list-models) のみです) |
| `401` | APIキーが指定されていないか無効である、またはレガシー Windsurf のAPIキーが使用されている (受け付けられるのは Devin の `cog_...` サービスユーザーキーのみ) |
| `403` | キーに紐づくユーザーに Devin Desktop へのアクセス権がない、またはそのロールに Windsurf 管理者権限 (`account.windsurf.admin`) がない |
| `412` | `If-Match` が現在の `ETag` と一致しない。モデル一覧を再取得してからリトライしてください |
| `428` | `If-Match` ヘッダーが指定されていない |
| `429` | レート制限超過。`Retry-After` ヘッダーで示された時間が経過するまで待ってからリトライしてください |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.