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.
The queue
Section titled “The queue”Columns:
| Column | Meaning |
|---|---|
| Reporter | User who submitted the report. |
| Ref | What was reported (comment / series / user), with a link. |
| Reason | Reporter’s dropdown choice + free-text description. |
| Status | pending / resolved / dismissed. |
| Created | Timestamp. |
Resolving a report
Section titled “Resolving a report”Click a row → detail. Resolve action opens a modal with cascade options:
| Option | Effect |
|---|---|
| Dismiss | No action; status='dismissed'. |
| Hide/Delete target (for comments) | Same as the comment queue action; also resolves the report. |
| Strike target user | Inserts a user_strike; useful even if the comment is not being deleted. |
| Suspend target user | Opens the standard suspend flow (must have users:ban). |
| Ban target user | Same, ban flow. |
Every cascade action is one form submit: the queue is intentionally low-friction to keep moderators fast.
Auto-resolution
Section titled “Auto-resolution”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>).
Report reasons
Section titled “Report reasons”Fixed dropdown on mobile:
- Spam
- Harassment / hate
- Sexual content
- Off-topic
- Personal info / doxxing
- Misinformation
- Other (requires free text)
Gotchas
Section titled “Gotchas”- 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.
API calls
Section titled “API calls”| Action | Endpoint |
|---|---|
| List reports | GET /v1/admin/moderation/reports |
| Resolve report | POST /v1/admin/moderation/reports/:id/resolve |
Full details in API: Engagement.