Edit selected canvas objects
Updates text and styles or deletes explicit element ids in one command. Requires `canvas:write` and expected versions for every target. Rejects inherited locks, stale versions, and deletions that leave dependent objects behind. Returns affected objects and an undoable command receipt.
apiKeyAuthorizationBearer <snoze_sk_…>Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.
workspaceId*stringsurfaceId*stringapplication/json- body
changes*array<|>1 <= items <= 100commandId*string1 <= length <= 200Success
application/json- response
data*curl -X POST 'https://api.snoze.dev/v1/workspaces/string/surfaces/string/canvas/edit' \ -H 'Content-Type: application/json' \ -d '{ "changes": [], "commandId": "string"}'{ "data": { "surfaceId": "string", "commandId": "string", "workspaceVersion": 0, "elements": [ { "id": "string", "workspaceId": "string", "surfaceId": "string", "type": "rectangle", "x": 0, "y": 0, "w": 0, "h": 0, "angle": 0, "version": 0, "versionNonce": 0, "index": "string", "isDeleted": true, "props": {}, "createdAt": "string", "updatedAt": "string" } ], "warnings": [ "string" ] }}Compose editable canvas objects
Compiles a graph, mind map, notes, Mermaid diagram, drawing, or sanitized SVG illustration and applies it atomically. Requires `canvas:write`. Reusing a command id with the same input returns its receipt; conflicting retries, locked objects, stale board state, and invalid geometry are rejected.
Arrange selected canvas objects
Lays out, aligns, distributes, groups, or recolors explicit objects while preserving their content and rerouting bound connectors. Requires `canvas:write` and expected target versions. Rejects locked objects, stale state, and newly introduced collisions with unrelated work.