リファレンスHTTP APIAgents

Retire a version of a workspace profile

POST
/v1/workspace-profiles/{profile_id}/retire

Owners and admins (workspace.manage), signed in. A retired version takes no new release and no new session of a new release; releases and sessions already on it keep running. Retiring one already retired changes nothing and answers a null receipt_id; otherwise writes a retire_workspace_profile receipt. Another workspace's version is 404.

Auth: cookie session only; no scope. Idempotency-Key: ignored.

Authorization

cookieSession
cookie__Host-werft_session<token>

For the web console: the browser session cookie set by POST /v1/auth/login. It holds the scopes of the user's workspace role (owner: all; admin and member: all but sessions:recover). Requests other than GET must also send X-Requested-With: werft-web.

Path Parameters

profile_id*string

The workspace profile's id.

Length1 <= length <= 200

Header Parameters

X-Requested-With?"werft-web"

Required with a cookie session: the literal werft-web.

Value in"werft-web"

Response Body

The version as retired.

application/json
  1. response
profile*
receipt_id*|null
Example Request
curl -X POST 'https://example.com/v1/workspace-profiles/string/retire'
Example Response
{  "profile": {    "id": "ws_acme_strict-review_v2",    "source": "workspace",    "model": "claude-sonnet-5",    "models": [      "claude-sonnet-5"    ],    "tools": [      "Read",      "Glob",      "Grep"    ],    "permission_mode": "default",    "runtime_kind": "claude_agent_sdk",    "runtime_version": "0.3.319",    "billing": "metered",    "repository_mode": "required",    "workspace": {      "name": "strict-review",      "version": 2,      "base_profile_id": "claude-coding-real",      "state": "retired",      "created_by": "019a0000-0000-7000-8000-0000000000b1",      "created_at": "2026-10-27T01:00:00.000Z",      "retired_by": null,      "retired_at": "2026-10-28T01:00:00.000Z"    }  },  "receipt_id": "019a0000-0000-7000-8000-0000000000e2"}