ADC NITRO APIs

botprofile

Configuration for Bot profile resource.

Properties

(click to see Operations )

Name Data Type Permissions Description
name <String> Read-write Name for the profile. Must begin with a letter, number, or the underscore character (_), and must contain only letters, numbers, and the hyphen (-), period (.), pound (#), space ( ), at (@), equals (=), colon (:), and underscore (_) characters. Cannot be changed after the profile is added.



The following requirement applies only to the Citrix ADC CLI:

If the name includes one or more spaces, enclose the name in double or single quotation marks (for example, "my profile" or 'my profile').

Minimum length = 1

Maximum length = 31
signature <String> Read-write Name of object containing bot static signature details.

Minimum length = 1
errorurl <String> Read-write URL that Bot protection uses as the Error URL.

Minimum length = 1
trapurl <String> Read-write URL that Bot protection uses as the Trap URL.

Minimum length = 1

Maximum length = 127
comment <String> Read-write Any comments about the purpose of profile, or other useful information about the profile.

Minimum length = 1
bot_enable_white_list <String> Read-write Enable white-list bot detection.

Default value: OFF

Possible values = ON, OFF
bot_enable_black_list <String> Read-write Enable black-list bot detection.

Default value: OFF

Possible values = ON, OFF
bot_enable_rate_limit <String> Read-write Enable rate-limit bot detection.

Default value: OFF

Possible values = ON, OFF
devicefingerprint <String> Read-write Enable device-fingerprint bot detection.

Default value: OFF

Possible values = ON, OFF
devicefingerprintaction <String[]> Read-write Action to be taken for device-fingerprint based bot detection.

Default value: NONE

Possible values = NONE, LOG, DROP, REDIRECT, RESET, MITIGATION
bot_enable_ip_reputation <String> Read-write Enable IP-reputation bot detection.

Default value: OFF

Possible values = ON, OFF
trap <String> Read-write Enable trap bot detection.

Default value: OFF

Possible values = ON, OFF
trapaction <String[]> Read-write Action to be taken for bot trap based bot detection.

Default value: NONE

Possible values = NONE, LOG, DROP, REDIRECT, RESET
signaturenouseragentheaderaction <String[]> Read-write Actions to be taken if no User-Agent header in the request (Applicable if Signature check is enabled).

Default value: DROP

Possible values = NONE, LOG, DROP, REDIRECT, RESET
signaturemultipleuseragentheaderaction <String[]> Read-write Actions to be taken if multiple User-Agent headers are seen in a request (Applicable if Signature check is enabled). Log action should be combined with other actions.

Default value: CHECKLAST

Possible values = CHECKLAST, LOG, DROP, REDIRECT, RESET
bot_enable_tps <String> Read-write Enable TPS.

Default value: OFF

Possible values = ON, OFF
devicefingerprintmobile <String[]> Read-write Enabling bot device fingerprint protection for mobile clients.

Default value: NONE

Possible values = NONE, Android, iOS
headlessbrowserdetection <String> Read-write Enable Headless Browser detection.

Default value: OFF

Possible values = ON, OFF
clientipexpression <String> Read-write Expression to get the client IP.
kmjavascriptname <String> Read-write Name of the JavaScript file that the Bot Management feature will insert in the response for keyboard-mouse based detection.

Must begin with a letter, number, or the underscore character (_), and must contain only letters, numbers, and the hyphen (-), period (.) hash (#), space ( ), at (@), equals (=), colon (:), and underscore characters.



The following requirement applies only to the Citrix ADC CLI:

If the name includes one or more spaces, enclose the name in double or single quotation marks (for example, "my javascript file name" or 'my javascript file name').
kmdetection <String> Read-write Enable keyboard-mouse based bot detection.

Default value: OFF

Possible values = ON, OFF
kmeventspostbodylimit <Double> Read-write Size of the KM data send by the browser, needs to be processed on ADC.

Minimum value = 1

Maximum value = 204800
verboseloglevel <String> Read-write Bot verbose Logging. Based on the log level, ADC will log additional information whenever client is detected as a bot.

Default value: NONE

Possible values = NONE, HTTP_FULL_HEADER
spoofedreqaction <String[]> Read-write Actions to be taken on a spoofed request (A request spoofing good bot user agent string).

Default value: BOT_ACTION_LOG_DROP

Possible values = NONE, LOG, DROP, REDIRECT, RESET
dfprequestlimit <Double> Read-write Number of requests to allow without bot session cookie if device fingerprint is enabled.

Minimum value = 1
sessioncookiename <String> Read-write Name of the SessionCookie that the Bot Management feature uses for tracking.

Must begin with a letter or number, and can consist of from 1 to 31 letters, numbers, and the hyphen (-) and underscore (_) symbols.



The following requirement applies only to the Citrix ADC CLI:

If the name includes one or more spaces, enclose the name in double or single quotation marks (for example, "my cookie name" or 'my cookie name').

Minimum length = 1
sessiontimeout <Double> Read-write Timeout, in seconds, after which a user session is terminated.

Minimum value = 1

Maximum value = 65535
builtin <String[]> Read-only Flag to determine if bot profille is built-in or not.

Possible values = MODIFIABLE, DELETABLE, IMMUTABLE, PARTITION_ALL
feature <String> Read-only The feature to be checked while applying this config.
__count <Double> Read-only count parameter

Operations

(click to see Properties )

  • ADD
  • UPDATE
  • UNSET
  • DELETE
  • GET (ALL)
  • GET
  • COUNT

Some options that you can use for each operations:

  • Getting warnings in response: NITRO allows you to get warnings in an operation by specifying the 'warning' query parameter as 'yes'. For example, to get warnings while connecting to the NetScaler appliance, the URL is as follows:

    http:// <netscaler-ip-address> /nitro/v1/config/login?warning=yes

    If any, the warnings are displayed in the response payload with the HTTP code '209 X-NITRO-WARNING'.

  • Authenticated access for individual NITRO operations: NITRO allows you to logon to the NetScaler appliance to perform individual operations. You can use this option instead of creating a NITRO session (using the login object) and then using that session to perform all operations,

    To do this, you must specify the username and password in the request header of the NITRO request as follows:

    X-NITRO-USER: <username>

    X-NITRO-PASS: <password>

    Note: In such cases, make sure that the request header DOES not include the following:

    Cookie:NITRO_AUTH_TOKEN= <tokenvalue>

*Note: * Mandatory parameters are marked in red and placeholder content is marked in green

add

URL: http:// <netscaler-ip-address> /nitro/v1/config/botprofile HTTP Method: POST

Request Headers:

Cookie:NITRO_AUTH_TOKEN= <tokenvalue>

Content-Type:application/json

Request Payload:

{"botprofile":{
<b>"name":<String_value>,
</b>"signature":<String_value>,
"errorurl":<String_value>,
"trapurl":<String_value>,
"comment":<String_value>,
"bot_enable_white_list":<String_value>,
"bot_enable_black_list":<String_value>,
"bot_enable_rate_limit":<String_value>,
"devicefingerprint":<String_value>,
"devicefingerprintaction":<String[]_value>,
"bot_enable_ip_reputation":<String_value>,
"trap":<String_value>,
"trapaction":<String[]_value>,
"signaturenouseragentheaderaction":<String[]_value>,
"signaturemultipleuseragentheaderaction":<String[]_value>,
"bot_enable_tps":<String_value>,
"devicefingerprintmobile":<String[]_value>,
"headlessbrowserdetection":<String_value>,
"clientipexpression":<String_value>,
"kmjavascriptname":<String_value>,
"kmdetection":<String_value>,
"kmeventspostbodylimit":<Double_value>,
"verboseloglevel":<String_value>,
"spoofedreqaction":<String[]_value>,
"dfprequestlimit":<Double_value>,
"sessioncookiename":<String_value>,
"sessiontimeout":<Double_value>
}}

<!--NeedCopy-->

Response: HTTP Status Code on Success: 201 Created

HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for NetScaler-specific errors). The response payload provides details of the error

update

URL: http:// <netscaler-ip-address> /nitro/v1/config/botprofile HTTP Method: PUT

Request Headers:

Cookie:NITRO_AUTH_TOKEN= <tokenvalue>

Content-Type:application/json

Request Payload:

{"botprofile":{
<b>"name":<String_value>,
</b>"signature":<String_value>,
"errorurl":<String_value>,
"trapurl":<String_value>,
"comment":<String_value>,
"bot_enable_white_list":<String_value>,
"bot_enable_black_list":<String_value>,
"bot_enable_rate_limit":<String_value>,
"devicefingerprint":<String_value>,
"devicefingerprintaction":<String[]_value>,
"bot_enable_ip_reputation":<String_value>,
"trap":<String_value>,
"signaturenouseragentheaderaction":<String[]_value>,
"signaturemultipleuseragentheaderaction":<String[]_value>,
"trapaction":<String[]_value>,
"bot_enable_tps":<String_value>,
"devicefingerprintmobile":<String[]_value>,
"headlessbrowserdetection":<String_value>,
"clientipexpression":<String_value>,
"kmjavascriptname":<String_value>,
"kmdetection":<String_value>,
"kmeventspostbodylimit":<Double_value>,
"verboseloglevel":<String_value>,
"spoofedreqaction":<String[]_value>,
"dfprequestlimit":<Double_value>,
"sessioncookiename":<String_value>,
"sessiontimeout":<Double_value>
}}

<!--NeedCopy-->

Response: HTTP Status Code on Success: 200 OK

HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for NetScaler-specific errors). The response payload provides details of the error

