Skip to main content
Turn on comment review when a community should read a comment before anyone else does. A held comment still belongs to its author, who can keep editing it, but it stays out of comment lists and public comment counts until a reviewer approves it. Reviewers work from a community-wide queue and approve or decline by comment ID.

Platform Support

Approval Lifecycle

Every comment carries an approvalStatus. This section is the single reference for when a comment is held, how its status moves, and what each move changes on the comment and its post. The method sections below show the calls.

When Review Applies

A comment is held for review only when all three of these are true:
  1. It is written on a post that belongs to a community. This includes replies: a reply on such a post is held under the same rule as a top-level comment.
  2. That community has needApprovalOnCommentCreation turned on. See Require Review for Community Comments.
  3. Its author cannot review that community’s comments. The community’s creator, and anyone who holds REVIEW_COMMUNITY_COMMENT on the community, publish immediately. Community moderators hold that permission by default.
Every other comment is approved when it is written. Changing the setting affects future transitions, not existing comments:
  • Turning review on changes no existing comment. A comment written before the switch enters review only if someone who cannot review later makes an effective edit to it. See How the Status Changes.
  • Turning review off does not drain the queue. Comments already pending stay pending, stay in the review queue, and can still be approved or declined.

Statuses

The server omits approvalStatus on a comment that has never been through review, which includes every comment written before this feature. Every SDK reads an absent value as approved. Read the value from the SDK model, not the field’s presence on the raw payload, and do not write your own defaulting.

Comment Queries Show Approved Comments Only

The TypeScript, iOS, and Android SDKs filter comment queries to approved comments, for every viewer, including the author of a pending comment. The same applies to a post’s latest-comment previews and to reply lists. You do not need to filter pending comments out yourself, and you cannot get one back through a comment query. To show an author their own pending comment, keep the comment that create or edit returns and render it outside the list, for example with an “Awaiting review” label. Reviewers read pending comments through the review queue.

How the Status Changes

An edit is effective when it changes the comment’s text, or when it sends attachments, links, or metadata at all, even the same values as before. An edit that sends only unchanged text leaves the status as it is.

What Approving or Declining Changes

Only approvalStatus records the outcome on the comment. The other changes land on visibility, counts, and events. The reviewer who decided, the time of the decision, and the decline reason are kept for the moderation record only. No SDK returns them.

Permission

Reading the queue and deciding on a comment both require the REVIEW_COMMUNITY_COMMENT permission on the target community. A client-side check is for hiding controls only; the server enforces the permission on every call, and a reviewer can never review their own comment.

Require Review for Community Comments

Set needApprovalOnCommentCreation when you create or update the community. After it is on, new comments and effective edits in that community enter the queue, unless their author can review the community’s comments. See Approval Lifecycle for the full rule.
Turning the setting off does not drain the queue. Comments already waiting stay waiting, and the review queue keeps serving them until each one is decided.

Read Approval Status on a Comment

Read the status on any comment you hold — including the one returned by create and edit — before you show it as published. In a community that requires review, a create or an effective edit comes back pending. In a community that requires review, create comments with optimistic creation turned off. An optimistic create writes a local comment before the server answers, and the SDK cannot determine that comment’s approval status yet; the correct status is reflected once the server responds. With optimistic creation off, nothing is written locally until the server confirms the comment, so the comment you receive already carries its approval status.

Query the Review Queue

List a community’s pending comments, newest first by when each entered the queue. A comment sent back for re-review returns to the top.

Approve or Decline a Comment

Approve to reveal the comment to everyone and move the post’s comment count by one. Decline to reject it — a declined comment is deleted at the same time. What Approving or Declining Changes lists every effect of both. Both calls take the comment ID. Decline also takes an optional reason, at most 250 characters, kept for the moderation record only. Neither call is idempotent. A second decision on a comment that was already decided is refused, so two reviewers acting at once cannot both record an outcome.
Comment review changes how several other comment, post, and community APIs behave. The reference for each is on its own page; this table says only how review affects it.

Post Review

Approve, decline, and query posts held for community review.

Edit Comment

Update comment text and attachments, and see when an edit needs review again.

Query Comments

List comments and replies on a post, story, or custom content ID.

Social Realtime Events

Subscribe to community and post topics so comment events reach the client.