List the comments on a surface
Returns every block comment on the surface in creation order, each with its author's display name and avatar. Requires `blocks:read` on the surface, which is resolved per item exactly like reading the surface itself, so comments are never visible more widely than the page.
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*stringSuccess
application/json- response
data*array<>curl -X GET 'https://api.snoze.dev/v1/workspaces/string/surfaces/string/comments'{ "data": [ { "id": "string", "workspaceId": "string", "surfaceId": "string", "blockId": "string", "authorUserId": "string", "authorDisplayName": "string", "authorAvatarUrl": "string", "body": "string", "content": [], "resolvedAt": "string", "createdAt": "string" } ]}Apply a batch of block operations to a surface
Applies an ordered batch of insert, update, move, and delete block operations in one transaction and returns the affected blocks with the new workspace version. Requires `surfaces:write` on the surface. Batches are capped at 500 operations, and non-UUID block ids, malformed order keys, and conversions into structural column kinds are rejected as validation errors.
Comment on a block
Creates a comment anchored to one block of the surface, optionally at a client-supplied id so a text selection can be marked before the row exists. Requires `blocks:comment` on the surface. Fails with a not-found error when the surface or block does not exist and with a validation error when the body is empty or longer than 2,000 characters.