List the elements on a canvas surface
Returns canvas elements and their workspace version. Optional limit (1–2000) bounds the database read and returns hasMore; omitted limit returns the full scene for editors. Requires `canvas:read` on the surface. Returns a not-found error when the workspace has no surface with that id.
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*stringlimit?string|nullSuccess
application/json- response
data*curl -X GET 'https://api.snoze.dev/v1/workspaces/string/surfaces/string/canvas/elements'{ "data": { "surfaceId": "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" } ], "hasMore": true }}Delete a block comment
Removes the comment from the surface and records the deletion in the workspace event log. The comment's author may delete their own comment with `blocks:read`; deleting someone else's requires `blocks:write` on the surface. Returns a not-found error for an unknown surface or comment.
Apply a batch of canvas operations
Applies an ordered batch of insert, update, and delete element operations in one transaction and returns the affected elements with the new workspace version. Requires `canvas:write` on the surface. Batches are capped at 500 operations, and non-UUID element ids, unknown element types, and malformed order indexes are rejected as validation errors.