Skip to main content
POST
/
shield
/
waf
/
custom-rule
Create a new custom WAF rule
curl --request POST \
  --url https://api.bunny.net/shield/waf/custom-rule \
  --header 'Content-Type: application/json' \
  --data '
{
  "shieldZoneId": 123,
  "ruleName": "<string>",
  "ruleDescription": "<string>",
  "ruleConfiguration": {
    "variableTypes": {
      "REQUEST_URI": "<string>",
      "REQUEST_URI_RAW": "<string>",
      "ARGS": "<string>",
      "ARGS_COMBINED_SIZE": "<string>",
      "ARGS_GET": "<string>",
      "ARGS_GET_NAMES": "<string>",
      "ARGS_POST": "<string>",
      "ARGS_POST_NAMES": "<string>",
      "FILES_NAMES": "<string>",
      "GEO": "<string>",
      "REMOTE_ADDR": "<string>",
      "QUERY_STRING": "<string>",
      "REQUEST_BASENAME": "<string>",
      "REQUEST_BODY": "<string>",
      "REQUEST_COOKIES_NAMES": "<string>",
      "REQUEST_COOKIES": "<string>",
      "REQUEST_FILENAME": "<string>",
      "REQUEST_HEADERS_NAMES": "<string>",
      "REQUEST_HEADERS": "<string>",
      "REQUEST_LINE": "<string>",
      "REQUEST_METHOD": "<string>",
      "REQUEST_PROTOCOL": "<string>",
      "RESPONSE_BODY": "<string>",
      "RESPONSE_HEADERS": "<string>",
      "RESPONSE_STATUS": "<string>",
      "FINGERPRINT": "<string>",
      "VERIFIED_BOT_CATEGORY": "<string>"
    },
    "transformationTypes": [],
    "value": "<string>",
    "chainedRuleConditions": [
      {
        "variableTypes": {
          "REQUEST_URI": "<string>",
          "REQUEST_URI_RAW": "<string>",
          "ARGS": "<string>",
          "ARGS_COMBINED_SIZE": "<string>",
          "ARGS_GET": "<string>",
          "ARGS_GET_NAMES": "<string>",
          "ARGS_POST": "<string>",
          "ARGS_POST_NAMES": "<string>",
          "FILES_NAMES": "<string>",
          "GEO": "<string>",
          "REMOTE_ADDR": "<string>",
          "QUERY_STRING": "<string>",
          "REQUEST_BASENAME": "<string>",
          "REQUEST_BODY": "<string>",
          "REQUEST_COOKIES_NAMES": "<string>",
          "REQUEST_COOKIES": "<string>",
          "REQUEST_FILENAME": "<string>",
          "REQUEST_HEADERS_NAMES": "<string>",
          "REQUEST_HEADERS": "<string>",
          "REQUEST_LINE": "<string>",
          "REQUEST_METHOD": "<string>",
          "REQUEST_PROTOCOL": "<string>",
          "RESPONSE_BODY": "<string>",
          "RESPONSE_HEADERS": "<string>",
          "RESPONSE_STATUS": "<string>",
          "FINGERPRINT": "<string>",
          "VERIFIED_BOT_CATEGORY": "<string>"
        },
        "value": "<string>"
      }
    ]
  }
}
'
import requests

url = "https://api.bunny.net/shield/waf/custom-rule"

