All firewall endpoints require SERVER_FIREWALL when authenticated with an API key.
Logs
/api/v3/servers/{serverId}/firewall/logsList firewall logs
Returns paginated firewall log entries.
serverIdRequired- Location
- path
- Type
- string
pageOptional- Location
- query
- Type
- integer
- Default
- 1
limitOptional- Location
- query
- Type
- integer
- Default
- 10
userIdOptional- Location
- query
- Type
- string
actionOptional- Location
- query
- Type
- string
/api/v3/servers/{serverId}/firewall/logsClear firewall logs
Deletes firewall log history for a server.
serverIdRequired- Location
- path
- Type
- string
Rules
/api/v3/servers/{serverId}/firewall/rulesList rules
Returns rules, statistics, and available firewall passwords.
serverIdRequired- Location
- path
- Type
- string
/api/v3/servers/{serverId}/firewall/rulesCreate rule
Creates a firewall rule.
serverIdRequired- Location
- path
- Type
- string
targetTypeRequired- Location
- body
- Type
- string
operatorOptional- Location
- body
- Type
- string
targetValueRequired- Location
- body
- Type
- string
actionsRequired- Location
- body
- Type
- array
ruleTypeOptional- Location
- body
- Type
- string
passwordIdOptional- Location
- body
- Type
- string
assignedRoleIdOptional- Location
- body
- Type
- string
/api/v3/servers/{serverId}/firewall/rulesToggle rule
Enables or disables a rule.
serverIdRequired- Location
- path
- Type
- string
idRequired- Location
- body
- Type
- number
isActiveRequired- Location
- body
- Type
- boolean
/api/v3/servers/{serverId}/firewall/rules/{ruleId}Get rule
Reads one firewall rule.
serverIdRequired- Location
- path
- Type
- string
ruleIdRequired- Location
- path
- Type
- string
/api/v3/servers/{serverId}/firewall/rules/{ruleId}Update rule
Updates a firewall rule.
serverIdRequired- Location
- path
- Type
- string
ruleIdRequired- Location
- path
- Type
- string
/api/v3/servers/{serverId}/firewall/rules/{ruleId}Delete rule
Deletes a firewall rule.
serverIdRequired- Location
- path
- Type
- string
ruleIdRequired- Location
- path
- Type
- string
Passwords
/api/v3/servers/{serverId}/firewall/passwordsList passwords
Returns firewall password metadata and owner-visible password values.
serverIdRequired- Location
- path
- Type
- string
/api/v3/servers/{serverId}/firewall/passwordsCreate password
Creates a password used by password firewall rules.
serverIdRequired- Location
- path
- Type
- string
passwordRequired- Location
- body
- Type
- string
passwordLabelRequired- Location
- body
- Type
- string
maxUsesOptional- Location
- body
- Type
- number
expiresAtOptional- Location
- body
- Type
- string
/api/v3/servers/{serverId}/firewall/passwordsToggle password
Enables or disables a firewall password.
serverIdRequired- Location
- path
- Type
- string
idRequired- Location
- body
- Type
- number
isActiveRequired- Location
- body
- Type
- boolean
/api/v3/servers/{serverId}/firewall/passwords/{passwordId}Get password
Reads one firewall password.
serverIdRequired- Location
- path
- Type
- string
passwordIdRequired- Location
- path
- Type
- string
/api/v3/servers/{serverId}/firewall/passwords/{passwordId}Update password
Updates password metadata.
serverIdRequired- Location
- path
- Type
- string
passwordIdRequired- Location
- path
- Type
- string
/api/v3/servers/{serverId}/firewall/passwords/{passwordId}Delete password
Deletes a firewall password.
serverIdRequired- Location
- path
- Type
- string
passwordIdRequired- Location
- path
- Type
- string
Bypasses
/api/v3/servers/{serverId}/bypassList bypasses
Returns active bypasses or one user's bypass.
serverIdRequired- Location
- path
- Type
- string
userIdOptional- Location
- query
- Type
- string
/api/v3/servers/{serverId}/bypassCreate bypass
Creates a temporary firewall bypass for a Discord user.
serverIdRequired- Location
- path
- Type
- string
userIdRequired- Location
- body
- Type
- string
durationOptional- Location
- body
- Type
- string
- Default
- 24h
/api/v3/servers/{serverId}/bypassRemove bypass
Removes an active bypass for a user.
serverIdRequired- Location
- path
- Type
- string
userIdRequired- Location
- query
- Type
- string
Import Bans
/api/v3/servers/{serverId}/firewall/import-bansPreview Discord bans
Lists Discord bans not already represented as firewall rules.
serverIdRequired- Location
- path
- Type
- string
/api/v3/servers/{serverId}/firewall/import-bansImport Discord bans
Creates BLOCK rules from Discord server bans.
serverIdRequired- Location
- path
- Type
- string
Rule Types
- Condition field
ROLE- Operators and accepted value
CONTAINS/NOT_CONTAINS; current-server Discord role ID.
- Condition field
GUILD- Operators and accepted value
CONTAINS/NOT_CONTAINS; Discord server ID. Requires Business plan or higher.
- Condition field
USERNAME- Operators and accepted value
- All operators; literal text or slash-delimited RE2 pattern.
- Condition field
DOMAIN- Operators and accepted value
- All operators; email domain literal or slash-delimited RE2 pattern.
- Condition field
USER- Operators and accepted value
IS/IS_NOT; Discord user ID or a supported legacy detection value.
- Condition field
IP- Operators and accepted value
IS/IS_NOT; IPv4 address or a supported legacy detection value.
- Condition field
IP_RANGE- Operators and accepted value
IS/IS_NOT; IPv4 CIDR range (ISmeans within).
- Condition field
COUNTRY/CONTINENT- Operators and accepted value
IS/IS_NOT; one or more supported codes.
- Condition field
ASN- Operators and accepted value
IS/IS_NOT; numeric ASN, with or withoutASprefix.
| Condition field | Operators and accepted value |
|---|---|
ROLE | CONTAINS / NOT_CONTAINS; current-server Discord role ID. |
GUILD | CONTAINS / NOT_CONTAINS; Discord server ID. Requires Business plan or higher. |
USERNAME | All operators; literal text or slash-delimited RE2 pattern. |
DOMAIN | All operators; email domain literal or slash-delimited RE2 pattern. |
USER | IS / IS_NOT; Discord user ID or a supported legacy detection value. |
IP | IS / IS_NOT; IPv4 address or a supported legacy detection value. |
IP_RANGE | IS / IS_NOT; IPv4 CIDR range (IS means within). |
COUNTRY / CONTINENT | IS / IS_NOT; one or more supported codes. |
ASN | IS / IS_NOT; numeric ASN, with or without AS prefix. |
{
"targetType": "USERNAME",
"operator": "CONTAINS",
"targetValue": "/^staff[-_].+/i",
"actions": [
{ "type": "ALLOW" },
{ "type": "GIVE_ROLE", "roleId": "123456789012345678" }
],
"name": "Staff access"
}Constraints
TIMEtarget rules are rejected because time-based rules are not implemented.- Regex patterns are limited to 200 characters, use RE2 syntax, and accept only
i,m, andsflags. REQUIRE_PASSWORDactions require an active firewall password.BLOCKcannot be combined withGIVE_ROLE; other decisions accept up to five distinct role effects.- Responses include both canonical
actionsand legacyruleType,passwordId, andassignedRoleIdfields. - Ban imports require Premium, Business, or Enterprise and a bot with Discord
BAN_MEMBERSpermission. - Password labels must be unique per server.
- Bypass durations are limited to
15m,1h,6h,24h, or7d.
Firewall changes directly affect who can verify. Test restrictive rules with a known staff account before rolling them out broadly.