API reference

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

  • idstringrequired
  • objectstringrequired
  • deckstringrequired
  • artifactstring | nullrequired
  • parentstring | nullrequired

    The thread root; null for a root.

  • authorstring | nullrequired
  • slide_indexnumber | nullrequired
  • anchorobject | object | nullrequired
  • bodystringrequired
  • resolvedbooleanrequired
  • resolved_attimestamprequired
  • resolved_bystring | nullrequired
  • external_idstring | nullrequired
  • livemodebooleanrequired
  • metadataobjectrequired

    Arbitrary key/value map; merge-on-write (§6).

  • created_attimestamprequired
  • updated_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–100
  • cursorstringoptional
  • orderstringoptionaldefault "created_at.desc"

    Possible values: created_at.desc, created_at.asc

  • deckstringoptional
  • slide_indexinteger | nulloptional
  • resolvedstringoptional

    Only open or only resolved.

    Possible values: true, false

  • parentstringoptional

    Replies under this thread root.

Returns

  • 200A page of comments.

Failures use the standard error envelope with a closed set of codes.

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 chars
  • parentstringoptional

    Reply to this comment.

  • deckstringoptional
  • artifactstringoptional

    Version the anchor was made on.

  • slide_indexintegeroptionalmin 0
  • anchorobject | object | nulloptional
  • external_idstringoptionalmax 200 chars
  • metadataobjectoptional

    Arbitrary 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

Returns

  • 200The comment.

Failures use the standard error envelope with a closed set of codes.

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 chars
  • resolvedbooleanoptional

    Resolve (true) or reopen (false).

  • metadataobjectoptional

    Arbitrary key/value map; merge-on-write (§6).

Returns

  • 200The updated comment.

Failures use the standard error envelope with a closed set of codes.

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.