> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hookmyapp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Comments

> Read, reply to, hide, delete and privately answer comments on your Page posts.

## Ids

A post id is `{pageId}_{postId}`. A comment id from a webhook is `{postId}_{commentId}`.<br />
Post ids come from [comment webhook events](/facebook/receive-webhooks#comment-and-post-events) or from [your post list](/facebook/publish#list-posts).

## List comments

```bash theme={null}
curl "https://gateway.hookmyapp.com/meta/v25.0/${POST_ID}/comments?fields=id,from,message,created_time,is_hidden,parent&filter=stream" \
  -H "Authorization: Bearer ${PAGE_ACCESS_TOKEN}"
```

`filter=stream` returns every comment, replies included, oldest first. A reply carries `parent.id`.<br />
Results are paginated with `paging.cursors.after`.

## Reply publicly

Posts a reply under the comment.

```bash theme={null}
curl -X POST "https://gateway.hookmyapp.com/meta/v25.0/${COMMENT_ID}/comments" \
  -H "Authorization: Bearer ${PAGE_ACCESS_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{ "message": "Thanks!" }'
```

Hidden or deleted comments cannot be replied to. Unhide first.

## Reply privately

Sends a Messenger message to the commenter instead of a public reply.

```bash theme={null}
curl -X POST "https://gateway.hookmyapp.com/meta/v25.0/${PAGE_ID}/messages" \
  -H "Authorization: Bearer ${PAGE_ACCESS_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
  "recipient": { "comment_id": "500000000000001_500000000000002" },
  "message": { "text": "Sent you the details here." }
}'
```

<Warning>
  Private replies have hard limits from Meta:<br />
  One private reply per comment.<br />
  Within 7 days of the comment.
</Warning>

A rejected private reply is permanent for that comment. Retrying the same call cannot succeed.<br />
The person's reply, if any, opens a normal 24-hour window.

## Hide, unhide and delete

```bash theme={null}
# Hide a comment (unhide with is_hidden=false)
curl -X POST "https://gateway.hookmyapp.com/meta/v25.0/${COMMENT_ID}" \
  -H "Authorization: Bearer ${PAGE_ACCESS_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{ "is_hidden": true }'

# Delete a comment. Use the numeric comment id (the part after the underscore)
curl -X DELETE "https://gateway.hookmyapp.com/meta/v25.0/${NUMERIC_COMMENT_ID}" \
  -H "Authorization: Bearer ${PAGE_ACCESS_TOKEN}"
```

Hidden comments stay visible to their author and their friends. Delete is irreversible and only works on comments on the Page's own posts.

## Moderate with the CLI

```bash theme={null}
# List comments
hookmyapp facebook comments list --channel ch_xxxxxxxx --post <page-id>_<post-id>

# Reply to a comment
hookmyapp facebook comments reply --channel ch_xxxxxxxx --comment <comment-id> --message "Thanks!"

# Send a private reply
hookmyapp facebook comments private-reply --channel ch_xxxxxxxx --comment <comment-id> --message "Sent you a DM"

# Hide and unhide
hookmyapp facebook comments hide --channel ch_xxxxxxxx --comment <comment-id>
hookmyapp facebook comments unhide --channel ch_xxxxxxxx --comment <comment-id>

# Delete
hookmyapp facebook comments delete --channel ch_xxxxxxxx --comment <comment-id>
```

The CLI accepts either comment id form and picks the right one for each call.

## Moderate with MCP

Three tools cover comments: `list_facebook_comments`, `reply_facebook_comment` (public, or private with `private: true`) and `moderate_facebook_comment` (`hide`, `unhide` or `delete`).

```text theme={null}
Use HookMyApp MCP to list the comments on my latest Facebook post, reply to genuine questions, and hide spam.
```

See [MCP](/facebook/mcp-server) for setup.

## Next steps

* [Receive webhooks](/facebook/receive-webhooks#comment-and-post-events): Get notified when comments arrive.
* [Publish](/facebook/publish): Publish the posts people comment on.
