---
title: "Update a board"
method: PATCH
path: "/api/v1/boards/{doc_id}"
tags: ["v1"]
---

# Update a board

`PATCH /api/v1/boards/{doc_id}`

## Request

- Base URL: `https://board.noddle.dev` (the document declares no server; this is the origin it was published from)
- URL: `https://board.noddle.dev/api/v1/boards/{doc_id}`
- Auth: none declared

Rename / move, and/or change the diagram — either REPLACE it
(``diagram``) or PATCH it (``ops``, atomic). Send ``If-Match: <etag>`` to
get 412 instead of overwriting a collaborator's newer edit. A version
snapshot is kept on every diagram change.

## Path parameters

- `doc_id` string, required

## Request body

- BoardPatchIn
  - `name` string, nullable
  - `folder_id` string, nullable: Move into a folder; null = root.
  - `diagram` object, nullable: Replace the WHOLE diagram.
  - `ops` object[], nullable: Patch instead of replace (atomic). Ops: {op:'add'|'update', node|edge:{id,…}}, {op:'delete', id}, {op:'add_page', page:{id,name}}, {op:'rename_page', page_id, name}; each may carry page_id (default: first page). update MERGES fields.

## Response `200`

Successful Response

- BoardDetailOut
  - `id` string, required
  - `name` string, required
  - `url` string, required
  - `created_at` string, required: ISO-8601 UTC
  - `updated_at` string, required: ISO-8601 UTC
  - `etag` string, required: Opaque version tag; send as If-Match to update safely.
  - `folder_id` string, nullable
  - `owner_id` string, nullable
  - `team_id` string, nullable
  - `link_policy` string
  - `my_role` string, required: owner | editor | viewer
  - `diagram` object, nullable: Editable board JSON: {pages:[{id,name,nodes,edges}]}

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/noddle/apis/noddle-board.md) · [All operations](https://skmtc.dev/noddle/apis/noddle-board/llms.txt) · [OpenAPI document](https://skmtc.dev/noddle/apis/noddle-board/revisions/7f324e389516?raw)
