SnozeDevelopers
API referenceCanvas

Undo a canvas authoring command

Applies the complete inverse of a recorded authoring command atomically, including dependent connector changes and deleted objects. Requires `canvas:write`. Refuses undo when an affected object has been changed since the original command or is locked, preserving collaborators' later work.

POST
/v1/workspaces/{workspaceId}/surfaces/{surfaceId}/canvas/undo

Authorization

apiKey
headerAuthorizationBearer <snoze_sk_…>

Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.

Path Parameters

workspaceId*string
surfaceId*string

Request Body

application/json
  1. body
commandId*string

The commandId from the write receipt to undo. Fails if any affected object has changed since.

Length1 <= length <= 200
undoId*string
Length1 <= length <= 200

Response Body

Success

application/json
  1. response
data*
Example Request
curl -X POST 'https://api.snoze.dev/v1/workspaces/string/surfaces/string/canvas/undo' \  -H 'Content-Type: application/json' \  -d '{  "commandId": "string",  "undoId": "string"}'
Example Response
{  "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"    ]  }}