payload = {
    "shieldZoneId": 123,
    "ruleName": "<string>",
    "ruleDescription": "<string>",
    "ruleConfiguration": {
        "variableTypes": {
            "REQUEST_URI": "<string>",
            "REQUEST_URI_RAW": "<string>",
            "ARGS": "<string>",
            "ARGS_COMBINED_SIZE": "<string>",
            "ARGS_GET": "<string>",
            "ARGS_GET_NAMES": "<string>",
            "ARGS_POST": "<string>",
            "ARGS_POST_NAMES": "<string>",
            "FILES_NAMES": "<string>",
            "GEO": "<string>",
            "REMOTE_ADDR": "<string>",
            "QUERY_STRING": "<string>",
            "REQUEST_BASENAME": "<string>",
            "REQUEST_BODY": "<string>",
            "REQUEST_COOKIES_NAMES": "<string>",
            "REQUEST_COOKIES": "<string>",
            "REQUEST_FILENAME": "<string>",
            "REQUEST_HEADERS_NAMES": "<string>",
            "REQUEST_HEADERS": "<string>",
            "REQUEST_LINE": "<string>",
            "REQUEST_METHOD": "<string>",
            "REQUEST_PROTOCOL": "<string>",
            "RESPONSE_BODY": "<string>",
            "RESPONSE_HEADERS": "<string>",
            "RESPONSE_STATUS": "<string>",
            "FINGERPRINT": "<string>",
            "VERIFIED_BOT_CATEGORY": "<string>"
        },
        "transformationTypes": [],
        "value": "<string>",
        "chainedRuleConditions": [
            {
                "variableTypes": {
                    "REQUEST_URI": "<string>",
                    "REQUEST_URI_RAW": "<string>",
                    "ARGS": "<string>",
                    "ARGS_COMBINED_SIZE": "<string>",
                    "ARGS_GET": "<string>",
                    "ARGS_GET_NAMES": "<string>",
                    "ARGS_POST": "<string>",
                    "ARGS_POST_NAMES": "<string>",
                    "FILES_NAMES": "<string>",
                    "GEO": "<string>",
                    "REMOTE_ADDR": "<string>",
                    "QUERY_STRING": "<string>",
                    "REQUEST_BASENAME": "<string>",
                    "REQUEST_BODY": "<string>",
                    "REQUEST_COOKIES_NAMES": "<string>",
                    "REQUEST_COOKIES": "<string>",
                    "REQUEST_FILENAME": "<string>",
                    "REQUEST_HEADERS_NAMES": "<string>",
                    "REQUEST_HEADERS": "<string>",
                    "REQUEST_LINE": "<string>",
                    "REQUEST_METHOD": "<string>",
                    "REQUEST_PROTOCOL": "<string>",
                    "RESPONSE_BODY": "<string>",
                    "RESPONSE_HEADERS": "<string>",
                    "RESPONSE_STATUS": "<string>",
                    "FINGERPRINT": "<string>",
                    "VERIFIED_BOT_CATEGORY": "<string>"
                },
                "value": "<string>"
            }
        ]
    }
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: JSON.stringify({
    shieldZoneId: 123,
    ruleName: '<string>',
    ruleDescription: '<string>',
    ruleConfiguration: {
      variableTypes: {
        REQUEST_URI: '<string>',
        REQUEST_URI_RAW: '<string>',
        ARGS: '<string>',
        ARGS_COMBINED_SIZE: '<string>',
        ARGS_GET: '<string>',
        ARGS_GET_NAMES: '<string>',
        ARGS_POST: '<string>',
        ARGS_POST_NAMES: '<string>',
        FILES_NAMES: '<string>',
        GEO: '<string>',
        REMOTE_ADDR: '<string>',
        QUERY_STRING: '<string>',
        REQUEST_BASENAME: '<string>',
        REQUEST_BODY: '<string>',
        REQUEST_COOKIES_NAMES: '<string>',
        REQUEST_COOKIES: '<string>',
        REQUEST_FILENAME: '<string>',
        REQUEST_HEADERS_NAMES: '<string>',
        REQUEST_HEADERS: '<string>',
        REQUEST_LINE: '<string>',
        REQUEST_METHOD: '<string>',
        REQUEST_PROTOCOL: '<string>',
        RESPONSE_BODY: '<string>',
        RESPONSE_HEADERS: '<string>',
        RESPONSE_STATUS: '<string>',
        FINGERPRINT: '<string>',
        VERIFIED_BOT_CATEGORY: '<string>'
      },
      transformationTypes: [],
      value: '<string>',
      chainedRuleConditions: [
        {
          variableTypes: {
            REQUEST_URI: '<string>',
            REQUEST_URI_RAW: '<string>',
            ARGS: '<string>',
            ARGS_COMBINED_SIZE: '<string>',
            ARGS_GET: '<string>',
            ARGS_GET_NAMES: '<string>',
            ARGS_POST: '<string>',
            ARGS_POST_NAMES: '<string>',
            FILES_NAMES: '<string>',
            GEO: '<string>',
            REMOTE_ADDR: '<string>',
            QUERY_STRING: '<string>',
            REQUEST_BASENAME: '<string>',
            REQUEST_BODY: '<string>',
            REQUEST_COOKIES_NAMES: '<string>',
            REQUEST_COOKIES: '<string>',
            REQUEST_FILENAME: '<string>',
            REQUEST_HEADERS_NAMES: '<string>',
            REQUEST_HEADERS: '<string>',
            REQUEST_LINE: '<string>',
            REQUEST_METHOD: '<string>',
            REQUEST_PROTOCOL: '<string>',
            RESPONSE_BODY: '<string>',
            RESPONSE_HEADERS: '<string>',
            RESPONSE_STATUS: '<string>',
            FINGERPRINT: '<string>',
            VERIFIED_BOT_CATEGORY: '<string>'
          },
          value: '<string>'
        }
      ]
    }
  })
};

