---
title: "Set a node's visibility (private / workspace / public)"
method: POST
path: "/api/v1/nodes/{nodeId}/visibility"
tags: ["Nodes", "Permissions"]
---

# Set a node's visibility (private / workspace / public)

`POST /api/v1/nodes/{nodeId}/visibility`

## Request

- Base URL: `https://api-docs.busabase.com`
- URL: `https://api-docs.busabase.com/api/v1/nodes/{nodeId}/visibility`
- Auth: none declared

## Path parameters

- `nodeId` string, required

## Request body

- object
  - `visibility` 'private' | 'workspace' | 'public', required

## Response `200`

Updated the node's own explicit visibility and re-materialized the subtree's effective visibility (a child can only ever be as open as its strictest ancestor). Requires `manage` level on the node. The workspace root cannot be made private. `public` currently behaves as `workspace` (no anonymous surface yet).

- object
  - `updated` boolean, required

---

[API](https://skmtc.dev/busabase/apis/busabase-api.md) · [All operations](https://skmtc.dev/busabase/apis/busabase-api/llms.txt) · [OpenAPI document](https://skmtc.dev/busabase/apis/busabase-api/revisions/bc6a7d5ff4c1?raw)
