SnozeDevelopers
API referenceCanvas

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.

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

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
targets*array<>
Items1 <= items <= 100
action*string
Value in"layout""align_left""align_top""distribute_horizontal""distribute_vertical""group""recolor"
direction?|null
style?|null
commandId*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/arrange' \  -H 'Content-Type: application/json' \  -d '{  "targets": [],  "action": "layout",  "commandId": "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"    ]  }}