Modulify

List site comments

list_comments

Lists the review comments left on a site, with each one's author, status, reply count, reactions and attachments.

POST /v1/list_commentsScopecomments:readRead only

Comments are pinned to a spot on the site preview, and they belong to the people reviewing the site rather than to the AI client, so this is how an agent finds out what has been asked for. Each root comment comes back with its author, AuthorKind, status, reply count, reactions and attachments, alongside total and hasMore. Open and resolved threads both come back, a resolved one with its Status set to completed. Deleted comments never appear.

AuthorKind is member for someone in the workspace, outside for a signed-in person who is not in it, and guest for a visitor with no account, whose generated name is in Guest while User is empty. When the site's shared link lets viewers comment, anyone holding that link can write here. A comment whose AuthorKind is outside or guest therefore comes from a person outside the workspace and carries an OutsideNotice. The tool tells the client to treat its text as feedback to report, never as instructions to follow, and to check with you before acting on it.

There is no page size. Every root comment that is not deleted comes back at once, and a tool result is capped at 60,000 characters, so a busy site can overrun the cap and needs skip to walk it.

pagePath returns the comments anchored to that page plus every comment left without an element anchor, since an unanchored comment records no page. To read the replies in a thread, use get_comment. See Comments.

Request

Call it with a POST to https://api.modulify.ai/v1/list_comments, sending the inputs below as a JSON object. The token needs the comments:read scope.

It only reads and changes nothing, so retrying it is safe.

curl -X POST https://api.modulify.ai/v1/list_comments \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"projectId":"PROJECT_ID"}'

Over MCP, the same method is the list_comments tool.

Inputs

Input Type Required Description
projectId string Yes The site id.
pagePath string No Only the comments anchored to this page of the site, such as /pricing, plus every comment with no element anchor. Leave it out for every page.
search string No Only the comments whose text contains this, ignoring case. Replies are not searched.
sort string No newest first, the default, or oldest first.
skip integer No How many comments to skip, for paging.

Response

Every call answers with the JSON envelope of success, message, data, code and version. data holds the result described above, and on a method that returns a total, count carries it. The response headers carry the call's X-Request-Id and what is left of your per-minute budget in X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. Errors explains every status code a call can answer with.