Documentation 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.
The Artemis admin panel provides site administrators with tools that operate across the entire platform, beyond the scope of any individual branch. Access to every admin route is protected by the VAdmin validator — only accounts with admin status can reach these pages. This page covers the routes, models, and workflows available to site admins.
All admin panel routes require a valid admin session. Attempting to access /admin/ routes without admin status will be rejected by the VAdmin validator.
Admin Panel Routes
The following routes are registered in routing.py for site-wide administration:
| Route | Controller / Action | Description |
|---|
/admin/ | awards | Admin landing page — award management |
/admin/awards | awards | Create and manage site awards |
/admin/awards/:awardcn/give | awards | Give a specific award to a user |
/admin/awards/:awardcn/winners | awards | View winners of a specific award |
/admin/cbranches | admintool → GET_cbranches | Manage cbranches (community branch subscriptions) for a recipient |
/admin/gold | admintool → GET_gold | Manage gold status for a recipient |
cbranches Management
The /admin/cbranches page is served by AdminToolController.GET_cbranches. It accepts an optional recipient query parameter and renders the AdminCbranches component inside the standard AdminPage layout. Admins use this to inspect or adjust cbranches (a gold-tier branch subscription feature) for a given user account.
Gold Management
The /admin/gold page is served by AdminToolController.GET_gold. It also accepts a recipient parameter and renders AdminGold. From here, admins can adjust a user’s gold expiration — adding days, months, or years — or manually grant and revoke gold status.
The cbranches_lock from r2.models.gold is used internally to prevent concurrent modifications to a user’s cbranches subscription state.
AdminTools: Platform-Wide Content Actions
The AdminTools class (in r2/models/admintools.py) provides the low-level methods used across the platform to take action on content. These are also called by moderators within branches, but admins can invoke them globally.
Spam / Remove
Approve (Unspam)
Shadow Banning
The spam() method marks one or more things as removed. The key parameters that determine the type of removal are:| Parameter | Effect |
|---|
auto=True | Automated removal (spam filter or AutoModerator). Sets verdict to nothing; item kept in modqueue |
auto=False, moderator_banned=True | Moderator removal. Sets verdict = 'mod-removed' |
auto=False, moderator_banned=False | Admin removal. Sets verdict = 'admin-removed' |
train_spam=True | Trains the spam classifier on the item |
train_spam=False | Removes without affecting the spam classifier |
The note field stored in ban_info records the reason code (spam, remove not spam, confirm spam, reinforce spam). The unspam() method reverses a removal. It sets _spam = False and records the approval:| Parameter | Effect |
|---|
moderator_unbanned=True | Sets verdict = 'mod-approved' |
moderator_unbanned=False | Sets verdict = 'admin-approved' |
unbanner | Username of the admin or moderator approving the item, stored in ban_info |
Approving an item also calls Report.accept() to clear any pending reports, and queues the item for re-indexing. Shadow-banned accounts have _spam = True set on the account itself. Their posts are silently filtered as spam without notifying the user. This is distinct from a branch-level ban, which prevents posting but does not hide existing content.
Admin Notes
AdminNotesBySystem (in r2/models/admin_notes.py) stores timestamped notes keyed by a system_name and a subject string. Notes are stored in Cassandra and returned in reverse-chronological order.
Each note record contains:
| Field | Description |
|---|
note | The text of the admin note |
author | The username of the admin who wrote the note |
when | UTC timestamp of when the note was created |
Notes are grouped by system_name (the subsystem they relate to, e.g. a particular moderation or account review process) and subject (the specific entity being noted, such as a username or item fullname). The row key used in Cassandra is system_name:subject.
Traffic Reporting
Traffic statistics are accessible through the following routes:
| Route | Description |
|---|
/traffic | Site-wide traffic overview |
/traffic/languages/:langcode | Traffic breakdown by language |
/traffic/adverts/:code | Traffic stats for a specific advert code |
/traffic/branches/report | Branch-level traffic report (admin view) |
Individual link/campaign traffic is also available at /traffic/:link/:campaign and is controlled by the public_traffic branch setting — if the branch has enabled public traffic stats, any user can view it; otherwise it is restricted to moderators and admins.
Admins and sponsors access promotion management through the /sponsor/ routes:
Sponsor overview
/sponsor — lists all promotions, sorted by all by default.
Filtered promotion listings
/sponsor/promoted/:sort — filter by status: future_promos, pending_promos, unpaid_promos, rejected_promos, live_promos, edited_live_promos, underdelivered, reported, house, fraud, all, unapproved_campaigns, by_platform.
Inventory and reporting
/sponsor/inventory — check ad inventory availability. /sponsor/report — generate a sponsor report.
User lookup
/sponsor/lookup_user — look up a user’s promotion history.
Live promotions for a specific branch can be viewed at /sponsor/promoted/live_promos/:sr.
| Route | Description |
|---|
/promoted/new_promo | Create a new promoted post |
/promoted/edit_promo/:link | Edit an existing promoted post |
/promoted/pay/:link/:campaign | Submit payment for a campaign |
/promoted/refund/:link/:campaign | Process a campaign refund |
Admin Session Management
Admins log in to a standard session and then elevate to admin mode via /adminon. The elevated session can be dropped with /adminoff. This separation means admin actions are only possible while the elevated session is active, reducing the risk of accidental use of admin privileges during normal browsing.
Log in normally
Authenticate at /login with your admin account credentials.
Enable admin mode
Navigate to /adminon to activate your admin session.
Perform admin actions
Admin panel routes and admin-only API endpoints are now accessible.
Disable admin mode when done
Navigate to /adminoff to drop admin privileges for your current session.