---
title: "Update node metadata"
method: PATCH
path: "/api/v1/nodes/{nodeId}/metadata"
tags: ["Nodes"]
---

# Update node metadata

`PATCH /api/v1/nodes/{nodeId}/metadata`

## Request

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

## Path parameters

- `nodeId` string, required

## Request body

- object
  - `metadata` object, required

## Response `200`

Shallow-merged the supplied top-level keys into the active node's existing metadata. Requires write access on the node. Node CONTENT (a Doc body, or a whiteboard/workflow/html document) does not go through here — use PUT /nodes/{nodeId}/content instead.

- object
  - `id` string, required
  - `parentId` string, required
  - `type` 'folder' | 'base' | 'skill' | 'drive' | 'airapp' | 'file' | 'doc' | 'form' | 'whiteboard' | 'workflow' | 'html', required
  - `slug` string, required
  - `name` string, required
  - `description` string, required
  - `metadata` object
    - `version` string
  - `settings` object
    - `airappEngine` 'browser' | 'local' | 'remote'
  - `explicitVisibility` 'private' | 'workspace' | 'public'
  - `icon` union
    - object
      - `type` unknown, required
      - `value` string, required
    - object
      - `type` unknown, required
      - `url` string, required
      - `attachmentId` string, required
      - `originalUrl` string
      - `originalAttachmentId` string
      - `crop` object
        - `x` number, required
        - `y` number, required
        - `zoom` number, required
  - `position` number, required
  - `createdAt` string, required
  - `updatedAt` string, required
  - `baseId` string, required
  - `children` object[], required
    - `id` string, required
    - `parentId` string, required
    - `type` 'folder' | 'base' | 'skill' | 'drive' | 'airapp' | 'file' | 'doc' | 'form' | 'whiteboard' | 'workflow' | 'html', required
    - `slug` string, required
    - `name` string, required
    - `description` string, required
    - `metadata` object
      - `version` string
    - `settings` object
      - `airappEngine` 'browser' | 'local' | 'remote'
    - `explicitVisibility` 'private' | 'workspace' | 'public'
    - `icon` union
      - object
        - `type` unknown, required
        - `value` string, required
      - object
        - `type` unknown, required
        - `url` string, required
        - `attachmentId` string, required
        - `originalUrl` string
        - `originalAttachmentId` string
        - `crop` object
          - `x` number, required
          - `y` number, required
          - `zoom` number, required
    - `position` number, required
    - `createdAt` string, required
    - `updatedAt` string, required
    - `baseId` string, required
    - `children` unknown[], required
      - unknown
    - `hasChildren` boolean
    - `shared` boolean
    - `sharedViaAncestor` boolean
  - `hasChildren` boolean
  - `shared` boolean
  - `sharedViaAncestor` boolean

---

[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)
