Akamai API Security WAF rules: Penalty box conditions API
Manage the conditions used with your Web Application Firewall's penalty box.
Manage the conditions used with your Web Application Firewall's penalty box.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/akamai-api-security-waf-rules-penalty-box-conditions-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
description: 'Manage your configurations for Kona Site Defender,
Web Application Protector, and Client Reputation.
'
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
title: 'Akamai: Application Security Activation history WAF rules: Penalty box conditions API'
version: v1
servers:
- url: https://{hostname}/appsec/v1
tags:
- description: 'Manage the conditions used with your Web Application Firewall''s
penalty box.'
name: 'WAF rules: Penalty box conditions'
paths:
/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/penalty-box/conditions:
parameters:
- description: A unique identifier for each configuration.
example: '{{configId}}'
in: path
name: configId
required: true
schema:
example: 77653
format: int64
type: integer
x-akamai:
file-path: parameters/config-id-path.yaml
- description: A unique identifier for each version of a configuration.
example: '{{versionNumber}}'
in: path
name: versionNumber
required: true
schema:
example: 25
type: integer
x-akamai:
file-path: parameters/version-number-path.yaml
- description: A unique identifier for a security policy.
example: '{{policyId}}'
in: path
name: policyId
required: true
schema:
example: boBF_19288
type: string
x-akamai:
file-path: parameters/policy-id-path.yaml
x-akamai:
file-path: paths/policy-penalty-box-conditions.yaml
path-info: /configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/penalty-box/conditions
get:
description: Returns the penalty box condition settings for a security policy. _Products:_ All.
externalDocs:
description: See documentation for this operation in Akamai's Application Security API
url: https://techdocs.akamai.com/application-security/reference/get-policy-penalty-box-conditions
operationId: get-policy-penalty-box-conditions
parameters:
- description: For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).
example: '{{accountSwitchKey}}'
in: query
name: accountSwitchKey
required: false
schema:
example: 1-5C0YLB:1-8BYUX
type: string
responses:
'200':
content:
application/json:
example:
conditionOperator: AND
conditions:
- filenames:
- hh
positiveMatch: true
type: filenameMatch
- clientLists:
- 88331_TESTGEO1
positiveMatch: true
type: clientListMatch
useHeaders: true
schema:
additionalProperties: false
description: Contains penalty box conditions.
properties:
conditionOperator:
description: 'The logic to apply to a set of penalty box conditions: either `OR` to satisfy any condition, or `AND` to satisfy all conditions.'
enum:
- AND
- OR
type: string
conditions:
description: The conditions list for the penalty box.
items:
additionalProperties: false
description: Describes what conditions can be set for an action to occur.
properties:
caseSensitive:
description: Whether to consider the case-sensitivity of the provided query parameter `value`. This only applies to the `uriQueryMatch` condition `type`.
type: boolean
clientLists:
description: The clientLists that trigger the condition. This only applies to the `clientListMatch` condition `type`.
items:
type: string
minItems: 0
type: array
extensions:
description: The file extensions that trigger the condition. This only applies to the `extensionMatch` condition `type`.
items:
type: string
type: array
filenames:
description: The filenames that trigger the condition. This only applies to the `filenameMatch` condition `type`.
items:
type: string
type: array
header:
description: The HTTP header that triggers the condition. This only applies to the `requestHeaderMatch` condition `type`.
type: string
hosts:
description: The hostnames that trigger the condition. This only applies to the `hostMatch` condition `type`.
items:
type: string
type: array
ips:
description: The IPs that trigger the condition. This only applies to the `ipMatch` condition `type`.
items:
type: string
type: array
methods:
description: The HTTP request methods that trigger the condition. The possible values are `GET`, `POST`, `HEAD`, `PUT`, `DELETE`, `OPTIONS`, `TRACE`, `CONNECT` and `PATCH`. This only applies to the `requestMethodMatch` condition `type`.
items:
enum:
- GET
- POST
- HEAD
- PUT
- DELETE
- OPTIONS
- TRACE
- CONNECT
- PATCH
type: string
type: array
name:
description: The query parameter name that triggers the condition. This only applies to the `uriQueryMatch` condition `type`.
type: string
nameCase:
description: Whether to consider the case-sensitivity of the provided query parameter `name`. This only applies to the `uriQueryMatch` condition `type`.
type: boolean
paths:
description: The paths that trigger the condition. This only applies to the `pathMatch` condition `type`.
items:
type: string
type: array
positiveMatch:
description: Whether the condition should trigger on a match (`true`) or a lack of match (`false`).
type: boolean
type:
description: The condition type to match on. See [Export condition type values](https://techdocs.akamai.com/application-security/reference/etval).
enum:
- hostMatch
- pathMatch
- filenameMatch
- extensionMatch
- uriQueryMatch
- ipMatch
- requestMethodMatch
- requestHeaderMatch
- clientListMatch
type: string
useHeaders:
description: Whether the condition should include `X-Forwarded-For` (XFF) header. This applies to the `ipMatch` and `clientListMatch` condition `type`.
type: boolean
value:
description: The query parameter value if the condition `type` is `uriQueryMatch` and header value if the condition `type` is `requestHeaderMatch`. This only applies when the condition `type` is `uriQueryMatch` or `requestHeaderMatch`.
type: string
valueCase:
description: Whether to consider the case-sensitivity of the provided header `value`. This only applies to the `requestHeaderMatch` condition `type`.
type: boolean
valueWildcard:
description: Whether the provided header `value` is a wildcard. This only applies to the `requestHeaderMatch` condition `type`.
type: boolean
wildcard:
description: Whether the provided query parameter `value` is a wildcard. This only applies to the `uriQueryMatch` condition `type`.
type: boolean
required:
- type
- positiveMatch
type: object
x-akamai:
file-path: schemas/condition.yaml
minItems: 0
type: array
required:
- conditionOperator
- conditions
type: object
x-akamai:
file-path: schemas/penalty-box-conditions.yaml
description: Successfully retrieved penalty box conditions for the security policy.
'400':
content:
application/json:
example:
detail: The request could not be understood by the server due to malformed syntax.
instance: https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749
status: 400
title: Bad Request
type: https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST
schema:
additionalProperties: true
description: Details the errors you can receive.
properties:
detail:
description: The detailed error message.
type: string
fieldErrors:
additionalProperties:
description: Fields that provide additional details about the problem.
type: string
description: Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.
type: object
instance:
description: The non-referenceable URI that indicates the error instance.
example: https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749
type: string
status:
description: The HTTP status code.
example: 404
type: integer
title:
description: The error title.
example: Not Found
type: string
type:
description: The URL for the error type.
example: https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND
type: string
required:
- title
- type
- detail
- instance
- status
type: object
x-akamai:
file-path: schemas/problem-details.yaml
description: '[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.'
x-akamai:
file-path: errors/400-client-read-errors.yaml
'404':
content:
application/problem+json:
example:
detail: The requested resource is not found
instance: https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749
status: 404
title: Not Found
type: https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND
schema:
additionalProperties: true
description: Details the errors you can receive.
properties:
detail:
description: The detailed error message.
type: string
fieldErrors:
additionalProperties:
description: Fields that provide additional details about the problem.
type: string
description: Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.
type: object
instance:
description: The non-referenceable URI that indicates the error instance.
example: https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749
type: string
status:
description: The HTTP status code.
example: 404
type: integer
title:
description: The error title.
example: Not Found
type: string
type:
description: The URL for the error type.
example: https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND
type: string
required:
- title
- type
- detail
- instance
- status
type: object
x-akamai:
file-path: schemas/problem-details.yaml
description: '[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn''t exist, doesn''t carry application layer controls, or no rule with this ID is available for use in this policy.'
x-akamai:
file-path: errors/404-client-read-errors.yaml
'500':
content:
application/problem+json:
example:
detail: Internal Server Error
instance: 12ab3c45-789d-01ef-2gh3-ijk4l56m78no
status: 500
title: Internal Server Error
type: internal_server_error
schema:
additionalProperties: true
description: Details the errors you can receive.
properties:
detail:
description: The detailed error message.
type: string
fieldErrors:
additionalProperties:
description: Fields that provide additional details about the problem.
type: string
description: Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.
type: object
instance:
description: The non-referenceable URI that indicates the error instance.
example: https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749
type: string
status:
description: The HTTP status code.
example: 404
type: integer
title:
description: The error title.
example: Not Found
type: string
type:
description: The URL for the error type.
example: https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND
type: string
required:
- title
- type
- detail
- instance
- status
type: object
x-akamai:
file-path: schemas/problem-details.yaml
description: '[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.'
x-akamai:
file-path: errors/500-server-errors.yaml
summary: Akamai API Security Get Penalty Box Condition
tags:
- 'WAF rules: Penalty box conditions'
put:
description: Modifies the penalty box conditions settings for a security policy.
externalDocs:
description: See documentation for this operation in Akamai's Application Security API
url: https://techdocs.akamai.com/application-security/reference/put-policy-penalty-box-conditions
operationId: put-policy-penalty-box-conditions
parameters:
- description: For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).
example: '{{accountSwitchKey}}'
in: query
name: accountSwitchKey
required: false
schema:
example: 1-5C0YLB:1-8BYUX
type: string
requestBody:
content:
application/json:
example:
conditionOperator: AND
conditions:
- filenames:
- hh
positiveMatch: true
type: filenameMatch
- clientLists:
- 88331_TESTGEO1
positiveMatch: true
type: clientListMatch
useHeaders: true
schema:
additionalProperties: false
description: Contains penalty box conditions.
properties:
conditionOperator:
description: 'The logic to apply to a set of penalty box conditions: either `OR` to satisfy any condition, or `AND` to satisfy all conditions.'
enum:
- AND
- OR
example: '{{conditionOperator}}'
type: string
conditions:
description: The conditions list for the penalty box.
items:
additionalProperties: false
description: Describes what conditions can be set for an action to occur.
properties:
caseSensitive:
description: Whether to consider the case-sensitivity of the provided query parameter `value`. This only applies to the `uriQueryMatch` condition `type`.
type: boolean
clientLists:
description: The clientLists that trigger the condition. This only applies to the `clientListMatch` condition `type`.
items:
type: string
minItems: 0
type: array
extensions:
description: The file extensions that trigger the condition. This only applies to the `extensionMatch` condition `type`.
items:
type: string
type: array
filenames:
description: The filenames that trigger the condition. This only applies to the `filenameMatch` condition `type`.
items:
type: string
type: array
header:
description: The HTTP header that triggers the condition. This only applies to the `requestHeaderMatch` condition `type`.
type: string
hosts:
description: The hostnames that trigger the condition. This only applies to the `hostMatch` condition `type`.
items:
type: string
type: array
ips:
description: The IPs that trigger the condition. This only applies to the `ipMatch` condition `type`.
items:
type: string
type: array
methods:
description: The HTTP request methods that trigger the condition. The possible values are `GET`, `POST`, `HEAD`, `PUT`, `DELETE`, `OPTIONS`, `TRACE`, `CONNECT` and `PATCH`. This only applies to the `requestMethodMatch` condition `type`.
items:
enum:
- GET
- POST
- HEAD
- PUT
- DELETE
- OPTIONS
- TRACE
- CONNECT
- PATCH
type: string
type: array
name:
description: The query parameter name that triggers the condition. This only applies to the `uriQueryMatch` condition `type`.
type: string
nameCase:
description: Whether to consider the case-sensitivity of the provided query parameter `name`. This only applies to the `uriQueryMatch` condition `type`.
type: boolean
paths:
description: The paths that trigger the condition. This only applies to the `pathMatch` condition `type`.
items:
type: string
type: array
positiveMatch:
description: Whether the condition should trigger on a match (`true`) or a lack of match (`false`).
type: boolean
type:
description: The condition type to match on. See [Export condition type values](https://techdocs.akamai.com/application-security/reference/etval).
enum:
- hostMatch
- pathMatch
- filenameMatch
- extensionMatch
- uriQueryMatch
- ipMatch
- requestMethodMatch
- requestHeaderMatch
- clientListMatch
type: string
useHeaders:
description: Whether the condition should include `X-Forwarded-For` (XFF) header. This applies to the `ipMatch` and `clientListMatch` condition `type`.
type: boolean
value:
description: The query parameter value if the condition `type` is `uriQueryMatch` and header value if the condition `type` is `requestHeaderMatch`. This only applies when the condition `type` is `uriQueryMatch` or `requestHeaderMatch`.
type: string
valueCase:
description: Whether to consider the case-sensitivity of the provided header `value`. This only applies to the `requestHeaderMatch` condition `type`.
type: boolean
valueWildcard:
description: Whether the provided header `value` is a wildcard. This only applies to the `requestHeaderMatch` condition `type`.
type: boolean
wildcard:
description: Whether the provided query parameter `value` is a wildcard. This only applies to the `uriQueryMatch` condition `type`.
type: boolean
required:
- type
- positiveMatch
type: object
x-akamai:
file-path: schemas/condition.yaml
minItems: 0
type: array
required:
- conditionOperator
- conditions
type: object
x-akamai:
file-path: schemas/penalty-box-conditions.yaml
required: true
responses:
'200':
content:
application/json:
example:
conditionOperator: AND
conditions:
- filenames:
- hh
positiveMatch: true
type: filenameMatch
- clientLists:
- 88331_TESTGEO1
positiveMatch: true
type: clientListMatch
useHeaders: true
schema:
additionalProperties: false
description: Contains penalty box conditions.
properties:
conditionOperator:
description: 'The logic to apply to a set of penalty box conditions: either `OR` to satisfy any condition, or `AND` to satisfy all conditions.'
enum:
- AND
- OR
type: string
conditions:
description: The conditions list for the penalty box.
items:
additionalProperties: false
description: Describes what conditions can be set for an action to occur.
properties:
caseSensitive:
description: Whether to consider the case-sensitivity of the provided query parameter `value`. This only applies to the `uriQueryMatch` condition `type`.
type: boolean
clientLists:
description: The clientLists that trigger the condition. This only applies to the `clientListMatch` condition `type`.
items:
type: string
minItems: 0
type: array
extensions:
description: The file extensions that trigger the condition. This only applies to the `extensionMatch` condition `type`.
items:
type: string
type: array
filenames:
description: The filenames that trigger the condition. This only applies to the `filenameMatch` condition `type`.
items:
type: string
type: array
header:
description: The HTTP header that triggers the condition. This only applies to the `requestHeaderMatch` condition `type`.
type: string
hosts:
description: The hostnames that trigger the condition. This only applies to the `hostMatch` condition `type`.
items:
type: string
type: array
ips:
description: The IPs that trigger the condition. This only applies to the `ipMatch` condition `type`.
items:
type: string
type: array
methods:
description: The HTTP request methods that trigger the condition. The possible values are `GET`, `POST`, `HEAD`, `PUT`, `DELETE`, `OPTIONS`, `TRACE`, `CONNECT` and `PATCH`. This only applies to the `requestMethodMatch` condition `type`.
items:
enum:
- GET
- POST
- HEAD
- PUT
- DELETE
- OPTIONS
- TRACE
- CONNECT
- PATCH
type: string
type: array
name:
description: The query parameter name that triggers the condition. This only applies to the `uriQueryMatch` condition `type`.
type: string
nameCase:
description: Whether to consider the case-sensitivity of the provided query parameter `name`. This only applies to the `uriQueryMatch` condition `type`.
type: boolean
paths:
description: The paths that trigger the condition. This only applies to the `pathMatch` condition `type`.
items:
type: string
type: array
positiveMatch:
description: Whether the condition should trigger on a match (`true`) or a lack of match (`false`).
type: boolean
type:
description: The condition type to match on. See [Export condition type values](https://techdocs.akamai.com/application-security/reference/etval).
enum:
- hostMatch
- pathMatch
- filenameMatch
- extensionMatch
- uriQueryMatch
- ipMatch
- requestMethodMatch
- requestHeaderMatch
- clientListMatch
type: string
useHeaders:
description: Whether the condition should include `X-Forwarded-For` (XFF) header. This applies to the `ipMatch` and `clientListMatch` condition `type`.
type: boolean
value:
description: The query parameter value if the condition `type` is `uriQueryMatch` and header value if the condition `type` is `requestHeaderMatch`. This only applies when the condition `type` is `uriQueryMatch` or `requestHeaderMatch`.
type: string
valueCase:
description: Whether to consider the case-sensitivity of the provided header `value`. This only applies to the `requestHeaderMatch` condition `type`.
type: boolean
valueWildcard:
description: Whether the provided header `value` is a wildcard. This only applies to the `requestHeaderMatch` condition `type`.
type: boolean
wildcard:
description: Whether the provided query parameter `value` is a wildcard. This only applies to the `uriQueryMatch` condition `type`.
type: boolean
required:
- type
- positiveMatch
type: object
x-akamai:
f
# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/akamai-api-security/refs/heads/main/openapi/akamai-api-security-waf-rules-penalty-box-conditions-api-openapi.yml