Unblock an installation ceiling
The operator (profile.installation.manage, the workspace owner), signed in. The ceiling returns to the state it would have without the block (usable, or retired when it was retired); sessions failed while it was blocked stay failed. Unblocking one not blocked changes nothing and answers a null receipt_id; otherwise writes an unblock_installation_profile receipt.
Auth: cookie session only; no scope. Idempotency-Key: ignored.
cookieSession__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.
profile_id*stringThe installation profile's id.
1 <= length <= 200X-Requested-With?"werft-web"Required with a cookie session: the literal werft-web.
"werft-web"The ceiling as unblocked.
application/json- response
profile*receipt_id*|nullcurl -X POST 'https://example.com/v1/installation-profiles/string/unblock'{ "profile": { "id": "op_coding_v2", "source": "operator", "model": "claude-sonnet-5", "models": [ "claude-sonnet-5", "claude-haiku-5" ], "tools": [ "Read", "Edit", "Write", "Glob", "Grep", "Bash" ], "permission_mode": "acceptEdits", "runtime_kind": "claude_agent_sdk", "runtime_version": "0.3.319", "billing": "metered", "repository_mode": "required", "repository_ids": [ "sample-app" ], "installation": { "name": "coding", "version": 2, "origin": "console", "state": "usable", "connection_id": "anthropic-main", "title_model": "claude-haiku-5", "project_settings": { "claude_md": true }, "previous_id": "op_coding_v1", "created_by": "019a0000-0000-7000-8000-0000000000b1", "created_at": "2026-10-28T01:00:00.000Z", "retired_by": null, "retired_at": null, "blocked_by": null, "blocked_at": null } }, "receipt_id": "019a0000-0000-7000-8000-0000000000e6"}