unset

URL: http:// <netscaler-ip-address> /nitro/v1/config/botprofile? action=unset HTTP Method: POST

Request Headers:

Cookie:NITRO_AUTH_TOKEN= <tokenvalue>

Content-Type:application/json

Request Payload:

{"botprofile":{
<b>"name":<String_value>,
</b>"signature":true,
"errorurl":true,
"trapurl":true,
"comment":true,
"bot_enable_white_list":true,
"bot_enable_black_list":true,
"bot_enable_rate_limit":true,
"devicefingerprint":true,
"devicefingerprintaction":true,
"bot_enable_ip_reputation":true,
"trap":true,
"signaturenouseragentheaderaction":true,
"signaturemultipleuseragentheaderaction":true,
"trapaction":true,
"bot_enable_tps":true,
"devicefingerprintmobile":true,
"headlessbrowserdetection":true,
"clientipexpression":true,
"kmjavascriptname":true,
"kmdetection":true,
"kmeventspostbodylimit":true,
"verboseloglevel":true,
"spoofedreqaction":true,
"dfprequestlimit":true,
"sessioncookiename":true,
"sessiontimeout":true
}}

<!--NeedCopy-->

Response: HTTP Status Code on Success: 200 OK

HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for NetScaler-specific errors). The response payload provides details of the error

