MethodPathSummaryAuth
GET/v1/security-bansList the ban list of the session tenant's sitesSession
POST/v1/security-bansBan a client on a site of the session tenantSession
POST/v1/security-bans/{entry_id}/releaseRelease a ban of the session tenantSession

Contract file:api/control-security-bans.openapi.yaml

Operation details

GET /v1/security-bans

List the ban list of the session tenant's sites

operationId
listSecurityBans
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:security_policies.read

Parameters

listSecurityBans Parameters
NameInTypeRequiredDescription
site_idquerystring(uuid)No—
client_ipquerystringNoAn address or a network.
statequerystring: active / released / expiredNo—
pagequeryintegerNo—
limitqueryintegerNo—

Responses

listSecurityBans Responses
StatusDescription
200Newest first.

Fields:items: array<Entry> total: integer page: integer limit: integer

400Error.
401Error.
403Error.
404Error.

What to do on failure

  • 400 Fix the parameters or body per the field list; do not retry unchanged.
  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 404 The resource does not exist or belongs to another tenant.

↑ Back to list

POST /v1/security-bans

Ban a client on a site of the session tenant

operationId
createSecurityBan
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:security_policies.manage

Parameters

createSecurityBan Parameters
NameInTypeRequiredDescription
Idempotency-KeyheaderstringYes—

Request body

application/json · Required:Yes

createSecurityBan Request body
NameTypeRequiredDescription
site_idstring(uuid)Yes—
client_ipstringYesAn IPv4 / IPv6 address, or a network IPv4 /8../31, IPv6 /32../127 (nodes with BAN_CIDR).
duration_secondsintegerYes—
reasonstringNo—

Responses

createSecurityBan Responses
StatusDescription
201The ban.

Fields:id: string(uuid) tenant_scope_id: string(uuid) site_id: string(uuid) site_domain: string client_ip: string source: string: waf / cc / manual / autodefense / market rule_id: string reason: string banned_at: string(date-time) banned_until: string(date-time) created_by: string(uuid) | null(uuid) released_at: string(date-time) | null(date-time) released_by: string(uuid) | null(uuid) state: string: active / released / expired market: null | MarketOrigin delivery: null | Delivery

400Error.
401Error.
403Error.
404Error.
409Error.
422Error.

What to do on failure

  • 400 Fix the parameters or body per the field list; do not retry unchanged.
  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 404 The resource does not exist or belongs to another tenant.
  • 409 Read the current state first; a retry of the same operation keeps the original Idempotency-Key and body.

↑ Back to list

POST /v1/security-bans/{entry_id}/release

Release a ban of the session tenant

operationId
releaseSecurityBan
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:security_policies.manage

Parameters

releaseSecurityBan Parameters
NameInTypeRequiredDescription
entry_idpathstring(uuid)Yes—

Responses

releaseSecurityBan Responses
StatusDescription
200The ban.

Fields:id: string(uuid) tenant_scope_id: string(uuid) site_id: string(uuid) site_domain: string client_ip: string source: string: waf / cc / manual / autodefense / market rule_id: string reason: string banned_at: string(date-time) banned_until: string(date-time) created_by: string(uuid) | null(uuid) released_at: string(date-time) | null(date-time) released_by: string(uuid) | null(uuid) state: string: active / released / expired market: null | MarketOrigin delivery: null | Delivery

400Error.
401Error.
403Error.
404Error.
409Error.

What to do on failure

  • 400 Fix the parameters or body per the field list; do not retry unchanged.
  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 404 The resource does not exist or belongs to another tenant.
  • 409 Read the current state first; a retry of the same operation keeps the original Idempotency-Key and body.

↑ Back to list