---
title: "Update a deployment adapter"
method: PATCH
path: "/projects/{projectId}/endpoints/{endpointId}/deployments/{deploymentId}/adapters/{id}"
tags: ["DeploymentService"]
---

# Update a deployment adapter

`PATCH /projects/{projectId}/endpoints/{endpointId}/deployments/{deploymentId}/adapters/{id}`

Updates the pinned revision of an attached adapter using its row-level etag for optimistic concurrency.

## Path parameters

- `projectId` string, required — Project identifier.
- `endpointId` string, required — Endpoint identifier.
- `deploymentId` string, required — Deployment identifier.
- `id` string, required — Adapter model identifier.

## Request body

- DEUpdateAdapterRequest — Request body for updating an adapter.
  - `adapterRevisionId` string, required — New adapter revision to pin.
  - `etag` string, required — Row-level etag from a prior AddAdapter, UpdateAdapter, GetAdapter, or ListAdapters response.

## Response `200`

OK

- DEAdapterEntry — Adapter attached to a deployment with desired revision and observed load state.
  - `adapterModelId` string, required — Adapter model identifier attached to the deployment.
  - `desiredRevisionId` string, required — Adapter revision pinned on the deployment.
  - `perCluster` DEDeploymentAdapterStatus[], required — Per-cluster adapter load state reported by the controller.
    - `adapterModelId` string, required — Adapter model identifier for this status row.
    - `clusterId` string, required — Cluster reporting this adapter status.
    - `realizedRevisionId` string — Adapter revision currently loaded on pods in this cluster.
    - `realizedEtag` string — Adapter row etag observed by the controller when it wrote this status.
    - `state` 'ADAPTER_LOAD_STATE_PENDING' | 'ADAPTER_LOAD_STATE_LOADING' | 'ADAPTER_LOAD_STATE_READY' | 'ADAPTER_LOAD_STATE_REMOVING' | 'ADAPTER_LOAD_STATE_FAILED', required — Current adapter load state in this cluster.
    - `reason` string — Stable reason code for the current adapter state.
    - `message` string — Human-readable details about the current adapter state.
    - `readyPodCount` integer, required — Number of pods with the adapter ready to serve.
    - `failedPodCount` integer, required — Number of pods that failed to load the adapter.
    - `totalPodCount` integer, required — Total pods expected to report adapter load state.
    - `loadedAt` string, date-time — Time when the adapter first reached READY in this cluster.
    - `updatedAt` string, date-time — Time when this adapter status was last updated.
    - `adapterModel` string — Resource name of the adapter model, using projects/{projectId}/models/{adapterModelId}.
    - `realizedRevision` string — Resource name of the adapter model revision currently loaded in this cluster, using projects/{projectId}/models/{adapterModelId}/revisions/{revisionId}.
  - `etag` string, required — Row-level etag required for UpdateAdapter and RemoveAdapter.
  - `adapterModel` string — Resource name of the adapter model, using projects/{projectId}/models/{adapterModelId}.
  - `desiredRevision` string — Resource name of the adapter model revision pinned on the deployment, using projects/{projectId}/models/{adapterModelId}/revisions/{revisionId}.

## Other responses

- `default` — Default error response

## Changes

- **2026-07-26** `0c4fdad77435` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/together/apis/together-apis/changes/projects/:projectId/endpoints/:endpointId/deployments/:deploymentId/adapters/:id/patch.md)

---

[API](https://skmtc.dev/together/apis/together-apis.md) · [All operations](https://skmtc.dev/together/apis/together-apis/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/together/together-apis/revisions/f4885bc38424/schema)
