Akamai API Security WAF rules: Tuning recommendations API
Manage the tuning recommendations for your WAF attack groups.
Manage the tuning recommendations for your WAF attack groups.
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-tuning-recommendations-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: Tuning recommendations API'
version: v1
servers:
- url: https://{hostname}/appsec/v1
tags:
- description: Manage the tuning recommendations for your WAF attack groups.
name: 'WAF rules: Tuning recommendations'
paths:
/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/recommendations:
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-recommendations.yaml
path-info: /configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/recommendations
post:
description: Accept, decline, or reset the recommended exception. Accepting a tuning recommendation creates or updates the exception for the attack group. Use `reset` to restore a declined recommendation to a neutral state so you can accept it or decline it again later. _Products:_ Adaptive Security Engine.
externalDocs:
description: See documentation for this operation in Akamai's Application Security API
url: https://techdocs.akamai.com/application-security/reference/post-recommendations
operationId: post-recommendations
parameters:
- description: __Enum__ If `ACTIVE`, includes only active recommendations, the default. If `EVALUATION`, includes only evaluation recommendations. If `ALL`, includes both active and evaluation recommendations.
example: '{{type}}'
in: query
name: type
schema:
default: ACTIVE
enum:
- ACTIVE
- EVALUATION
- ALL
example: ACTIVE
type: string
x-akamai:
file-path: parameters/type-query.yaml
- 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:
action: ACCEPT
selectorId: 84220
schema:
additionalProperties: false
description: The POST Request JSON for accepting, declining or resetting a selector.
properties:
action:
description: How you want to respond to the exception recommendation. Use `ACCEPT` to add the recommendation to your policy, rule, or attack group. Use `DECLINE` to reject the recommendation, or `RESET` to undo a previous `DECLINE` action.
enum:
- ACCEPT
- DECLINE
- RESET
example: '{{action}}'
type: string
selectorId:
description: The unique identifier for the selector referenced in the recommendation.
example: '{{selectorId}}'
type: integer
required:
- action
- selectorId
type: object
x-akamai:
file-path: schemas/selector.yaml
required: true
responses:
'201':
content: {}
description: Successfully accepted, declined, or reset a recommendation selector.
'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
'403':
content:
application/problem+json:
example:
detail: You do not have the necessary access to perform this operation or the requested resource cannot be modified
instance: https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749
status: 403
title: Forbidden
type: https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED
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: '[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don''t have permission to write to this resource.'
x-akamai:
file-path: errors/403-client-write-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 Respond to Exception Recommendations
tags:
- 'WAF rules: Tuning recommendations'
get:
description: Lists available tuning recommendations for a policy. Our system can identify patterns of false positives, and suggests exceptions for you to include in your policy. _Products:_ Adaptive Security Engine.
externalDocs:
description: See documentation for this operation in Akamai's Application Security API
url: https://techdocs.akamai.com/application-security/reference/get-recommendations
operationId: get-recommendations
parameters:
- description: __Enum__ If `ACTIVE`, includes only active recommendations, the default. If `EVALUATION`, includes only evaluation recommendations. If `ALL`, includes both active and evaluation recommendations.
example: '{{type}}'
in: query
name: type
schema:
default: ACTIVE
enum:
- ACTIVE
- EVALUATION
- ALL
example: ACTIVE
type: string
x-akamai:
file-path: parameters/type-query.yaml
- 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:
attackGroupRecommendations:
- group: CMD
recommendations:
- description: This selector triggered on 3458 unique IPs over a period of 7 hours.
exceptions:
- selector:
enhanced: false
names:
- WWW-Exc_Header
- WWW-Auth
numberOfExceptions: 2
selector: REQUEST_HEADERS
type: AAG_SPECIFIC
wildcard: false
selectorId: 77
ruleSetType: ACTIVE
- group: SQL
recommendations:
- description: Recommendation for SQL
exceptions:
- selector:
enhanced: false
names:
- test
numberOfExceptions: 1
selector: ARGS_NAMES
type: AAG_SPECIFIC
wildcard: true
selectorId: 76
ruleSetType: EVALUATION
evaluationPeriodEnd: '2021-05-08T03:10:43Z'
evaluationPeriodStart: '2021-04-08T03:10:43Z'
ruleRecommendations:
- declinedRecommendations:
- description: 100001 recommendation
exceptions:
- selector:
names:
- XML-PAIR-02-TEST
selector: XML_PAIRS
type: AAG_SPECIFIC
wildcard: true
selectorId: 19557
ruleSetType: ACTIVE
id: 100001
recommendations:
- description: Description for SQL
evidences:
hostnames:
- www.yamanohi.jp
exceptions:
- selector:
names:
- JSON_PAIR_001
selector: JSON_PAIRS
type: AAG_SPECIFIC
wildcard: true
selectorId: 84220
ruleSetType: EVALUATION
schema:
additionalProperties: false
description: Encapsulates data for Adaptive Security Engine exception recommendations.
properties:
attackGroupRecommendations:
description: The Adaptive Security Engine recommended exceptions for your attack groups.
items:
additionalProperties: false
properties:
declinedRecommendations:
description: Exception recommendations you previously chose to ignore. Run [Respond to exception recommendations](https://techdocs.akamai.com/application-security/reference/post-recommendations) with a value of `RESET` if you want to undo your previous setting.
items:
additionalProperties: false
properties:
description:
description: Describes why the proposed tuning exception is recommended.
type: string
evidences:
description: Provides additional information about the recommendation.
type: string
exceptions:
description: Describes the exception members that allow you to conditionally exclude requests from inspection.
items:
additionalProperties: false
description: Conditionally exclude requests from inspection.
properties:
recommendationId:
description: The unique identifier for the recommendation.
type: integer
selector:
additionalProperties: false
description: Identifies the part of the request to exclude.
properties:
enhanced:
description: Whether the exception recommendations are for enhanced selectors.
type: boolean
numberOfExceptions:
description: The number of exceptions Adaptive Security Engine recommends.
type: integer
selector:
description: Identifies the part of the request to exclude. See [Selector type values](https://techdocs.akamai.com/application-security/reference/exception-selector-values) for available values.
enum:
- REQUEST_HEADERS
- ARGS
- JSON_PAIRS
- XML_PAIRS
- REQUEST_COOKIES
- REQUEST_HEADERS_NAMES
- REQUEST_COOKIES_NAMES
- ARGS_NAMES
- JSON_NAMES
- REQUEST_PROTOCOL
- REQUEST_URI
- REQUEST_METHOD
- REQUEST_FILENAME
- QUERY_STRING
- REQUEST_PATH_SEGMENT
- FILES_NAMES
- REQUEST_BODY
- REQBODY_PROCESSOR_ERROR
- VALUES
type: string
type:
description: Identifies the part of the request to exclude. See [Selector type values](https://techdocs.akamai.com/application-security/reference/recommendation-selector-values) for available values.
enum:
- GENERIC
- SPECIFIC
- WILDCARD
- EXACT
- AAG_SPECIFIC
- ENHANCED_GENERIC
- ENHANCED_SPECIFIC
- ENHANCED_EXACT
- ENHANCED_VALUES
type: string
required:
- enhanced
type: object
selectorId:
description: The unique identifier for the selector referenced in the recommendation.
type: integer
type: object
type: array
ruleSetType:
description: Identifies the recommendation type. This value populates only when the query type is `ALL`. Use `ACTIVE` for active rule sets. Use `EVALUATION` for evaluation rule sets.
enum:
- ACTIVE
- EVALUATION
type: string
type: object
type: array
group:
description: The unique identifier for an attack group.
type: string
recommendations:
description: Describes the recommended exception values.
items:
additionalProperties: false
properties:
description:
description: Describes why the proposed tuning exception is recommended.
type: string
evidences:
description: Provides additional information about the recommendation.
type: string
exceptions:
description: Conditionally exclude requests from inspection.
items:
additionalProperties: false
properties:
recommendationId:
description: The unique identifier for the recommendation.
type: integer
selector:
additionalProperties: false
description: Identifies the part of the request to exclude.
properties:
enhanced:
description: Whether the exception recommendations are for enhanced selectors.
type: boolean
numberOfExceptions:
description: The number of exceptions Adaptive Security Engine recommends.
type: integer
selector:
description: Identifies the part of the request to exclude. See [Selector type values](https://techdocs.akamai.com/application-security/reference/exception-selector-values) for available values.
enum:
- REQUEST_HEADERS
- ARGS
- JSON_PAIRS
- XML_PAIRS
- REQUEST_COOKIES
- REQUEST_HEADERS_NAMES
- REQUEST_COOKIES_NAMES
- ARGS_NAMES
- JSON_NAMES
- REQUEST_PROTOCOL
- REQUEST_URI
- REQUEST_METHOD
- REQUEST_FILENAME
- QUERY_STRING
- REQUEST_PATH_SEGMENT
- FILES_NAMES
- REQUEST_BODY
- REQBODY_PROCESSOR_ERROR
- VALUES
type: string
type:
description: Identifies the part of the request to exclude. See [Selector type values](https://techdocs.akamai.com/application-security/reference/recommendation-selector-values) for available values.
enum:
- GENERIC
- SPECIFIC
- WILDCARD
- EXACT
- AAG_SPECIFIC
- ENHANCED_GENERIC
- ENHANCED_SPECIFIC
- ENHANCED_EXACT
- ENHANCED_VALUES
type: string
required:
- enhanced
type: object
selectorId:
description: The unique identifier for the selector referenced in the recommendation.
type: integer
type: object
type: array
ruleSetType:
description: Identifies the recommendation type. This value populates only when the query type is `ALL`. Use `ACTIVE` for active rule sets. Use `EVALUATION` for evaluation rule sets.
enum:
- ACTIVE
- EVALUATION
type: string
type: object
type: array
type: object
type: array
evaluationPeriodEnd:
description: The ISO 8601 date your evaluation period ends.
type: string
evaluationPeriodStart:
description: The ISO 8601 date your evaluation period starts.
type: string
ruleRecommendations:
description: Lists exception recommendations for rules.
items:
additionalProperties: false
description: The exceptions for your rules recommended by Adaptive Security Engine.
properties:
declinedRecommendations:
description: Exception recommendations you previously chose to ignore. Run [Respond to exception recommendations](https://techdocs.akamai.com/application-security/reference/post-recommendations) operation with a value of `RESET` if you want to undo your previous setting.
items:
additionalProperties: false
properties:
description:
description: Describes why the proposed tuning exception is recommended.
type: string
evidences:
description: Provides additional information about the recommendation.
type: string
exceptions:
description: Conditionally exclude requests from inspection.
items:
additionalProperties: false
description: Conditionally exclude requests from inspection.
properties:
recommendationId:
description: The unique identifier for the recommendation.
type: integer
selector:
additionalProperties: false
description: Identifies the part of the request to exclude.
properties:
enhanced:
description: Whether the exception recommendations are for enhanced selectors.
type: boolean
# --- truncated at 32 KB (86 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/akamai-api-security/refs/heads/main/openapi/akamai-api-security-waf-rules-tuning-recommendations-api-openapi.yml