delete

URL: http:// <netscaler-ip-address> /nitro/v1/config/botprofile/ name_value<String> HTTP Method: DELETE

Request Headers:

Cookie:NITRO_AUTH_TOKEN= <tokenvalue>

Response: HTTP Status Code on Success: 200 OK

HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for NetScaler-specific errors). The response payload provides details of the error

get (all)

URL: http:// <netscaler-ip-address> /nitro/v1/config/botprofile Query-parameters: attrs http:// <netscaler-ip-address> /nitro/v1/config/botprofile? attrs=property-name1,property-name2

Use this query parameter to specify the resource details that you want to retrieve.

filter http:// <netscaler-ip-address> /nitro/v1/config/botprofile? filter=property-name1:property-val1,property-name2:property-val2

Use this query-parameter to get the filtered set of botprofile resources configured on NetScaler.Filtering can be done on any of the properties of the resource.

view http:// <netscaler-ip-address> /nitro/v1/config/botprofile? view=summary

Use this query-parameter to get the summary output of botprofile resources configured on NetScaler.

Note: By default, the retrieved results are displayed in detail view (?view=detail).

pagination http:// <netscaler-ip-address> /nitro/v1/config/botprofile? pagesize=#no;pageno=#no

Use this query-parameter to get the botprofile resources in chunks.

HTTP Method: GET

Request Headers:

Cookie:NITRO_AUTH_TOKEN= <tokenvalue>

Accept:application/json

