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

# Modell-Positivliste von Devin Desktop aktualisieren

> Ersetzen Sie die Modell-Positivliste von Devin Desktop für Ihr Team programmgesteuert: Legen Sie die erlaubten Modell-UIDs und Tags fest – mit einer ETag-Prüfung anhand des aktuellen Zustands.

## Übersicht

Ersetzt die Modell-Positivliste Ihres Teams – dieselbe Einstellung, die Administratoren in Devin Desktop unter den Organisationseinstellungen verwalten. Der Request-Body beschreibt den vollständigen Sollzustand: Die beiden Listen überschreiben die gespeicherten Listen.

Damit Sie keine Änderung überschreiben, die Sie noch nicht gesehen haben, muss die Anfrage im Header `If-Match` das `ETag` einer [List Models](/de/desktop/accounts/api-reference/list-models)-Antwort enthalten. Haben sich die Positivliste, die verfügbaren Modelle oder deren Preise seit dieser Antwort geändert, wird das Update mit `412` abgelehnt. Rufen Sie die Modelle in diesem Fall erneut ab.

> [!NOTE]
>
> Dieser Endpunkt befindet sich in der Alpha-Phase (`v2alpha`). Die Struktur von Anfrage und Antwort kann sich noch ändern.

## Authentifizierung

Übergeben Sie einen API-Schlüssel im `Authorization`-Header:

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

Verwenden Sie einen Devin-[API-Schlüssel für Dienstbenutzer](/de/api-reference/authentication) (`cog_...`). Zusätzlich zur Berechtigung **Use Devin Desktop**, die für [List Models](/de/desktop/accounts/api-reference/list-models) erforderlich ist, muss die Rolle des Dienstbenutzers die Berechtigung **Windsurf admin** (`account.windsurf.admin`) umfassen. Diese ist in der integrierten Rolle Account Admin enthalten. Ein Dienstbenutzer ohne diese Berechtigung kann zwar Modelle auflisten, erhält bei diesem Endpunkt jedoch den Fehler `403`.

## Anfrage

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

Der `ETag`-Header einer `GET /api/v2alpha/models`-Antwort, der den aktuellen Zustand widerspiegelt. Erforderlich; `*` wird nicht akzeptiert.

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

Modell-UIDs, die Nutzer auswählen dürfen, z. B. `["claude-sonnet-4-5"]`. Übergeben Sie `[]`, um Modelle ausschließlich über Tags zu erlauben.

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

Modell-Tags, die Nutzer auswählen dürfen, einschließlich Anbieter-Tags wie `provider-anthropic` oder `provider-openai`. Übergeben Sie `[]`, um nur die aufgeführten Modell-UIDs zu erlauben.

Beide Felder sind erforderlich. Unbekannte Felder werden abgelehnt.

### Beispielanfrage

```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"]}'
```

## Antwort

Bei Erfolg entspricht die Antwort der von [List Models](/de/desktop/accounts/api-reference/list-models), jedoch mit angewendeter neuer Positivliste: jedes Modell mit seinem `allowed`-Flag, die gespeicherten `allowed_model_uids` und `allowed_model_tags` sowie ein neuer `ETag`-Header.

## Fehlerantworten

Fehler werden als `{"error": "<message>"}` zurückgegeben.

| Status | Ursache |
| - | - |
| `400` | Der Body ist kein gültiges JSON, enthält unbekannte Felder oder es fehlt `allowed_model_uids` bzw. `allowed_model_tags`; oder der Query-Parameter `filter` ist gesetzt (dieser wird nur von [List Models](/de/desktop/accounts/api-reference/list-models) akzeptiert) |
| `401` | Fehlender oder ungültiger API-Schlüssel oder ein API-Schlüssel aus dem bisherigen Windsurf (akzeptiert werden nur Devin-Schlüssel für Dienstbenutzer im Format `cog_...`) |
| `403` | Der Nutzer des Schlüssels hat keinen Zugriff auf Devin Desktop oder seiner Rolle fehlt die Windsurf admin-Berechtigung (`account.windsurf.admin`) |
| `412` | `If-Match` stimmt nicht mit dem aktuellen `ETag` überein; rufen Sie die Liste der Modelle erneut ab und wiederholen Sie die Anfrage |
| `428` | `If-Match`-header fehlt |
| `429` | Anfragelimit überschritten; warten Sie die im `Retry-After`-header angegebene Zeit ab, bevor Sie die Anfrage wiederholen |


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