fetch('https://api.bunny.net/shield/waf/custom-rule', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bunny.net/shield/waf/custom-rule",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    'shieldZoneId' => 123,
    'ruleName' => '<string>',
    'ruleDescription' => '<string>',
    'ruleConfiguration' => [
        'variableTypes' => [
                'REQUEST_URI' => '<string>',
                'REQUEST_URI_RAW' => '<string>',
                'ARGS' => '<string>',
                'ARGS_COMBINED_SIZE' => '<string>',
                'ARGS_GET' => '<string>',
                'ARGS_GET_NAMES' => '<string>',
                'ARGS_POST' => '<string>',
                'ARGS_POST_NAMES' => '<string>',
                'FILES_NAMES' => '<string>',
                'GEO' => '<string>',
                'REMOTE_ADDR' => '<string>',
                'QUERY_STRING' => '<string>',
                'REQUEST_BASENAME' => '<string>',
                'REQUEST_BODY' => '<string>',
                'REQUEST_COOKIES_NAMES' => '<string>',
                'REQUEST_COOKIES' => '<string>',
                'REQUEST_FILENAME' => '<string>',
                'REQUEST_HEADERS_NAMES' => '<string>',
                'REQUEST_HEADERS' => '<string>',
                'REQUEST_LINE' => '<string>',
                'REQUEST_METHOD' => '<string>',
                'REQUEST_PROTOCOL' => '<string>',
                'RESPONSE_BODY' => '<string>',
                'RESPONSE_HEADERS' => '<string>',
                'RESPONSE_STATUS' => '<string>',
                'FINGERPRINT' => '<string>',
                'VERIFIED_BOT_CATEGORY' => '<string>'
        ],
        'transformationTypes' => [
                
        ],
        'value' => '<string>',
        'chainedRuleConditions' => [
                [
                                'variableTypes' => [
                                                                'REQUEST_URI' => '<string>',
                                                                'REQUEST_URI_RAW' => '<string>',
                                                                'ARGS' => '<string>',
                                                                'ARGS_COMBINED_SIZE' => '<string>',
                                                                'ARGS_GET' => '<string>',
                                                                'ARGS_GET_NAMES' => '<string>',
                                                                'ARGS_POST' => '<string>',
                                                                'ARGS_POST_NAMES' => '<string>',
                                                                'FILES_NAMES' => '<string>',
                                                                'GEO' => '<string>',
                                                                'REMOTE_ADDR' => '<string>',
                                                                'QUERY_STRING' => '<string>',
                                                                'REQUEST_BASENAME' => '<string>',
                                                                'REQUEST_BODY' => '<string>',
                                                                'REQUEST_COOKIES_NAMES' => '<string>',
                                                                'REQUEST_COOKIES' => '<string>',
                                                                'REQUEST_FILENAME' => '<string>',
                                                                'REQUEST_HEADERS_NAMES' => '<string>',
                                                                'REQUEST_HEADERS' => '<string>',
                                                                'REQUEST_LINE' => '<string>',
                                                                'REQUEST_METHOD' => '<string>',
                                                                'REQUEST_PROTOCOL' => '<string>',
                                                                'RESPONSE_BODY' => '<string>',
                                                                'RESPONSE_HEADERS' => '<string>',
                                                                'RESPONSE_STATUS' => '<string>',
                                                                'FINGERPRINT' => '<string>',
                                                                'VERIFIED_BOT_CATEGORY' => '<string>'
                                ],
                                'value' => '<string>'
                ]
        ]
    ]
  ]),
  CURLOPT_HTTPHEADER => [
    "Content-Type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.bunny.net/shield/waf/custom-rule"

	payload := strings.NewReader("{\n  \"shieldZoneId\": 123,\n  \"ruleName\": \"<string>\",\n  \"ruleDescription\": \"<string>\",\n  \"ruleConfiguration\": {\n    \"variableTypes\": {\n      \"REQUEST_URI\": \"<string>\",\n      \"REQUEST_URI_RAW\": \"<string>\",\n      \"ARGS\": \"<string>\",\n      \"ARGS_COMBINED_SIZE\": \"<string>\",\n      \"ARGS_GET\": \"<string>\",\n      \"ARGS_GET_NAMES\": \"<string>\",\n      \"ARGS_POST\": \"<string>\",\n      \"ARGS_POST_NAMES\": \"<string>\",\n      \"FILES_NAMES\": \"<string>\",\n      \"GEO\": \"<string>\",\n      \"REMOTE_ADDR\": \"<string>\",\n      \"QUERY_STRING\": \"<string>\",\n      \"REQUEST_BASENAME\": \"<string>\",\n      \"REQUEST_BODY\": \"<string>\",\n      \"REQUEST_COOKIES_NAMES\": \"<string>\",\n      \"REQUEST_COOKIES\": \"<string>\",\n      \"REQUEST_FILENAME\": \"<string>\",\n      \"REQUEST_HEADERS_NAMES\": \"<string>\",\n      \"REQUEST_HEADERS\": \"<string>\",\n      \"REQUEST_LINE\": \"<string>\",\n      \"REQUEST_METHOD\": \"<string>\",\n      \"REQUEST_PROTOCOL\": \"<string>\",\n      \"RESPONSE_BODY\": \"<string>\",\n      \"RESPONSE_HEADERS\": \"<string>\",\n      \"RESPONSE_STATUS\": \"<string>\",\n      \"FINGERPRINT\": \"<string>\",\n      \"VERIFIED_BOT_CATEGORY\": \"<string>\"\n    },\n    \"transformationTypes\": [],\n    \"value\": \"<string>\",\n    \"chainedRuleConditions\": [\n      {\n        \"variableTypes\": {\n          \"REQUEST_URI\": \"<string>\",\n          \"REQUEST_URI_RAW\": \"<string>\",\n          \"ARGS\": \"<string>\",\n          \"ARGS_COMBINED_SIZE\": \"<string>\",\n          \"ARGS_GET\": \"<string>\",\n          \"ARGS_GET_NAMES\": \"<string>\",\n          \"ARGS_POST\": \"<string>\",\n          \"ARGS_POST_NAMES\": \"<string>\",\n          \"FILES_NAMES\": \"<string>\",\n          \"GEO\": \"<string>\",\n          \"REMOTE_ADDR\": \"<string>\",\n          \"QUERY_STRING\": \"<string>\",\n          \"REQUEST_BASENAME\": \"<string>\",\n          \"REQUEST_BODY\": \"<string>\",\n          \"REQUEST_COOKIES_NAMES\": \"<string>\",\n          \"REQUEST_COOKIES\": \"<string>\",\n          \"REQUEST_FILENAME\": \"<string>\",\n          \"REQUEST_HEADERS_NAMES\": \"<string>\",\n          \"REQUEST_HEADERS\": \"<string>\",\n          \"REQUEST_LINE\": \"<string>\",\n          \"REQUEST_METHOD\": \"<string>\",\n          \"REQUEST_PROTOCOL\": \"<string>\",\n          \"RESPONSE_BODY\": \"<string>\",\n          \"RESPONSE_HEADERS\": \"<string>\",\n          \"RESPONSE_STATUS\": \"<string>\",\n          \"FINGERPRINT\": \"<string>\",\n          \"VERIFIED_BOT_CATEGORY\": \"<string>\"\n        },\n        \"value\": \"<string>\"\n      }\n    ]\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api.bunny.net/shield/waf/custom-rule")
  .header("Content-Type", "application/json")
  .body("{\n  \"shieldZoneId\": 123,\n  \"ruleName\": \"<string>\",\n  \"ruleDescription\": \"<string>\",\n  \"ruleConfiguration\": {\n    \"variableTypes\": {\n      \"REQUEST_URI\": \"<string>\",\n      \"REQUEST_URI_RAW\": \"<string>\",\n      \"ARGS\": \"<string>\",\n      \"ARGS_COMBINED_SIZE\": \"<string>\",\n      \"ARGS_GET\": \"<string>\",\n      \"ARGS_GET_NAMES\": \"<string>\",\n      \"ARGS_POST\": \"<string>\",\n      \"ARGS_POST_NAMES\": \"<string>\",\n      \"FILES_NAMES\": \"<string>\",\n      \"GEO\": \"<string>\",\n      \"REMOTE_ADDR\": \"<string>\",\n      \"QUERY_STRING\": \"<string>\",\n      \"REQUEST_BASENAME\": \"<string>\",\n      \"REQUEST_BODY\": \"<string>\",\n      \"REQUEST_COOKIES_NAMES\": \"<string>\",\n      \"REQUEST_COOKIES\": \"<string>\",\n      \"REQUEST_FILENAME\": \"<string>\",\n      \"REQUEST_HEADERS_NAMES\": \"<string>\",\n      \"REQUEST_HEADERS\": \"<string>\",\n      \"REQUEST_LINE\": \"<string>\",\n      \"REQUEST_METHOD\": \"<string>\",\n      \"REQUEST_PROTOCOL\": \"<string>\",\n      \"RESPONSE_BODY\": \"<string>\",\n      \"RESPONSE_HEADERS\": \"<string>\",\n      \"RESPONSE_STATUS\": \"<string>\",\n      \"FINGERPRINT\": \"<string>\",\n      \"VERIFIED_BOT_CATEGORY\": \"<string>\"\n    },\n    \"transformationTypes\": [],\n    \"value\": \"<string>\",\n    \"chainedRuleConditions\": [\n      {\n        \"variableTypes\": {\n          \"REQUEST_URI\": \"<string>\",\n          \"REQUEST_URI_RAW\": \"<string>\",\n          \"ARGS\": \"<string>\",\n          \"ARGS_COMBINED_SIZE\": \"<string>\",\n          \"ARGS_GET\": \"<string>\",\n          \"ARGS_GET_NAMES\": \"<string>\",\n          \"ARGS_POST\": \"<string>\",\n          \"ARGS_POST_NAMES\": \"<string>\",\n          \"FILES_NAMES\": \"<string>\",\n          \"GEO\": \"<string>\",\n          \"REMOTE_ADDR\": \"<string>\",\n          \"QUERY_STRING\": \"<string>\",\n          \"REQUEST_BASENAME\": \"<string>\",\n          \"REQUEST_BODY\": \"<string>\",\n          \"REQUEST_COOKIES_NAMES\": \"<string>\",\n          \"REQUEST_COOKIES\": \"<string>\",\n          \"REQUEST_FILENAME\": \"<string>\",\n          \"REQUEST_HEADERS_NAMES\": \"<string>\",\n          \"REQUEST_HEADERS\": \"<string>\",\n          \"REQUEST_LINE\": \"<string>\",\n          \"REQUEST_METHOD\": \"<string>\",\n          \"REQUEST_PROTOCOL\": \"<string>\",\n          \"RESPONSE_BODY\": \"<string>\",\n          \"RESPONSE_HEADERS\": \"<string>\",\n          \"RESPONSE_STATUS\": \"<string>\",\n          \"FINGERPRINT\": \"<string>\",\n          \"VERIFIED_BOT_CATEGORY\": \"<string>\"\n        },\n        \"value\": \"<string>\"\n      }\n    ]\n  }\n}")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://api.bunny.net/shield/waf/custom-rule")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n  \"shieldZoneId\": 123,\n  \"ruleName\": \"<string>\",\n  \"ruleDescription\": \"<string>\",\n  \"ruleConfiguration\": {\n    \"variableTypes\": {\n      \"REQUEST_URI\": \"<string>\",\n      \"REQUEST_URI_RAW\": \"<string>\",\n      \"ARGS\": \"<string>\",\n      \"ARGS_COMBINED_SIZE\": \"<string>\",\n      \"ARGS_GET\": \"<string>\",\n      \"ARGS_GET_NAMES\": \"<string>\",\n      \"ARGS_POST\": \"<string>\",\n      \"ARGS_POST_NAMES\": \"<string>\",\n      \"FILES_NAMES\": \"<string>\",\n      \"GEO\": \"<string>\",\n      \"REMOTE_ADDR\": \"<string>\",\n      \"QUERY_STRING\": \"<string>\",\n      \"REQUEST_BASENAME\": \"<string>\",\n      \"REQUEST_BODY\": \"<string>\",\n      \"REQUEST_COOKIES_NAMES\": \"<string>\",\n      \"REQUEST_COOKIES\": \"<string>\",\n      \"REQUEST_FILENAME\": \"<string>\",\n      \"REQUEST_HEADERS_NAMES\": \"<string>\",\n      \"REQUEST_HEADERS\": \"<string>\",\n      \"REQUEST_LINE\": \"<string>\",\n      \"REQUEST_METHOD\": \"<string>\",\n      \"REQUEST_PROTOCOL\": \"<string>\",\n      \"RESPONSE_BODY\": \"<string>\",\n      \"RESPONSE_HEADERS\": \"<string>\",\n      \"RESPONSE_STATUS\": \"<string>\",\n      \"FINGERPRINT\": \"<string>\",\n      \"VERIFIED_BOT_CATEGORY\": \"<string>\"\n    },\n    \"transformationTypes\": [],\n    \"value\": \"<string>\",\n    \"chainedRuleConditions\": [\n      {\n        \"variableTypes\": {\n          \"REQUEST_URI\": \"<string>\",\n          \"REQUEST_URI_RAW\": \"<string>\",\n          \"ARGS\": \"<string>\",\n          \"ARGS_COMBINED_SIZE\": \"<string>\",\n          \"ARGS_GET\": \"<string>\",\n          \"ARGS_GET_NAMES\": \"<string>\",\n          \"ARGS_POST\": \"<string>\",\n          \"ARGS_POST_NAMES\": \"<string>\",\n          \"FILES_NAMES\": \"<string>\",\n          \"GEO\": \"<string>\",\n          \"REMOTE_ADDR\": \"<string>\",\n          \"QUERY_STRING\": \"<string>\",\n          \"REQUEST_BASENAME\": \"<string>\",\n          \"REQUEST_BODY\": \"<string>\",\n          \"REQUEST_COOKIES_NAMES\": \"<string>\",\n          \"REQUEST_COOKIES\": \"<string>\",\n          \"REQUEST_FILENAME\": \"<string>\",\n          \"REQUEST_HEADERS_NAMES\": \"<string>\",\n          \"REQUEST_HEADERS\": \"<string>\",\n          \"REQUEST_LINE\": \"<string>\",\n          \"REQUEST_METHOD\": \"<string>\",\n          \"REQUEST_PROTOCOL\": \"<string>\",\n          \"RESPONSE_BODY\": \"<string>\",\n          \"RESPONSE_HEADERS\": \"<string>\",\n          \"RESPONSE_STATUS\": \"<string>\",\n          \"FINGERPRINT\": \"<string>\",\n          \"VERIFIED_BOT_CATEGORY\": \"<string>\"\n        },\n        \"value\": \"<string>\"\n      }\n    ]\n  }\n}"

response = http.request(request)
puts response.read_body
{
  "id": 123,
  "shieldZoneId": 123,
  "userId": "<string>",
  "ruleName": "<string>",
  "ruleDescription": "<string>",
  "ruleJson": "<string>",
  "ruleConfiguration": {
    "variableTypes": {
      "REQUEST_URI": "<string>",
      "REQUEST_URI_RAW": "<string>",
      "ARGS": "<string>",
      "ARGS_COMBINED_SIZE": "<string>",
      "ARGS_GET": "<string>",
      "ARGS_GET_NAMES": "<string>",
      "ARGS_POST": "<string>",
      "ARGS_POST_NAMES": "<string>",
      "FILES_NAMES": "<string>",
      "GEO": "<string>",
      "REMOTE_ADDR": "<string>",
      "QUERY_STRING": "<string>",
      "REQUEST_BASENAME": "<string>",
      "REQUEST_BODY": "<string>",
      "REQUEST_COOKIES_NAMES": "<string>",
      "REQUEST_COOKIES": "<string>",
      "REQUEST_FILENAME": "<string>",
      "REQUEST_HEADERS_NAMES": "<string>",
      "REQUEST_HEADERS": "<string>",
      "REQUEST_LINE": "<string>",
      "REQUEST_METHOD": "<string>",
      "REQUEST_PROTOCOL": "<string>",
      "RESPONSE_BODY": "<string>",
      "RESPONSE_HEADERS": "<string>",
      "RESPONSE_STATUS": "<string>",
      "FINGERPRINT": "<string>",
      "VERIFIED_BOT_CATEGORY": "<string>"
    },
    "transformationTypes": [],
    "value": "<string>",
    "chainedRuleConditions": [
      {
        "variableTypes": {
          "REQUEST_URI": "<string>",
          "REQUEST_URI_RAW": "<string>",
          "ARGS": "<string>",
          "ARGS_COMBINED_SIZE": "<string>",
          "ARGS_GET": "<string>",
          "ARGS_GET_NAMES": "<string>",
          "ARGS_POST": "<string>",
          "ARGS_POST_NAMES": "<string>",
          "FILES_NAMES": "<string>",
          "GEO": "<string>",
          "REMOTE_ADDR": "<string>",
          "QUERY_STRING": "<string>",
          "REQUEST_BASENAME": "<string>",
          "REQUEST_BODY": "<string>",
          "REQUEST_COOKIES_NAMES": "<string>",
          "REQUEST_COOKIES": "<string>",
          "REQUEST_FILENAME": "<string>",
          "REQUEST_HEADERS_NAMES": "<string>",
          "REQUEST_HEADERS": "<string>",
          "REQUEST_LINE": "<string>",
          "REQUEST_METHOD": "<string>",
          "REQUEST_PROTOCOL": "<string>",
          "RESPONSE_BODY": "<string>",
          "RESPONSE_HEADERS": "<string>",
          "RESPONSE_STATUS": "<string>",
          "FINGERPRINT": "<string>",
          "VERIFIED_BOT_CATEGORY": "<string>"
        },
        "value": "<string>"
      }
    ]
  },
  "errorResponse": {
    "success": true,
    "message": "<string>",
    "errorKey": "<string>"
  }
}
{
  "location": "<string>",
  "value": null,
  "formatters": [
    {}
  ],
  "contentTypes": [
    "<string>"
  ],
  "declaredType": "<string>",
  "statusCode": 123
}
{
  "statusCode": 123
}

Body

shieldZoneId
integer<int32>
ruleName
string | null
ruleDescription
string | null
ruleConfiguration
object

Response

OK

id
integer<int64>
shieldZoneId
integer<int64>
userId
string | null
ruleName
string | null
ruleDescription
string | null
ruleJson
string | null
ruleConfiguration
object
errorResponse
object

Generic response object containing status information for API operations.

Last modified on June 26, 2026