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.
Authorization
apiKey Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/v1/workspaces/string/surfaces/string/blocks/string/comments" \ -H "Content-Type: application/json" \ -d '{ "body": "string" }'{ "data": { "id": "string", "workspaceId": "string", "surfaceId": "string", "blockId": "string", "authorUserId": "string", "authorDisplayName": "string", "authorAvatarUrl": "string", "body": "string", "resolvedAt": "string", "createdAt": "string" }}{ "_tag": "ApiNotFound", "error": "not_found", "message": "That item does not exist, or this key cannot see it.", "status": 404}{ "_tag": "ApiNotFound", "error": "not_found", "message": "That item does not exist, or this key cannot see it.", "status": 404}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.
Resolve or reopen a block comment
Sets or clears the comment's resolved marker according to the `resolved` flag and returns the updated comment. Requires `blocks:comment` on the surface. Returns a not-found error when the surface or comment does not exist.