Comments
The review loop. Comments anchor to a deck, slide, and element, survive version changes, thread via `parent`, and resolve via a `PATCH { resolved: true }` — fully agent-addressable.
Related guides: Comments & versions
Attributes
idstringrequiredobjectstringrequireddeckstringrequiredartifactstring | nullrequiredparentstring | nullrequiredThe thread root; null for a root.
authorstring | nullrequiredslide_indexnumber | nullrequiredanchorobject | object | nullrequiredbodystringrequiredresolvedbooleanrequiredresolved_attimestamprequiredresolved_bystring | nullrequiredexternal_idstring | nullrequiredlivemodebooleanrequiredmetadataobjectrequiredArbitrary key/value map; merge-on-write (§6).
created_attimestamprequiredupdated_attimestamprequired
List comments
GET/v1/comments
Lists comments in the active org, newest first. Filter by `deck`, `slide_index`, `resolved`, or `parent`.
Requires an API key (bearer), scoped to the active org.
Query parameters
limitintegeroptionaldefault 201–100cursorstringoptionalorderstringoptionaldefault "created_at.desc"Possible values:
created_at.desc,created_at.ascdeckstringoptionalslide_indexinteger | nulloptionalresolvedstringoptionalOnly open or only resolved.
Possible values:
true,falseparentstringoptionalReplies under this thread root.
Create a comment or reply
POST/v1/comments
Creates a thread root (`deck` + `slide_index` + `anchor`) or a reply (`parent`). If `external_id` is provided and already exists in the org, the existing comment's body is updated instead (200).
Requires an API key (bearer), scoped to the active org. Supports idempotency keys.
Body parameters
bodystringrequiredmax 5000 charsparentstringoptionalReply to this comment.
deckstringoptionalartifactstringoptionalVersion the anchor was made on.
slide_indexintegeroptionalmin 0anchorobject | object | nulloptionalexternal_idstringoptionalmax 200 charsmetadataobjectoptionalArbitrary key/value map; merge-on-write (§6).
Returns
200The upserted (already-existing) comment.201The newly created comment.
Failures use the standard error envelope with a closed set of codes.
Retrieve a comment
GET/v1/comments/{id}
Fetches a comment by Renza id or by `external_id` within the active org.
Requires an API key (bearer), scoped to the active org.
Path parameters
idstringrequired
Update a comment
PATCH/v1/comments/{id}
Partial update — only provided fields change. `resolved` resolves/reopens the thread (a field update, not a verb route). `metadata` merges (key→value sets, key→null deletes, {} clears all).
Requires an API key (bearer), scoped to the active org. Supports idempotency keys.
Path parameters
idstringrequired
Body parameters
bodystringoptionalmax 5000 charsresolvedbooleanoptionalResolve (true) or reopen (false).
metadataobjectoptionalArbitrary key/value map; merge-on-write (§6).
Delete a comment
DELETE/v1/comments/{id}
Permanently deletes a comment (irreversible). Deleting a thread root also deletes its replies.
Requires an API key (bearer), scoped to the active org. Supports idempotency keys.
Path parameters
idstringrequired
Returns
200The deletion confirmation.
Failures use the standard error envelope with a closed set of codes.