Akamai API Security Shared resources: Reputation profiles API
Manage your reputation profiles. Reputation protections identify potentially malicious IP addresses, scoring them based on prior interactions with other Akamai customers.
Manage your reputation profiles. Reputation protections identify potentially malicious IP addresses, scoring them based on prior interactions with other Akamai customers.
openapi: 3.0.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 Shared resources: Reputation profiles API'
version: v1
servers:
- url: https://{hostname}/appsec/v1
tags:
- description: 'Manage your reputation profiles. Reputation protections
identify potentially malicious IP addresses, scoring them based
on prior interactions with other Akamai customers.'
name: 'Shared resources: Reputation profiles'
paths:
/configs/{configId}/versions/{versionNumber}/reputation-profiles:
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
x-akamai:
file-path: paths/config-reputation-profiles.yaml
path-info: /configs/{configId}/versions/{versionNumber}/reputation-profiles
post:
description: Create a new reputation profile for a specific configuration version. _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.
externalDocs:
description: See documentation for this operation in Akamai's Application Security API
url: https://techdocs.akamai.com/application-security/reference/post-reputation-profiles
operationId: post-reputation-profiles
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:
condition:
atomicConditions:
- className: AsNumberCondition
positiveMatch: true
value:
- '1'
- className: RequestCookieCondition
name: x-header
nameCase: true
nameWildcard: true
positiveMatch: true
valueWildcard: true
- className: HostCondition
host:
- '*.com'
positiveMatch: true
valueWildcard: true
positiveMatch: true
context: WEBATCK
description: Reputation profile description
name: Web Attack Rep Profile
sharedIpHandling: NON_SHARED
threshold: 5
schema:
additionalProperties: false
description: Contains details about a reputation profile.
properties:
condition:
additionalProperties: false
description: Contains information about the criteria that trigger the reputation profile.
properties:
atomicConditions:
description: The conditions that trigger the reputation profile.
items:
additionalProperties: false
properties:
positiveMatch:
description: Whether the condition should trigger on a match (`true`) or a lack of match (`false`).
type: boolean
type:
description: The condition type. For available values, see [Condition Values](https://techdocs.akamai.com/application-security/reference/condition-values).
enum:
- NetworkListCondition
- AsNumberCondition
- IpAddressCondition
- RequestCookieCondition
- RequestHeaderCondition
- HostCondition
- UrlPatternCondition
type: string
value:
description: The list of values that trigger the condition.
items:
type: string
minItems: 1
type: array
uniqueItems: true
valueCase:
default: false
description: Whether to consider the character case when comparing the value string with the request value. The default is `false`, meaning that a value such as `url` would match a string `UrL` in the request.
type: boolean
valueWildcard:
default: true
description: Whether to treat the asterisk (`*`) and question mark (`?`) as wildcards when comparing the value string with the request value. Note that setting this to `false` isn't supported by the host condition, and means that the value string must match exactly.
type: boolean
type: object
type: array
positiveMatch:
description: Whether the condition should trigger on a match (`true`) or a lack of match (`false`).
type: boolean
type: object
context:
description: Identifies the reputation category. Web scrapers (`WEBSCRP`) crawl sites and collect data like hotel rates, product prices, store locations, and more. DoS attackers (`DOSATCK`) are web clients or botnets that use automated tools to launch volumetric Denial of Service (DoS) attacks. Web attackers (`WEBATCK`) target websites and web apps with techniques like SQL injection, remote file inclusion, or cross-site scripting. Scanning tools (`SCANTL`) probe web apps for vulnerabilities during an attack's reconnaissance phase.
enum:
- WEBSCRP
- DOSATCK
- WEBATCK
- SCANTL
example: '{{context}}'
type: string
contextReadable:
description: __Read-only__ Describes the reputation category.
example: '{{contextReadable}}'
readOnly: true
type: string
description:
description: Describes the reputation profile.
example: '{{description}}'
type: string
enabled:
description: __Read-only__ Whether you enabled the reputation profile.
example: '{{enabled}}'
readOnly: true
type: boolean
id:
description: __Read-only__ Uniquely identifies the reputation profile.
example: '{{id}}'
readOnly: true
type: integer
name:
description: The name you assigned to the reputation profile.
example: '{{name}}'
type: string
sharedIpHandling:
description: Identifies the IP sharing. Either `NON_SHARED`, `SHARED_ONLY`, `BOTH`.
enum:
- NON_SHARED
- SHARED_ONLY
- BOTH
example: '{{sharedIpHandling}}'
type: string
threshold:
description: The threshold when the profile to triggers.
example: '{{threshold}}'
type: number
required:
- name
- context
- threshold
- sharedIpHandling
type: object
x-akamai:
file-path: schemas/reputation-profile.yaml
required: true
responses:
'201':
content:
application/json:
example:
condition:
atomicConditions:
- checkIps: connecting
className: AsNumberCondition
index: 1
positiveMatch: true
value:
- '1'
- className: RequestCookieCondition
index: 2
name: x-header
nameCase: true
nameWildcard: true
positiveMatch: true
valueCase: false
valueWildcard: true
- className: HostCondition
host:
- '*.com'
index: 3
positiveMatch: true
valueWildcard: true
positiveMatch: true
context: WEBATCK
description: Reputation profile description
enabled: false
id: 2509987
name: Web Attack Rep Profile
sharedIpHandling: NON_SHARED
threshold: 5
schema:
additionalProperties: false
description: Contains details about a reputation profile.
properties:
condition:
additionalProperties: false
description: Contains information about the criteria that trigger the reputation profile.
properties:
atomicConditions:
description: The conditions that trigger the reputation profile.
items:
additionalProperties: false
properties:
positiveMatch:
description: Whether the condition should trigger on a match (`true`) or a lack of match (`false`).
type: boolean
type:
description: The condition type. For available values, see [Condition Values](https://techdocs.akamai.com/application-security/reference/condition-values).
enum:
- NetworkListCondition
- AsNumberCondition
- IpAddressCondition
- RequestCookieCondition
- RequestHeaderCondition
- HostCondition
- UrlPatternCondition
type: string
value:
description: The list of values that trigger the condition.
items:
type: string
minItems: 1
type: array
uniqueItems: true
valueCase:
default: false
description: Whether to consider the character case when comparing the value string with the request value. The default is `false`, meaning that a value such as `url` would match a string `UrL` in the request.
type: boolean
valueWildcard:
default: true
description: Whether to treat the asterisk (`*`) and question mark (`?`) as wildcards when comparing the value string with the request value. Note that setting this to `false` isn't supported by the host condition, and means that the value string must match exactly.
type: boolean
type: object
type: array
positiveMatch:
description: Whether the condition should trigger on a match (`true`) or a lack of match (`false`).
type: boolean
type: object
context:
description: Identifies the reputation category. Web scrapers (`WEBSCRP`) crawl sites and collect data like hotel rates, product prices, store locations, and more. DoS attackers (`DOSATCK`) are web clients or botnets that use automated tools to launch volumetric Denial of Service (DoS) attacks. Web attackers (`WEBATCK`) target websites and web apps with techniques like SQL injection, remote file inclusion, or cross-site scripting. Scanning tools (`SCANTL`) probe web apps for vulnerabilities during an attack's reconnaissance phase.
enum:
- WEBSCRP
- DOSATCK
- WEBATCK
- SCANTL
type: string
contextReadable:
description: __Read-only__ Describes the reputation category.
readOnly: true
type: string
description:
description: Describes the reputation profile.
type: string
enabled:
description: __Read-only__ Whether you enabled the reputation profile.
readOnly: true
type: boolean
id:
description: __Read-only__ Uniquely identifies the reputation profile.
readOnly: true
type: integer
name:
description: The name you assigned to the reputation profile.
type: string
sharedIpHandling:
description: Identifies the IP sharing. Either `NON_SHARED`, `SHARED_ONLY`, `BOTH`.
enum:
- NON_SHARED
- SHARED_ONLY
- BOTH
type: string
threshold:
description: The threshold when the profile to triggers.
type: number
required:
- name
- context
- threshold
- sharedIpHandling
type: object
x-akamai:
file-path: schemas/reputation-profile.yaml
description: Successfully created a reputation profile.
'400':
content:
application/problem+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: '[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.'
x-akamai:
file-path: errors/400.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 access to reputation profiles in this security configuration.'
x-akamai:
file-path: errors/403.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). Security configuration version wasn''t found.'
x-akamai:
file-path: errors/404.yaml
summary: Akamai API Security Create a Reputation Profile
tags:
- 'Shared resources: Reputation profiles'
get:
description: Returns reputation profiles for a specific security configuration version. To use reputation profiles, you need to add [Client Reputation](https://techdocs.akamai.com/app-api-protector/docs/control-client-reputation) to Kona Site Defender on your contract. _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.
externalDocs:
description: See documentation for this operation in Akamai's Application Security API
url: https://techdocs.akamai.com/application-security/reference/get-reputation-profiles
operationId: get-reputation-profiles
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:
reputationProfiles:
- context: SCANTL
contextReadable: Scanning Tools
enabled: false
id: 146254
name: Scanning Tools (High Threat)
sharedIpHandling: NON_SHARED
threshold: 9
- context: WEBATCK
contextReadable: Web Attackers
enabled: false
id: 146258
name: Web Attackers (Low Threat)
sharedIpHandling: SHARED_ONLY
threshold: 5
- condition:
atomicConditions:
- className: RequestCookieCondition
name: cookie
nameWildcard: true
positiveMatch: true
value:
- cookie
valueWildcard: true
description: Rep condition description
id: '2156'
name: Rep condition
positiveMatch: true
context: WEBATCK
contextReadable: Web Attackers
description: this is a customized reputation profile
enabled: true
id: 146259
name: Custom Reputation Profile
sharedIpHandling: SHARED_ONLY
threshold: 3
schema:
additionalProperties: false
description: Contains details about reputation profiles.
properties:
reputationProfiles:
description: A list of reputation profiles in this configuration version.
items:
additionalProperties: false
description: Contains details about a reputation profile.
properties:
condition:
additionalProperties: false
description: Contains information about the criteria that trigger the reputation profile.
properties:
atomicConditions:
description: The conditions that trigger the reputation profile.
items:
additionalProperties: false
properties:
positiveMatch:
description: Whether the condition should trigger on a match (`true`) or a lack of match (`false`).
type: boolean
type:
description: The condition type. For available values, see [Condition Values](https://techdocs.akamai.com/application-security/reference/condition-values).
enum:
- NetworkListCondition
- AsNumberCondition
- IpAddressCondition
- RequestCookieCondition
- RequestHeaderCondition
- HostCondition
- UrlPatternCondition
type: string
value:
description: The list of values that trigger the condition.
items:
type: string
minItems: 1
type: array
uniqueItems: true
valueCase:
default: false
description: Whether to consider the character case when comparing the value string with the request value. The default is `false`, meaning that a value such as `url` would match a string `UrL` in the request.
type: boolean
valueWildcard:
default: true
description: Whether to treat the asterisk (`*`) and question mark (`?`) as wildcards when comparing the value string with the request value. Note that setting this to `false` isn't supported by the host condition, and means that the value string must match exactly.
type: boolean
type: object
type: array
positiveMatch:
description: Whether the condition should trigger on a match (`true`) or a lack of match (`false`).
type: boolean
type: object
context:
description: Identifies the reputation category. Web scrapers (`WEBSCRP`) crawl sites and collect data like hotel rates, product prices, store locations, and more. DoS attackers (`DOSATCK`) are web clients or botnets that use automated tools to launch volumetric Denial of Service (DoS) attacks. Web attackers (`WEBATCK`) target websites and web apps with techniques like SQL injection, remote file inclusion, or cross-site scripting. Scanning tools (`SCANTL`) probe web apps for vulnerabilities during an attack's reconnaissance phase.
enum:
- WEBSCRP
- DOSATCK
- WEBATCK
- SCANTL
type: string
contextReadable:
description: __Read-only__ Describes the reputation category.
readOnly: true
type: string
description:
description: Describes the reputation profile.
type: string
enabled:
description: __Read-only__ Whether you enabled the reputation profile.
readOnly: true
type: boolean
id:
description: __Read-only__ Uniquely identifies the reputation profile.
readOnly: true
type: integer
name:
description: The name you assigned to the reputation profile.
type: string
sharedIpHandling:
description: Identifies the IP sharing. Either `NON_SHARED`, `SHARED_ONLY`, `BOTH`.
enum:
- NON_SHARED
- SHARED_ONLY
- BOTH
type: string
threshold:
description: The threshold when the profile to triggers.
type: number
required:
- name
- context
- threshold
- sharedIpHandling
type: object
x-akamai:
file-path: schemas/reputation-profile.yaml
type: array
type: object
x-akamai:
file-path: schemas/reputation-profiles.yaml
description: Successfully returned reputation profiles.
'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 p
# --- truncated at 32 KB (76 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/akamai-api-security/refs/heads/main/openapi/akamai-api-security-shared-resources-reputation-profiles-api-openapi.yml