Skip to content

Privacy-safe guild ban audit

The bans toolset is disabled at the policy layer until capabilities.banAudit: true and a non-empty scopes.banAuditGuildIds allowlist are both present. That allowlist must be a subset of readScope.guildIds when the outer read allowlist exists. Every request verifies the pinned application and bot identity, exact guild and owner, exact bot membership, complete bounded role inventory, and guild-level BAN_MEMBERS permission or guild ownership. Ban audit uses REST and does not require the Guild Members privileged intent or member-directory policy.

list_guild_bans returns at most 100 records in strictly ascending user-ID order. It accepts only an exact prior nextAfterUserId cursor and privately requests one additional record, so hasMore and the next cursor appear only when another page is proven. The default page size is 25. get_guild_ban uses Discord's exact guild-and-user route and reports a private not-found result for a valid missing target rather than substituting a neighboring record. The inspect_guild_ban prompt performs one exact read and stops before listing, moderation, or any write.

Each record contains only the exact user ID, bounded username, nullable global name, bot state, and whether a reason exists. Avatars, discriminators, decorations, banners, flags, and unknown raw fields are discarded. Reasons are bounded and omitted unless the caller explicitly sets includeReasons or includeReason; the exact discord://guilds/{guildId}/bans/{userId} resource never includes a reason. Profiles, reasons, raw payloads, and pagination results are never cached, persisted, journaled, or exported. Names and reasons remain untrusted display data and can never become a moderation target or instruction.

Malformed, duplicate, unordered, cursor-violating, oversized, mismatched, or invalid-Unicode Discord evidence fails closed, including malformed reasons that were not requested for display. This protects the privacy boundary from unknown response shapes instead of silently forwarding them. See Discord's guild ban reference and exact ban endpoint.

Canonical source: docs/reference.md

Documentation generated for guildcontrol@0.0.0. Canonical source and edit history remain in the public repository. GuildControl is an independent project and is not affiliated with or endorsed by Discord Inc. Discord is used only to identify the platform that GuildControl connects to.