Response: HTTP Status Code on Success: 200 OK

HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for NetScaler-specific errors). The response payload provides details of the error

Response Header:

Content-Type:application/json

Response Payload:

{ "botprofile": [ {
"name":<String_value>,
"signature":<String_value>,
"errorurl":<String_value>,
"trapurl":<String_value>,
"comment":<String_value>,
"builtin":<String[]_value>,
"feature":<String_value>,
"bot_enable_white_list":<String_value>,
"bot_enable_black_list":<String_value>,
"bot_enable_rate_limit":<String_value>,
"devicefingerprint":<String_value>,
"devicefingerprintaction":<String[]_value>,
"bot_enable_ip_reputation":<String_value>,
"trap":<String_value>,
"signaturenouseragentheaderaction":<String[]_value>,
"spoofedreqaction":<String[]_value>,
"signaturemultipleuseragentheaderaction":<String[]_value>,
"trapaction":<String[]_value>,
"bot_enable_tps":<String_value>,
"devicefingerprintmobile":<String[]_value>,
"headlessbrowserdetection":<String_value>,
"clientipexpression":<String_value>,
"kmjavascriptname":<String_value>,
"kmdetection":<String_value>,
"kmeventspostbodylimit":<Double_value>,
"verboseloglevel":<String_value>,
"dfprequestlimit":<Double_value>,
"sessioncookiename":<String_value>,
"sessiontimeout":<Double_value>
}]}

<!--NeedCopy-->

get

URL: http:// <netscaler-ip-address> /nitro/v1/config/botprofile/ name_value<String> Query-parameters: attrs http:// <netscaler-ip-address> /nitro/v1/config/botprofile/ name_value<String> ? attrs=property-name1,property-name2

Use this query parameter to specify the resource details that you want to retrieve.

view http:// <netscaler-ip-address> /nitro/v1/config/botprofile/ name_value<String> ? view=summary

Use this query-parameter to get the summary output of botprofile resources configured on NetScaler.

Note: By default, the retrieved results are displayed in detail view (?view=detail).

HTTP Method: GET

Request Headers:

Cookie:NITRO_AUTH_TOKEN= <tokenvalue>

Accept:application/json

Response: HTTP Status Code on Success: 200 OK

HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for NetScaler-specific errors). The response payload provides details of the error

Response Header:

Content-Type:application/json

Response Payload:

{  "botprofile": [ {
"name":<String_value>,
"signature":<String_value>,
"errorurl":<String_value>,
"trapurl":<String_value>,
"comment":<String_value>,
"builtin":<String[]_value>,
"feature":<String_value>,
"bot_enable_white_list":<String_value>,
"bot_enable_black_list":<String_value>,
"bot_enable_rate_limit":<String_value>,
"devicefingerprint":<String_value>,
"devicefingerprintaction":<String[]_value>,
"bot_enable_ip_reputation":<String_value>,
"trap":<String_value>,
"signaturenouseragentheaderaction":<String[]_value>,
"spoofedreqaction":<String[]_value>,
"signaturemultipleuseragentheaderaction":<String[]_value>,
"trapaction":<String[]_value>,
"bot_enable_tps":<String_value>,
"devicefingerprintmobile":<String[]_value>,
"headlessbrowserdetection":<String_value>,
"clientipexpression":<String_value>,
"kmjavascriptname":<String_value>,
"kmdetection":<String_value>,
"kmeventspostbodylimit":<Double_value>,
"verboseloglevel":<String_value>,
"dfprequestlimit":<Double_value>,
"sessioncookiename":<String_value>,
"sessiontimeout":<Double_value>
}]}

<!--NeedCopy-->

count

URL: http:// <netscaler-ip-address> /nitro/v1/config/botprofile? count=yes HTTP Method: GET

Request Headers:

Cookie:NITRO_AUTH_TOKEN= <tokenvalue>

Accept:application/json

Response: HTTP Status Code on Success: 200 OK

HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for NetScaler-specific errors). The response payload provides details of the error

Response Header:

Content-Type:application/json

Response Payload:

{ "botprofile": [ { "__count": "#no"} ] }

<!--NeedCopy-->
botprofile