> Privacy Policy
Last updated: September 23, 2026
# Overview
This policy covers both the NinjaBot Discord bot and the NinjaBot web dashboard. Together, they help you manage your Discord server with World of Warcraft integrations. We use data to provide the features described below, operate the service, and investigate problems. We do not sell your data. Data is processed by Discord, game APIs, and infrastructure providers as described in this policy.
# Data We Collect
- - Discord account info: Your Discord user ID, username, and avatar when you log in or interact with the bot
- - Server info: Discord server ID, name, and icon for servers where the bot is installed or you have admin permissions
- - Member information: Member identifiers, names, nicknames, roles, and join/leave or member-update events used for configured welcome messages, moderation notifications, and membership-dependent features
- - Bot settings: Configuration you set up (greetings, WoW guild links, realm watches, word filters, poll settings, etc.)
- - WoW character and guild data: Characters you link to your Discord account, guild associations, and guild roster data synced from the Blizzard API (member names, levels, ranks, item levels, Mythic+ scores)
- - Bot usage data: Character search history (for autocomplete), poll votes, user-provided away messages and server notes, crafting requests, Mythic+ group information, and command usage logs
- - Moderation data: Warnings issued to users and moderation actions taken by server admins
- - Message data: Message content and associated author, channel, and message information received by the bot, temporarily cached and used for the moderation features described below
- - Operational data: Service and diagnostic logs, which may include Discord identifiers, usernames, server names, command activity, and error details
# How We Process Your Data
- - Word filtering: If a server configures blocked words, the bot checks ordinary server messages against that list and deletes matches. The filter processes text in memory and does not itself save message bodies to a database. A filtered message may still be held in the temporary cache or copied to a Discord notification channel by the deletion watcher.
- - Temporary message cache: The bot keeps a bounded, in-memory cache on its host, currently configured for up to 1,000 messages per channel. This supports features such as edit and deletion notifications. This is not a permanent chat-transcript database or a time-based retention guarantee; cached messages are replaced as the cache fills and are lost when the bot process ends. Disabling a moderation feature does not disable this underlying cache.
- - Edited and deleted messages: If enabled by a server, the bot posts available before/after or deleted message text, author information, and the source channel into that server's configured Discord notification channel. Each displayed message text is limited to 1,000 characters plus a truncation marker. Old content may be unavailable if it is not cached. Deleting the original message does not delete the notification copy. Access to these copies depends on the destination channel's permissions; the bot does not automatically make it private or match the source channel's audience.
- - Member and activity notifications: Configured watchers can post role, nickname, ban, or voice-channel activity to a Discord notification channel. Welcome and departure messages use member events. These features do not track members' online presence or the games they are playing.
-
-
Away notices: When you set an away status, we store the text you provide and use Discord mention information to reply when you are mentioned. This feature does not infer your status from Discord presence or analyze the body of the message mentioning you. The
/backcommand disables your away status and clears its message. - - Guild roster syncing: The bot periodically fetches guild roster data from the Blizzard API to keep member info up to date.
- - Log monitoring: If configured, the bot checks WarcraftLogs for new raid logs and posts them to your Discord channel.
# Your Controls
Authorized server administrators and moderators can disable message watching, choose its notification channel, and remove blocked words to disable word filtering. Server administrators should choose notification-channel permissions carefully and tell members which moderation features they enable.
There is currently no individual opt-out from server-configured message filtering, edit/deletion notifications, or the underlying message cache. Server-level feature controls are not an individual processing opt-out. You can request deletion of data associated with your account using the contact method below.
# Storage Outside Discord
NinjaBot stores account and server identifiers, settings, feature records, operational logs, and backups outside Discord. Temporary member and message caches also reside on the bot host. The word-filter and message-watcher features do not maintain an application database of ordinary chat transcripts; message-watcher copies are posted inside Discord. Text you deliberately submit for persistent features, such as an away message or server note, is stored separately as feature data.
Encryption at rest is not currently in place across all storage locations used by the service. HTTPS or other transport encryption should not be interpreted as a guarantee that databases, logs, and backups are encrypted at rest. Please avoid submitting secrets or sensitive personal information to bot features.
# AI and Machine Learning
Discord message content is not used to train machine-learning or AI models. NinjaBot's word filtering uses configured terms and text normalization, not an AI model.
# Cookies (Web Dashboard Only)
The web dashboard uses only essential cookies required for it to function. We do not use tracking, analytics, or advertising cookies.
| Cookie | Purpose | Duration |
|---|---|---|
| NinjaBot.Auth | Keeps you logged in after Discord authentication | Authentication expires after 24 hours; signing in again is required |
| Session | Maintains your session state while browsing | Browser session; server-side session state expires after 30 minutes of inactivity |
| NinjaBot.Antiforgery | Protects against cross-site request forgery attacks | Session |
| NinjaBot.ThemePreview | Lets the bot owner preview a site theme | 30 minutes |
# Third-Party Services
Game API requests use information such as character names, guild names, realm names, region, and report identifiers. We do not send your Discord user ID or username to these game APIs. Hosting, network delivery, and backup providers process service data as part of running NinjaBot.
- - Discord: Authentication and bot functionality
- - Blizzard API: WoW character data, guild rosters, realm status, and game data lookups
- - Raider.IO: Mythic+ scores and raid progress data
- - WarcraftLogs: Raid log lookups and automatic log monitoring
- - Infrastructure providers: Hetzner provides hosting, Cloudflare provides network delivery, and Backblaze provides off-site backup storage
# Data Retention & Deletion
Persistent account associations, server settings, and feature records can be retained while you use the service and are not automatically deleted within 30 days. Removing the bot from a server does not automatically erase its stored settings or all records associated with that server. Temporary message caching is described above; Discord notification copies have a separate lifetime and are not automatically removed with the original message.
Requesting deletion: Contact the NinjaBot operator through our Discord support server. Provide your Discord user ID and, for a server-specific request, the relevant server ID and the data you want removed. Ask to share those details privately rather than posting sensitive information in a public channel. We may need to verify that the request concerns your account or a server you are authorized to manage.
You can request deletion of account information, character associations, search history, moderation records, and other data linked to your account. Operational logs and backups may contain additional copies; when responding to a request, we will explain any retention or removal limitations rather than promise that every copy disappears immediately.
For notification copies posted inside Discord, contact the server's administrators as well as the NinjaBot operator. These copies are subject to Discord channel permissions and message-deletion controls. Deleting data from NinjaBot's database does not itself remove Discord messages or copies retained by other users.
# Contact
Questions about this policy? Reach out on our Discord server.