Skip to content

Reports queue

Moderation → Reports (/moderation/reports) is the queue of user-submitted reports. Users can report comments, series (rare), or other users. Each report is a reports row with ref_type, ref_id, reason, status.

Columns:

ColumnMeaning
ReporterUser who submitted the report.
RefWhat was reported (comment / series / user), with a link.
ReasonReporter’s dropdown choice + free-text description.
Statuspending / resolved / dismissed.
CreatedTimestamp.

Click a row → detail. Resolve action opens a modal with cascade options:

OptionEffect
DismissNo action; status='dismissed'.
Hide/Delete target (for comments)Same as the comment queue action; also resolves the report.
Strike target userInserts a user_strike; useful even if the comment is not being deleted.
Suspend target userOpens the standard suspend flow (must have users:ban).
Ban target userSame, ban flow.

Every cascade action is one form submit: the queue is intentionally low-friction to keep moderators fast.

Reports on a comment that gets deleted from the comments queue are auto-resolved to resolved (linked via ref_type='comment', ref_id=<comment_id>).

Fixed dropdown on mobile:

  • Spam
  • Harassment / hate
  • Sexual content
  • Off-topic
  • Personal info / doxxing
  • Misinformation
  • Other (requires free text)
  • A single user can report the same comment multiple times. The API deduplicates by (reporter_user_id, ref_type, ref_id): the second report is a no-op.
  • Report volume as a signal: if a comment has 20+ reports, it’s almost certainly bad. Batch-handle those first from the comments queue’s report-sort.
  • False-report campaigns: if a user submits many bogus reports, add a strike to the reporter, not the target.
ActionEndpoint
List reportsGET /v1/admin/moderation/reports
Resolve reportPOST /v1/admin/moderation/reports/:id/resolve

Full details in API: Engagement.