Skip to main content
SDK TypeScript v7.28.0+ · iOS 8.8.0+ · Android 7.27.0+ · Last verified September 2026 · Not available on Flutter
Full walkthrough below ↓
Platform note — code samples below use TypeScript. Every method has an equivalent in the iOS (Swift) and Android (Kotlin) SDKs — see Comment Review for all three. Flutter does not ship comment review.
Some communities need a moderator to read a comment before anyone else does: a brand community during a product launch, a support forum, a group for younger members. Comment review holds a member’s comment until a moderator approves it, while the author still sees their own comment as “awaiting review” rather than watching it vanish. This guide wires the whole loop: the community setting, the author’s experience, and the reviewer’s queue.
Prerequisites: SDK installed and authenticated, a community whose settings you can change, and a user who holds REVIEW_COMMUNITY_COMMENT on it (community moderators do by default).Also recommended: Comments & Reactions for the comment thread this guide builds on.
After completing this guide you’ll have:
  • A community that holds members’ comments for review
  • An author experience that shows a pending comment as “awaiting review”
  • Comment threads and counts that stay correct as comments are approved
  • A reviewer screen that lists pending comments and approves or declines them

How Comment Review Works

A comment is held only when three things are true: it is on a post in a community, that community requires comment review, and its author cannot review the community’s comments. The community’s creator and its moderators publish immediately. Comments on stories, on user-feed posts, and on your own content IDs are never held. A held comment is pending. A reviewer approves it (approved, visible to everyone) or declines it (rejected, and deleted). Editing an approved comment’s content sends it back to pending. The full rules, with every transition and what it changes, are in the Approval Lifecycle.

Step-by-Step Implementation

1

Turn on review for a community

Set needApprovalOnCommentCreation when you create or update the community. From then on, new comments by members who cannot review are held.
TypeScript
Moderators can also turn it on from the Admin Console: the community’s Permissions tab → Approve member comments. On Android, use isCommentReviewEnabled(true) on the community create or update builder.Full reference → Require Review for Community Comments
2

Create comments and show the author an awaiting-review state

Create with optimistic creation turned off. An optimistic create shows a local comment before the server answers, and its approval status is only the SDK’s guess; with it off, the comment you receive carries the server’s decision.
TypeScript
Keep that returned comment and render it yourself. A pending comment never appears in a comment query, not even its author’s, so the thread alone would make it look as if the comment disappeared.Full reference → Read Approval Status on a Comment
3

Keep the thread and counts correct

Subscribe to the post’s comment topic so approvals reach the client. The comment query then inserts an approved comment into the thread on its own, in the position where it was written, and moves the count.
TypeScript
For the post’s comment count, post.commentsCount counts approved comments for everyone, the author included. Use post.getLocalCommentCount(true) when the author should see their own pending comment counted.Full reference → Social Realtime Events · What Approving or Declining Changes
4

Build the reviewer screen

Show review controls only to users who hold REVIEW_COMMUNITY_COMMENT on the community. The server enforces the permission on every call; the client check is for hiding controls.
TypeScript
Approve or decline by comment ID. Approving publishes the comment; declining rejects and deletes it.
TypeScript
Full reference → Query the Review Queue · Approve or Decline a Comment
5

Handle edits

An effective edit by the author sends an approved comment back to review, so read the status on the edited comment too. Whether an author may edit a comment that is still pending is a network setting; read it before you show an edit control on a pending comment.
TypeScript
Full reference → How the Status Changes

Admin Console: Review Comments Without Building a Screen

Moderators can work the same queue from the Admin Console instead of an in-app screen: the Requires approval queue on the Comments page lists pending comments, with approve and decline actions. Both surfaces act on the same comments, so a decision in one is reflected in the other. → Comment Approval in the Console

Common Mistakes

Showing the optimistic comment as published — With optimistic creation on, a local comment appears before the server decides whether it needs review. Create with isOptimistic set to false and read approvalStatus on the result.
Waiting for a pending comment to show up in the thread — Comment queries return approved comments only, for the author too. Render the author’s pending comment from the create or edit result.
Telling the author why their comment was declined — The decline reason is kept for the moderation record only and is never returned to the author or anyone else through the SDK. There is also no comment.declined event: a decline arrives as a deletion.
Retrying a 400300 on approve or decline — It means the comment was already decided, usually by another reviewer. Refresh the queue instead of retrying.
Building an “N awaiting review” badge — The review queue returns no total. Page through it instead.

Best Practices

  • Label a pending comment clearly, for example “Awaiting review — only you can see this”, so the author does not post it twice
  • Keep the author’s pending card below the thread rather than mixing it into approved comments
  • Disable reply, reaction, and flag controls on a pending comment; the server refuses all three
  • Filter the queue by postId or a date range when a community is busy
  • Treat a 404 on a pending comment as “not visible to you”, not as “deleted”
  • Remember that turning review off does not clear the queue; pending comments still need a decision

Dive deeper: Comment Review has the full lifecycle, parameter tables, errors, and iOS and Android examples for every API in this guide.

Next Steps

Your next step → Content Moderation Pipeline

Comments are reviewed before they go live — now add flagging, AI moderation, and webhook automation.
Or explore related guides:

Comments & Reactions

Build the comment threads that review applies to

Roles, Permissions & Governance

Decide who can review a community’s comments

Community Platform

Set up the communities that carry the review setting