Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/toolbox-team/reddit-moderator-toolbox/llms.txt

Use this file to discover all available pages before exploring further.

Toolbox usernotes are stored in the usernotes wiki page of each moderated subreddit. The stored JSON contains a compressed blob of per-user note arrays alongside a constants table that maps integer indices to moderator names and note type keys. Wiki page: usernotes | Current schema version: 6 | Supported range: v4–v6

Top-level structure

{
  "ver": 6,
  "constants": {
    "users": ["moderator_a", "moderator_b"],
    "warnings": ["none", "spamwatch", "spamwarn", "abusewarn", "ban", "permban", "botban", "gooduser"]
  },
  "blob": "<base64-encoded zlib-compressed JSON>"
}
ver
integer
required
Schema version. Must be between 4 (minimum supported) and 6 (current maximum). Toolbox rejects data outside this range.
constants
object
required
Lookup tables used to compress repeated strings in the blob. Integer indices in note objects map back into these arrays.
blob
string
required
Base64-encoded, zlib-compressed JSON string. After decompression and parsing, contains the notes data object. See wiki storage for the compression algorithm.

Decompressed blob structure

After decoding and inflating the blob, you get a JSON object keyed by lowercase Reddit username:
{
  "someuser": {
    "notes": [
      {
        "n": "ban evasion, linked to u/otheraccount",
        "t": 1700000000,
        "m": 0,
        "l": "l,1abc23",
        "w": 4
      },
      {
        "n": "spam in weekly thread",
        "t": 1699000000,
        "m": 1,
        "l": "l,2xyz99",
        "w": 1
      }
    ]
  },
  "anotheruser": {
    "notes": [
      {
        "n": "helpful contributor",
        "t": 1698000000,
        "m": 0,
        "l": "https://reddit.com/r/example/comments/abc/",
        "w": 7
      }
    ]
  }
}
Toolbox normalizes usernames to lowercase when storing notes to avoid duplicates from capitalization differences. When reading, check both the exact case and the lowercase version of a username.

Note object fields

n
string
required
The note text, written by the moderator.
t
integer
required
Unix timestamp of when the note was created, in seconds.
m
integer
required
Zero-based index into constants.users identifying the moderator who created the note.
l
string
required
Link associated with the note. Two formats are used:
  • Fullname shorthand: l,{fullname} where {fullname} is a Reddit thing fullname (e.g. l,1abc23 for a link/post, l,abc23 for a comment). Expand to a full URL as /r/{subreddit}/comments/{id}.
  • Full URL: A complete https:// URL to the relevant Reddit page.
w
integer
required
Zero-based index into constants.warnings identifying the note type for this note.

Default note types

Toolbox ships with the following default note type keys (defined in tbcore.js). Subreddits can customize these via the usernoteColors config field, but these keys are the defaults used in constants.warnings for new subreddits:
Index (default order)KeyDefault colorDisplay text
0none(no type)
1spamwatchfuchsiaSpam Watch
2spamwarnpurpleSpam Warning
3abusewarnorangeAbuse Warning
4banredBan
5permbandarkredPermanent Ban
6botbanblackBot Ban
7goodusergreenGood Contributor
The actual indices in constants.warnings are determined by the array order stored in the wiki, not by a fixed global mapping. Always resolve indices against the constants.warnings array in the specific usernotes object you are reading — do not hardcode index values.

Schema version history

VersionStatusNotes
6CurrentActive schema used by Toolbox
5SupportedReadable but not written by current Toolbox
4DeprecatedToolbox can read v4 but warns moderators to upgrade
1–3UnsupportedToolbox will not read these; contact r/toolbox for migration

Build docs developers (and LLMs) love