The Moderation API gives branch moderators and site admins programmatic control over content and user management. All moderation endpoints require the authenticated user to be a moderator of the target branch with the appropriate permission set, or a site admin. Most endpoints consume theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/artemis-development-group/artemis/llms.txt
Use this file to discover all available pages before exploring further.
modposts or modcontributors OAuth2 scope.
POST /api/remove
Removes a post or comment from all branch listings. Moderators can mark the removal as spam, which trains the spam filter, or as a plain removal, which does not.Fullname of the post (
t3_) or comment (t1_) to remove.When
true, the removal is treated as a spam action and the item is used to train the spam classifier. When false, the item is removed without spam classification.modposts OAuth2 scope. The authenticated user must be a moderator with the posts permission for the branch containing the item.
POST /api/approve
Approves a previously removed post or comment. Approved content is re-inserted into branch listings and any reports on it are discarded.Fullname of the post or comment to approve.
modposts OAuth2 scope.
If the item was in the spam queue, approving it also trains the spam classifier to recognize similar content as legitimate.
POST /api/distinguish
Adds or removes a moderator or admin sigil on a comment to indicate the author’s role. The sigil appears inline next to the author’s username.Fullname of the comment (or post) to distinguish.
The distinguish level. One of:
yes— adds a moderator distinguish[M]. The user must be a moderator of the branch.no— removes any existing distinguish.admin— adds an admin distinguish[A]. Admin accounts only.special— adds a user-specific distinguish. Availability depends on the account.
modposts OAuth2 scope. When a top-level comment is moderator-distinguished for the first time, the post author receives an inbox notification.
Banning and unbanning users
- POST /api/friend (ban)
- POST /api/unfriend (unban)
Bans a user from a branch by creating a
banned relationship. Requires the modcontributors OAuth2 scope. Issue the request with the branch in context (e.g. from /r/:branch/api/friend).Username of the user to ban.
Must be
banned.A short reason for the ban, shown to the user. Maximum 100 characters.
A longer message sent to the user explaining the ban. Markdown, maximum 1,000 characters.
An internal moderator note, not visible to the banned user. Maximum 300 characters.
Duration of a temporary ban in days. Range is 1–999. Omit for a permanent ban.
Muting and unmuting message authors
Muting prevents a user from sending modmail to the branch for 28 days.Moderation queues
The following endpoints return paginated listings of items that require moderator attention. All require the authenticated user to be a moderator of the branch.- Mod queue
- Reports
- Spam queue
Returns unreviewed posts and comments — items that have been reported or caught by the spam filter but not yet actioned by a moderator.
The branch name.
Filter by type.
links for posts only, comments for comments only.Fullname cursor for forward pagination.
Number of items to return. Maximum is 100.
Listing object whose children array contains the flagged items together with their report counts and reasons.
GET /r/:branch/about/log.json
Returns a paginated log of moderator actions taken in the branch. Requires a moderator session or themodlog OAuth2 scope.
The branch name.
Restrict results to actions taken by this moderator username. Accepts a comma-separated list of names, or
a to show only admin actions.Restrict results to a specific action type. See
ModAction.actions in the source for the full list (e.g. removelink, approvecomment, banuser, muteuser, distinguish, setpermissions).Fullname cursor for forward pagination.
Number of entries to return. Maximum is 500.
Username of the moderator who performed the action.
The action type (e.g.
banuser, removelink, distinguish).Fullname of the item or user the action was applied to.
Short detail string (e.g. ban duration or
remove vs spam).Longer moderator-supplied description (e.g. ban reason or note).
Unix timestamp of when the action occurred.
POST /api/setpermissions
Updates the permission set for a moderator or pending moderator invite in a branch. Requires themodothers OAuth2 scope. Only unlimited moderators or site admins can change another moderator’s permissions.
Username of the moderator whose permissions are being updated.
The relationship type to update. Either
moderator (for an existing moderator) or moderator_invite (for a pending invite).A
+-prefixed, comma-separated list of permissions to grant, or -all to grant none. Available permissions are all, access, config, flair, mail, posts, and wiki. Pass +all to grant every permission.