# PUT /whiteboards/:whiteboard_id/content

**Resource:** [Whiteboards](./whiteboards.md)  
**MCP tool:** `set_whiteboard_content`  
**Scopes:** `whiteboards:write`  
**Write operation:** yes

Replace the entire whiteboard canvas with an array of Excalidraw elements (rectangle, ellipse, diamond, arrow, line, text). Minimal elements are auto-completed. NOTE: an open builder tab reads content on load and auto-saves over external changes — close/reopen the board to see the result.

## Parameters

| Name | In | Type | Required | Description |
|------|----|------|----------|-------------|
| `whiteboard_id` | path | string | yes |  |
| `elements` | body | array | yes | Excalidraw elements. Each needs type + x + y + width + height; text/colors/points optional. |
| `appState` | body | object | no |  |
| `files` | body | object | no |  |
| `require_approval` | body | boolean | no | Optional. Set true to route this write into the approval queue for human review instead of executing it immediately (returns 202 + an approval_id). Works even when your key/token has permission to execute directly. |

## Request example

```bash
curl -X PUT   "https://api.trustpager.com/functions/v1/api/v1/whiteboards/:whiteboard_id/content"   -H "Authorization: Bearer YOUR_API_KEY"   -H "Content-Type: application/json"   -d '{"elements":"...","appState":"...","files":"..."}'
```

---
Base URL: `https://api.trustpager.com/functions/v1/api/v1` — Auth: `Authorization: Bearer YOUR_API_KEY`