FortiWeb Cloud RESTful API Reference (2.0.0)

Download OpenAPI specification:Download

Overview

FortiWeb Cloud provides a powerful and flexible RESTful API that allows developers to access and modify the settings of FortiWeb applications programmatically. By leveraging the API, you can integrate FortiWeb Cloud functionality into your own applications, automate tasks, and manage resources more efficiently.

REST principles

Programs communicate with the API over HTTPS, the same protocol that your web browser uses to interact securely with web pages.

The API is based on interactions with a web page. Data is treated like a static web page:

  • Add data by POSTing a web page

  • Fetch data by GETing a web page

  • Update data by PUTing a web page

  • Delete data by DELETEing a web page

After the FortiWeb Cloud API receives a request, it returns an HTTP response code. These codes are discussed later in this reference.

Authentication

FortiWeb Cloud RESTful API requires API key authorization. An API Key tells our API server that the request it received came from you. Everything that you have access to in FortiWeb Cloud is accessible with an API Key that is generated by you.

For how to generate the API key, See API Key in Online Help.

Request format

FortiWeb Cloud RESTful API request is a standard HTTP request, which includes the HTTP header and HTTP body. Expected response can be returned only when the HTTP header and body meet the standard. The HTTP request header of FortiWeb Cloud RESTful API must include the following header lines:

  • Header authentication field

FortiWeb Cloud RESTful API requires API key authorization. It is required to add the generated API key from FortiWeb Cloud GUI in the HTTP request header: Authorization: Basic <api-key-secret>

For how to generate the API key, See API Key in Online Help.

  • Accept field

It is required to use Accept field when sending an RESTful API request to show the accepted format.

The Accept field of most RESTful APIs is: Accept: application/json

Key concepts

The following headers are used by APIs documented.

Header name Value Description
Accept application/Json Used to specify certain media types which are acceptable by the request; the value of the header should be application/json, which is not changeable.
Authorization A random string from API Fetch Authorization Token Used to specify the token for authorization. The token could be obtained through API Fetch Authorization Token, please see API Fetch Authorization for details.
Content-Type application/json Used to specify the content types which are acceptable by the request. The value of the header should be application/json, which is not changeable.

Supported API methods

Method Operation description
GET Retrieves all configuration information of a resource.
POST Creates new configuration information of a resource.
PUT Updates the specified configuration information of a resource.
DELETE Deletes the specified configuration infomration of a resource.
OPTIONS Previews whether the server accepts the request. Once the preview is successful, the browser will send requests such as GET, PUT, etc.

URL format

The URLs that you use to access FortiWeb Cloud APIs follow the following format:

https://api.fortiweb-cloud.com/v2/application/{ep_id}/{module_name}/

{} stands for variable.

Variable Description
{ep_id} The ID of the apppication.
When you click into an application on FortiWeb Cloud's Web UI, the ID of this application will show in the URL path. It's a 10-digit number. For example, if the URL path is https://www.fortiweb-cloud.com/root/1111122222/dashboard, then 1111122222 is the ep_id.
{module_name} Name of the FortiWeb Cloud module. For example, "known_attacks".

Administrators

Global settings of administrators configuration.

Get Admin User List

Fetch the list of all admin users.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
query Parameters
cursor
string

To list the items of the first page, leave the cursor value empty.

To go forward to next page, get the value of the "next_cursor" parameter in the result of the current page, then paste it here as the cursor value.

To go to the previous page, get the "prev_cursor" value, then paste it here as the cursor value.

size
string

The page size.

forward
string

True: the next page;

False: the previous page.

Responses

Response samples

Content type
application/json
{
  • "users": [
    ],
  • "user_perm": "rw",
  • "prev_cursor": "eyJ1c2VyX2lkIjogeyJTIjogIjI3MmMzMWJlLTBiM2MtMTFlYy04MjlhLWEyNWYzNWM1NjM0MCJ9LCAic3VwZXJfaWQiOiB7IlMiOiAiZDg0ZjcwN2EtN2ExNC0xMWU5LWI2OWEtNWEyMDBkN2QzNWVlIn0sICJ1c2VyX25hbWUiOiB7IlMiOiAiMTI0NTQ2MEBxcS5jb20ifX0=",
  • "next_cursor": "",
  • "total": 4
}

Get Admin User Detail

Get Admin User Detail.

A body including all parameters and values in the request that conforms to the following JSON schema:
{
    "type": "object",
    "required": ["username", "type", "role_id", "role_name"],
    "properties": {
        "username": {
            "description": "External IDP role name",
            "type": "string"
        },
        "type": {
            "description": "Type of admin user",
            "type": "string",
            "enum": ["External IDP Role"]
        },
        "role_id": {
            "description": "Role ID",
            "type": "string"
        },
        "role_name": {
            "description": "Role name",
            "type": "string"
        }
    }
}

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
user_id
required
string

User ID

Responses

Response samples

Content type
application/json
{
  • "user_id": "aced2728-d7f6-11ed-853d-f53c116649e3",
  • "super_id": "19293b5a-0b9d-11ec-885a-9edb87769c35",
  • "username": "rolant@demo.com",
  • "role_id": "GLOBAL-Viewer",
  • "type": "Sub-user",
  • "custom_policy": {
    },
  • "custom_policy_limit": {
    },
  • "role_name": "Viewer"
}

Update Admin User

Update an admin user.

A body including all parameters and values in the request that conforms to the following JSON schema:
{
    "type": "object",
    "required": ["username", "type", "role_id", "role_name"],
    "properties": {
        "username": {
            "description": "External IDP role name",
            "type": "string"
        },
        "type": {
            "description": "Type of admin user",
            "type": "string",
            "enum": ["External IDP Role"]
        },
        "role_id": {
            "description": "Role ID",
            "type": "string"
        },
        "role_name": {
            "description": "Role name",
            "type": "string"
        }
    }
}

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
user_id
required
string

User ID

Request Body schema: application/json
role_id
string

Role ID

role_name
string

Role name

user_id
string

User ID

acc_id
string

Account ID

type
string

Admin type

username
string

User name

custom_policy
object

Custom Application Permissions

Responses

Request samples

Content type
application/json
{
  • "role_id": "GLOBAL-Viewer",
  • "custom_policy": {
    }
}

Response samples

Content type
application/json
{
  • "message": "Success"
}

System Settings

Global settings of system configuration.

Get API Key List

Get list of API keys.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create API Key

Create a new API key with token.Each user can own at most one API key.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
object (SingleJsonObject)

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "key_id": "ID value.",
  • "key_secret": "API key token."
}

Activate/Deactivate API Key

Change the status of selected API key to active or inactive.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
key_id
required
string
Request Body schema: application/json
active
boolean

Responses

Request samples

Content type
application/json
{
  • "active": false
}

Response samples

Content type
application/json
{
  • "message": "Success"
}

Delete API Key

Delete selected API key.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
key_id
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Update Active Contract Type

Update the active contract types, the Fortinet license or AWS/Azure/GCP subscription.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
contract_type
string
Enum: "aws" "aws_contract" "azure" "fortinet" "gcp"

Contract type

Responses

Request samples

Content type
application/json
{
  • "contract_type": "{{contract_type}}"
}

Response samples

Content type
{ }

Get Contracts

Get the contracts information.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
query Parameters
type
string
Value: "remains"

The remained contracts list not allocated by MSSP. (optional)

Responses

Response samples

Content type
application/json
Example
{
  • "aws_subscription_status": "subscribe-success",
  • "summary": {
    },
  • "fortinet": {
    },
  • "aws": {
    }
}

Get Cloud Connectors List

Get list of the configuration information of Cloud Connectors.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer

Responses

Response samples

Content type
application/json
{
  • "user_perm": "rw",
  • "total": "3",
  • "connectors": [
    ]
}

Create New Cloud Connector

Create a Cloud Connector.

A body including all parameters and values in the request that conforms to the following JSON schema:
{
    "type": "object",
    "properties": {
        "name": {
            "description": "The unique name of the Cloud Connector, required.",
            "type": "string"
        },
        "status": {
            "description": "The status of the Cloud Connector, required.",
            "type": "string",
            "enum": ["disable", "enable"]
        },
        "type": {
            "description": "The type of the Cloud Connector, required.",
            "type": "string",
            "enum": ["aws", "azure", "gcp"]
        },
        "region": {
            "description": "The region of the AWS Account, required if 'type': 'aws'.",
            "type": "string"
        },
        "access_key_id": {
            "description": "The Access Key ID of the AWS Account, required if 'type': 'aws'.",
            "type": "string"
        },
        "aws_secret_access_key": {
            "description": "The Secret Access Key of the AWS Account, required if 'type': 'aws'.",
            "type": "string"
        },
        "have_vpc_id": {
            "description": "Whether to specify VPC ID, required if 'type': 'aws'.",
            "type": "string",
            "enum": ["disable", "enable"]
        },
        "vpc_id": {
            "description": "The VPC ID of the AWS Account, required if 'type': 'aws' and 'have_vpc_id': 'enable'.",
            "type": "string"
        },
        "server_region": {
            "description": "The region of the Azure Account, required if 'type': 'azure'.",
            "type": "string",
            "enum": ["global", "china", "germany", "us_gov"]
        },
        "tenant_id": {
            "description": "The Tenant ID of the Azure Account, required if 'type': 'azure'.",
            "type": "string"
        },
        "client_id": {
            "description": "The Client ID of the Azure Account, required if 'type': 'azure'.",
            "type": "string"
        },
        "client_secret": {
            "description": "The Client Secret of the Azure Account, required if 'type': 'azure'.",
            "type": "string"
        },
        "have_resource_path": {
            "description": "Whether to specify Subscription ID, required if 'type': 'azure'.",
            "type": "string",
            "enum": ["disable", "enable"]
        },
        "subscription_id": {
            "description": "The Subscription ID of the Azure Account, required if 'type': 'azure' and 'have_resource_path': 'enable'.",
            "type": "string"
        },
        "have_resource_group": {
            "description": "Whether to specify Resource Group, required if 'type': 'azure' and 'have_resource_path': 'enable'.",
            "type": "string",
            "enum": ["disable", "enable"]
        },
        "resource_group": {
            "description": "The Resource Group of the Azure Account, required if 'type': 'azure' and 'have_resource_path': 'enable' and 'have_resource_group': 'enable'.",
            "type": "string"
        },
        "project_id": {
            "description": "The Project ID of the GCP Account, required if 'type': 'gcp'.",
            "type": "string"
        },
        "service_account_email": {
            "description": "The Service Account E-Mail of the GCP Account, required if 'type': 'gcp'.",
            "type": "string"
        },
        "private_key": {
            "description": "The Private Key of the GCP Account, required if 'type': 'gcp'.",
            "type": "string"
        },
        "zone": {
            "description": "The Zone of the GCP Account, required if 'type': 'gcp'.",
            "type": "string"
        }
    }
}

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Example Request:

AWS Request Body
{
    "name": "aws_connector_1",
    "status": "enable",
    "type": "aws",
    "region": "ap-southeast-1",
    "access_key_id": "XXXXXXXXXXXXXXXXXXXX",
    "aws_secret_access_key": "*",
    "have_vpc_id": "enable",
    "vpc_id": "vpc-0a268fa6b745cfb3a" 
}
GCP Request Body
{
    "name": "gcp_connector_1",
    "status": "enable",
    "type": "gcp",
    "project_id": "project-001",
    "service_account_email": "test@project-001.iam.gserviceaccount.com",
    "private_key": "*",
    "zone": "us-west1-a" 
}
Azure Request Body
{
    "name": "azure_connector_1",
    "status": "enable",
    "type": "azure",
    "server_region": "global",
    "tenant_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "client_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "client_secret": "*",
    "have_resource_path": "enable",
    "subscription_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "have_resource_group": "enable",
    "resource_group": "cldwafCluster_koreacentral_4" 
}
Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
object (SingleJsonObject)

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
Example
{
  • "detail": "Create Cloud Connector successfully."
}

Update Cloud Connector

Modify the Cloud Connector's configuration.

A body including all parameters and values in the request that conforms to the following JSON schema:
{
    "type": "object",
    "properties": {
        "name": {
            "description": "The unique name of the Cloud Connector, required.",
            "type": "string"
        },
        "status": {
            "description": "The status of the Cloud Connector, required.",
            "type": "string",
            "enum": ["disable", "enable"]
        },
        "type": {
            "description": "The type of the Cloud Connector, required.",
            "type": "string",
            "enum": ["aws", "azure", "gcp"]
        },
        "region": {
            "description": "The region of the AWS Account, required if 'type': 'aws'.",
            "type": "string"
        },
        "access_key_id": {
            "description": "The Access Key ID of the AWS Account, required if 'type': 'aws'.",
            "type": "string"
        },
        "aws_secret_access_key": {
            "description": "The Secret Access Key of the AWS Account, required if 'type': 'aws'.",
            "type": "string"
        },
        "have_vpc_id": {
            "description": "Whether to specify VPC ID, required if 'type': 'aws'.",
            "type": "string",
            "enum": ["disable", "enable"]
        },
        "vpc_id": {
            "description": "The VPC ID of the AWS Account, required if 'type': 'aws' and 'have_vpc_id': 'enable'.",
            "type": "string"
        },
        "server_region": {
            "description": "The region of the Azure Account, required if 'type': 'azure'.",
            "type": "string",
            "enum": ["global", "china", "germany", "us_gov"]
        },
        "tenant_id": {
            "description": "The Tenant ID of the Azure Account, required if 'type': 'azure'.",
            "type": "string"
        },
        "client_id": {
            "description": "The Client ID of the Azure Account, required if 'type': 'azure'.",
            "type": "string"
        },
        "client_secret": {
            "description": "The Client Secret of the Azure Account, required if 'type': 'azure'.",
            "type": "string"
        },
        "have_resource_path": {
            "description": "Whether to specify Subscription ID, required if 'type': 'azure'.",
            "type": "string",
            "enum": ["disable", "enable"]
        },
        "subscription_id": {
            "description": "The Subscription ID of the Azure Account, required if 'type': 'azure' and 'have_resource_path': 'enable'.",
            "type": "string"
        },
        "have_resource_group": {
            "description": "Whether to specify Resource Group, required if 'type': 'azure' and 'have_resource_path': 'enable'.",
            "type": "string",
            "enum": ["disable", "enable"]
        },
        "resource_group": {
            "description": "The Resource Group of the Azure Account, required if 'type': 'azure' and 'have_resource_path': 'enable' and 'have_resource_group': 'enable'.",
            "type": "string"
        },
        "project_id": {
            "description": "The Project ID of the GCP Account, required if 'type': 'gcp'.",
            "type": "string"
        },
        "service_account_email": {
            "description": "The Service Account E-Mail of the GCP Account, required if 'type': 'gcp'.",
            "type": "string"
        },
        "private_key": {
            "description": "The Private Key of the GCP Account, required if 'type': 'gcp'.",
            "type": "string"
        },
        "zone": {
            "description": "The Zone of the GCP Account, required if 'type': 'gcp'.",
            "type": "string"
        }
    }
}

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Example Request:

AWS Request Body
{
    "name": "aws_connector_1",
    "status": "enable",
    "type": "aws",
    "region": "ap-southeast-1",
    "access_key_id": "XXXXXXXXXXXXXXXXXXXX",
    "aws_secret_access_key": "*",
    "have_vpc_id": "enable",
    "vpc_id": "vpc-0a268fa6b745cfb3a" 
}
GCP Request Body
{
    "name": "gcp_connector_1",
    "status": "enable",
    "type": "gcp",
    "project_id": "project-001",
    "service_account_email": "test@project-001.iam.gserviceaccount.com",
    "private_key": "*",
    "zone": "us-west1-a" 
}
Azure Request Body
{
    "name": "azure_connector_1",
    "status": "enable",
    "type": "azure",
    "server_region": "global",
    "tenant_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "client_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "client_secret": "*",
    "have_resource_path": "enable",
    "subscription_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "have_resource_group": "enable",
    "resource_group": "cldwafCluster_koreacentral_4" 
}
Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
object (SingleJsonObject)

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
Example
{
  • "detail": "Update Cloud Connector successfully."
}

Delete Cloud Connector

Delete a Cloud Connector.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
query Parameters
name
required
string

connector name

Responses

Response samples

Content type
application/json
{
  • "detail": "Delete Cloud Connector successfully."
}

Test Cloud Connector Connection

Test the Connector whether its connection can be established.

A body including all parameters and values in the request that conforms to the following JSON schema:
{
    "type": "object",
    "properties": {
        "type": {
            "description": "The type of the Cloud Connector, required.",
            "type": "string",
            "enum": ["aws", "azure", "gcp"]
        },
        "is_encrypted": {
            "description": "Whether it('aws_secret_access_key', 'client_secret', 'private_key') is encrypted or plain text, required.",
            "type": "string",
            "enum": ["true", "false"]
        },
        "region": {
            "description": "The region of the AWS Account, required on 'type': 'aws'.",
            "type": "string"
        },
        "access_key_id": {
            "description": "The Access Key ID of the AWS Account, required on 'type': 'aws'.",
            "type": "string"
        },
        "aws_secret_access_key": {
            "description": "The Secret Access Key of the AWS Account, required on 'type': 'aws'.",
            "type": "string"
        },
        "have_vpc_id": {
            "description": "Whether to specify VPC ID, required on 'type': 'aws'.",
            "type": "string",
            "enum": ["disable", "enable"]
        },
        "vpc_id": {
            "description": "The VPC ID of the AWS Account, required on 'type': 'aws' and 'have_vpc_id': 'enable'.",
            "type": "string"
        },
        "server_region": {
            "description": "The region of the Azure Account, required on 'type': 'azure'.",
            "type": "string",
            "enum": ["global", "china", "germany", "us_gov"]
        },
        "tenant_id": {
            "description": "The Tenant ID of the Azure Account, required on 'type': 'azure'.",
            "type": "string"
        },
        "client_id": {
            "description": "The Client ID of the Azure Account, required on 'type': 'azure'.",
            "type": "string"
        },
        "client_secret": {
            "description": "The Client Secret of the Azure Account, required on 'type': 'azure'.",
            "type": "string"
        },
        "have_resource_path": {
            "description": "Whether to specify Subscription ID, required on 'type': 'azure'.",
            "type": "string",
            "enum": ["disable", "enable"]
        },
        "subscription_id": {
            "description": "The Subscription ID of the Azure Account, required on 'type': 'azure' and 'have_resource_path': 'enable'.",
            "type": "string"
        },
        "have_resource_group": {
            "description": "Whether to specify Resource Group, required on 'type': 'azure' and 'have_resource_path': 'enable'.",
            "type": "string",
            "enum": ["disable", "enable"]
        },
        "resource_group": {
            "description": "The Resource Group of the Azure Account, required on 'type': 'azure' and 'have_resource_path': 'enable' and 'have_resource_group': 'enable'.",
            "type": "string"
        },
        "project_id": {
            "description": "The Project ID of the GCP Account, required on 'type': 'gcp'.",
            "type": "string"
        },
        "service_account_email": {
            "description": "The Service Account E-Mail of the GCP Account, required on 'type': 'gcp'.",
            "type": "string"
        },
        "private_key": {
            "description": "The Private Key of the GCP Account, required on 'type': 'gcp'.",
            "type": "string"
        },
        "zone": {
            "description": "The Zone of the GCP Account, required on 'type': 'gcp'.",
            "type": "string"
        }
    }
}

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Example Request:

AWS Request Body
{
    "type": "aws",
    "region": "ap-southeast-1",
    "access_key_id": "XXXXXXXXXXXXXXXXXXXX",
    "is_encrypted": "false",
    "aws_secret_access_key": "*",
    "have_vpc_id": "enable",
    "vpc_id": "vpc-04168fa6b745cfb3a"
}
GCP Request Body
{
    "type": "gcp",
    "project_id": "project-001",
    "service_account_email": "test@project-001.iam.gserviceaccount.com",
    "is_encrypted": "false",
    "private_key": "*",
    "zone": "us-west1-a" 
}
Azure Request Body
{
    "type": "azure",
    "server_region": "global",
    "tenant_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "client_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "is_encrypted": "false",
    "client_secret": "*",
    "have_resource_path": "enable",
    "subscription_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "have_resource_group": "enable",
    "resource_group": "cldwafCluster_koreacentral_4" 
}
Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
object (SingleJsonObject)

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
Example
{
  • "detail": "Connect the Cloud Connector successfully."
}

Get Public IP List of a Selected Resource

Used on Origin Servers page. Retrieve the public IP addresses list of a selected cloud resource.

A body including resource detail with JSON schema:

json {"cloud_connector":"name","filter":[{"Name":"tag:Name","Values":["filter value"]}]}

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
object (SingleJsonObject)

Responses

Request samples

Content type
application/json
{
  • "cloud_connector": "connector name",
  • "filter": [
    ]
}

Response samples

Content type
application/json
{
  • "public_ip": [
    ],
  • "total": 2
}

Get Filter Options List of a Selected Connector

Used in Origin Servers page. Get the filter options list of a specific cloud connector.

Authorizations:
ApiRequestAuthorizer
query Parameters
cloud_connector
required
string

connector name

Responses

Response samples

Content type
application/json
{
  • "detail": "Bad request."
}

Get Global Setting Configurations

Get the global setting configurations.

Authorizations:
ApiRequestAuthorizer

Responses

Response samples

Content type
application/json
Example
{
  • "ESServer": {
    },
  • "AuditEnable": 1,
  • "ServerType": "elasticsearch",
  • "NotificationEnable": true,
  • "user_perm": "rwa",
  • "AdvancedConfiguration": "disable"
}

Update Global Setting Configurations

Modify the global settings.

A body including all parameters and values in the request that conforms to the following JSON schema:

{
    "type": "object",
    "required": ["AuditEnable", "WeeklyEnable", "WeekReport", "AuditLog", "ServerType"],
    "properties": {
        "AuditEnable": {
            "description": "Select 0 to disable exporting audit logs, or select 1 to enable exporting audit logs",
            "type": "int",
            "enum": [0,1],
            "default": 0
        },
        "WeeklyEnable": {
            "description": "Select 0 to disable sending weekly report or select 1 to enable sending weekly report",
            "type": "int",
            "enum": [0,1],
            "default": 0
        },
        "WeekReport": {
            "description": "Configure weekly report configuration",
            "type": "object",
            "properties": {
                "email":{
                	"description": "Configure the email address that receives the weekly report",
         	        "type": "string"
                },
                "email_default":{
                	"description": "Select 0 to define the email address that receives the weekly report or 1 to send the weekly report to the default email address",
         	        "type": "int",
         	        "enum": [0,1]
                }
            }
        },
        "AdvancedConfiguration": {
            "description": "Enable/Disable the advanced configurations.",
            "type": "string",
            "enum": ["disable", "enable"],
            "default": "disable"
        },
        "ServerType": {
            "description": "The type of the AuditLog server.",
            "type": "string",
            "enum": ["syslog", "elasticsearch"],
            "default": "syslog"
        },
        "AuditLog": {
            "description": "Configure syslog server for auditing log",
            "type": "object",
            "required": ["server_type", "syslog_type", "address", "port", "protocol", "cert_signed", "type", "value"],
            "properties":{
                "server_type": {
                    "description": "The type of the server, should be 'syslog' here.",
                    "type": "string",
                    "enum": ["syslog", "elasticsearch"]
                },
                "syslog_type": {
                    "description": "The type of the log content, should be 'elog' here.",
                    "type": "string",
                    "enum": ["alog", "elog"]
                },
                "address": {
                    "description": "Configure the syslog server address or domain",
                    "type": "string"
                },
                "port": {
                    "description": "Configure the syslog server listened port.",
                    "type": "int"
                },
                "protocol": {
                    "description": "Select the protocol that connects to syslog server.",
                    "type": "string",
                    "enum": ["TCP","UDP","SSL"],
                    "default": "UDP"
                },
                "cert_signed": {
                    "description": "Use customer cert (0) or default self-signed cert (1)",
                    "type": "string",
                    "enum": [0, 1],
                    "default": "1"
                },
                "pkey": {
                    "description": "Private key of cert",
                    "type": "string"
                },
                "pkey_passwd": {
                    "description": "Enter the password of private key",
                    "type": "string"
                },
                "type": {
                    "description": " The type of the log template",
                    "type": "string",
                    "enum": ["default", "splunk", "cef0_arcsight", "azure_oms", "leef1_qradar", "custom"],
                    "default": "default"
                },
                "value": {
                    "description": "The template content of corresponding type",
                    "type": "string"
                },
                "facility": {
                    "description": "The Syslog facility value",
                    "type": "string",
                    "enum": ["local0", "local1","local2", "local3","local4", "local5","local6", "local7"],
                    "default": "local0"
                }
            }
        },
        "ESServer": {
            "description": "Configure elaseticsearch server for auditing log",
            "type": "object",
            "required": ["server_type", "syslog_type", "address", "port", "username", "password"],
            "properties":{
                "server_type": {
                    "description": "The type of the server, should be 'elasticsearch' here.",
                    "type": "string",
                    "enum": ["syslog", "elasticsearch"]
                },
                "syslog_type": {
                    "description": "The type of the log content, should be 'elog' here.",
                    "type": "string",
                    "enum": ["alog", "elog"]
                },
                "address": {
                    "description": "Configure the elasticsearch address or domain",
                    "type": "string"
                },
                "port": {
                    "description": "Configure the elasticsearch server listened port.",
                    "type": "int"
                },
                "username": {
                    "description": "The username of the elasticsearch server.",
                    "type": "string"
                },
                "password": {
                    "description": "The password of the elasticsearch server",
                    "type": "string"
                }
            }
        }
    }
}
After you update the configuration, the API will return successfully.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
object (SingleJsonObject)

Responses

Request samples

Content type
application/json
Example
{
  • "AuditEnable": 1,
  • "ServerType": "elasticsearch",
  • "AdvancedConfiguration": "disable",
  • "ESServer": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Global setting change success."
}

Server Connectivity Test

Test Connectivity of ElasticSearch Server or Syslog Server.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
object (SingleJsonObject)

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "message": "Bad request."
}

Enable/Disable Email Notification

Enable/Disable email notification.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
status
string
Enum: "enable" "disable"

Responses

Request samples

Content type
application/json
{
  • "status": "enable"
}

Get Custom Block Page Messages List

Get the list of custom block page messages

Includes both predefined messages and customized messages.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "limit": 8,
  • "total": 4,
  • "user_perm": "rw"
}

Create Custom Block Page Message

Create a Custom Block Page Message.

Each user can create up to 8 customized messages. Images that is available in messages can be viewed by the image list API.A body including all parameters and values in the request that conforms to the following JSON schema:
{
    "type": "object",
    "properties": {
        "name": {
            "description": "The unique name of the Custom Block Message, with number, letter or underscore. Required. Maximum length is 30.",
            "type": "string"
        },
        "description": {
            "description": "The description of Custom Block Message. optional.",
            "type": "string"
        },
        "content": {
            "description": "The type of the Cloud Connector, required.",
            "type": "array",
            "properties": {
                "name": {
                    "description": "name of page, required.",
                    "type": "string",
                    "enum": ["Attack Block Page", "Server Unavailable Page", "Captcha Enforcement Page", "Captcha Block Page"]
                },
                "id": {
                    "description": "Identity of message, required. ",
                    "type": "string",
                    "enum": ["url-block", "server-inaccessible", "captcha-page", "captcha-block"]
                },
                "group": {
                    "description": "Group name. required.",
                    "type": "string",
                    "enum": ["Security", "Captcha"]
                },
                "http_response_code": {
                    "description": "Response code",
                    "type": "number"
                },
                "description": {
                    "description": "optional",
                    "type": "string"
                },
                "msg": {
                    "description": "Content of message detail, in HTML format. required.",
                    "type": "string",
                }
            }
        }
    }
}

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
name
string

message name. maximum length 30

description
string

maximum length 256

type
string

Enum values: predefined, custom

content
Array of objects (SingleJsonObject)

In this array, there are 4 fixed items which name, group and http code are not editable

Responses

Request samples

Content type
application/json
{
  • "name": "new_page",
  • "description": "for test",
  • "type": "Custom",
  • "content": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "Custom block page was created successfully."
}

Modify Custom Block Page Message

Modify content of a Custom Block Message. Name is not editable.

Request body schema is same to the one of Creating Custom Block Page.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
name
string

message name. maximum length 30

description
string

maximum length 256

type
string

Enum values: predefined, custom

content
Array of objects (SingleJsonObject)

In this array, there are 4 fixed items which name, group and http code are not editable

Responses

Request samples

Content type
application/json
{
  • "name": "new_page",
  • "description": "for test",
  • "type": "Custom",
  • "content": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "Custom block page was updated successfully."
}

Delete Custom Block Page Message

Delete a Custom Block Page Message.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
query Parameters
name
required
string

message name. Predefined messages can not be deleted.

Responses

Response samples

Content type
application/json
{
  • "message": "Custom block page was deleted successfully"
}

Clone Custom Block Page Message

Create a custom block page message from existing one

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
to_name
string

new message name

from_name
string

cloned from this message

Responses

Request samples

Content type
application/json
{
  • "from_name": "Existing message name that is to be cloned",
  • "to_name": "new message name"
}

Response samples

Content type
application/json
{
  • "message": "Operation is successful"
}

Get Custom Block Page Message Detail

Get the detailed information of Custom Block Page Message. Response includes HTML content.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
message_name
required
string

Responses

Response samples

Content type
application/json
{
  • "name": "new_block_url",
  • "description": "Block and display error",
  • "type": "Custom",
  • "content": [
    ]
}

Get Custom Block Page Images list

Get the list of Custom Block Page images, including predefined image.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 2,
  • "user_perm": "rw"
}

Upload New Custom Block Page Image

Upload Custom Block Page Image in base64 format.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
name
string

Image name. maximum length is 30

description
string

Description of image

image_type
string
Enum: "png" "gif" "jpg" "tiff"

image type

content
string

Image content. maximum size 24KB

Responses

Request samples

Content type
application/json
{
  • "name": "Company_wide_block",
  • "image_type": "png",
  • "content": "data:image/png;base64,VBORw0KGgoAAAANSUhEUgAAAEgAAA...",
  • "description": "Used for all blocking pages"
}

Response samples

Content type
application/json
{
  • "message": "Image '{{image_name}}' was uploaded successfully."
}

Modify existing Custom Block Page Image

Replace a existing Custom Block Page Image content with new image. Request body schema is same to the one of create.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
name
string

Image name. maximum length is 30

description
string

Description of image

image_type
string
Enum: "png" "gif" "jpg" "tiff"

image type

content
string

Image content. maximum size 24KB

Responses

Request samples

Content type
application/json
{
  • "name": "Company_wide_block",
  • "image_type": "png",
  • "content": "data:image/png;base64,VBORw0KGgoAAAANSUhEUgAAAEgAAA...",
  • "description": "Used for all blocking pages"
}

Response samples

Content type
application/json
{
  • "message": "Image '{{image_name}}' was edited successfully."
}

Delete Custom Block Page Image

Delete a Custom Block Page Image.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
query Parameters
name
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "Operation is successful"
}

Get fabric connector status list

Get fabric connector status list

Authorizations:
ApiRequestAuthorizer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Set fabric connection to FGT

Set fabric connection to FGT. Each user can create at most one connection.

Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
ip
string

FGT IP

port
string

FGT port

Responses

Request samples

Content type
application/json
{
  • "ip": "string",
  • "port": "string"
}

Response samples

Content type
application/json
{
  • "message": "Success"
}

Activate/Deactivate Fabric Connector

Change the status of selected Fabric connector to active or inactive. Path parameter ip should be in the format of 1_2_3_4

Authorizations:
ApiRequestAuthorizer
path Parameters
ip
required
string
Request Body schema: application/json
status
boolean

true to enable the connection

Responses

Request samples

Content type
application/json
{
  • "status": false
}

Response samples

Content type
application/json
{
  • "message": "Success"
}

Delete fabric connector

Delete selected fabric connector. Path parameter ip should be in the format of 1_2_3_4

Authorizations:
ApiRequestAuthorizer
path Parameters
ip
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "Success"
}

Log&Report

Global settings of log and report configuration.

Get Report Definitions List

Get report list.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
query Parameters
cursor
string
  • To list the items of the first page, leave the cursor value empty.
  • To go forward to next page, get the value of the "next_cursor" parameter in the result of the current page, then paste it here as the cursor value.
  • To go to the previous page, get the "prev_cursor" value, then paste it here as the cursor value.
filter
string

You can filter by report_name and recipients. It is in JSON format.

forward
string
  • True: the next page;
  • False: the previous page.
size
string

The valid page size range is 10-50.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 4,
  • "user_perm": "rw",
  • "next_cursor": null,
  • "prev_cursor": "eyJyZXBvcnRfaWQiOiB7IlMiOiAiNWYwNzc0ZDYtYjhlZi0xMWVhLWI0OTYtNWFkODk4YjEzNDBmIn0sICJvd25lcl9pZCI6IHsiUyI6ICI5MDYyMDMifX0="
}

Create New Report Definition

Create a report definition.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
report_id
string

report uuid

report_name
string

report name

time_range
string

24h|7d|14d|30d

recipients
string
contents
Array of strings

List of report contents

schedule_str
string

GUI "Schedule" string, e.g., "At 00:00 on Monday of Every Week"

object

schedule

disabled
boolean

Schedule state is started (true) or suspended (false)

Responses

Request samples

Content type
application/json
{
  • "report_name": "weekly report",
  • "time_range": "7d",
  • "recipients": "me@my.domain.com",
  • "applications": [
    ],
  • "contents": [
    ],
  • "schedule_info": {
    }
}

Response samples

Content type
application/json
{
  • "message": "The operation was successful."
}

Update Report Definition

Update a report definition.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
report_id
string

report uuid

report_name
string

report name

time_range
string

24h|7d|14d|30d

recipients
string
contents
Array of strings

List of report contents

schedule_str
string

GUI "Schedule" string, e.g., "At 00:00 on Monday of Every Week"

object

schedule

disabled
boolean

Schedule state is started (true) or suspended (false)

Responses

Request samples

Content type
application/json
{
  • "report_id": "7bb91fe5-5bd3-447a-9273-bda0c03a096a",
  • "time_range": "24h",
  • "recipients": "me@my.domain.com",
  • "applications": [
    ],
  • "contents": [
    ],
  • "schedule_info": {
    }
}

Response samples

Content type
application/json
{
  • "message": "The operation was successful."
}

Delete Report Definition

Delete weekly report definition.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
query Parameters
report_id
required
string

The report ID. Can be found in Report Detail response or Report List Response.

Responses

Response samples

Content type
application/json
{
  • "message": "The operation was successful."
}

Get Report Definition Detail

Get weekly report list.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
report_id
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Activate/Deactivate Report Schedule

Deactivate a report means to pause the schedule, while activate a report means to recover the schedule.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Example Request:

Activate Report Request Body
{
    "action": "activate",
    "report_id": "6a1ce2b2-b8fd-11ea-954f-d63461e01797"
}
Deactivate Report Request Body
{
    "action": "deactivate"
    "report_id": "6a1ce2b2-b8fd-11ea-954f-d63461e01797"
}
Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
report_id
string

report uuid

action
string

activate or deactivate

report_name
string

report name

Responses

Request samples

Content type
application/json
{
  • "action": "activate|deactivate",
  • "report_id": "{{report_id}}"
}

Response samples

Content type
application/json
Example
{
  • "message": "The operation was successful."
}

Get Audit Logs List

List the current audit logs.

Authorizations:
ApiRequestAuthorizer
query Parameters
filter
string

Array like string. Each element shall be JSON like object. Basic structure is

[
    {
        "id":"{log_field_name}",
        "logic":{
            "is":{"string":true},
            "NOT":{1 or None},
            "RANGE":{1 or None}
        },
        "value":["{field_value_1}", "field_value_2"]
    }
]

Add NOT:1 to exclude given values. Add RANGE:1 to tell that the given filter value is range type (at least two values). Value is an array containing multiple values. The logic between these values is OR logic.

size
integer

Page size. The range shall be [20, 100].

page
integer

Page number. The page number shall be less than 100.

Responses

Response samples

Content type
application/json
{
  • "total": 2,
  • "hits": [
    ]
}

Get Audit Log

Fetch the audit log detail.

Authorizations:
ApiRequestAuthorizer
path Parameters
log_id
required
string

Message ID for each log.

Responses

Response samples

Content type
application/json
{
  • "_id": "a4c9f9d6-dc69-3259-8010-bab5bf9d79f6",
  • "user_id Detail": "1234567890",
  • "username": "test@example.com",
  • "endpoint_id": "2549643009",
  • "domain": "test.waasonline.com",
  • "app_name": "TEST_APP",
  • "timestamp": 1680650258347,
  • "level": "INFO",
  • "action": "EDIT",
  • "body": "Module Known Attack of application TEST_APP updated",
  • "has_detail": true,
  • "old": {
    },
  • "new": {
    }
}

Get Account Usage History

Example Request:

Get Account Usage History

/security_reports/account_usage/history

Authorizations:
ApiRequestAuthorizer

Responses

Response samples

Content type
application/json
{
  • "exceeded": false,
  • "contract_type": "fortinet",
  • "usage_type": "bandwidth",
  • "months": [
    ]
}

Get Account Usage Detail

Example Request:

Get Account Usage Detail

/security_reports/account_usage/detail/202402

Authorizations:
ApiRequestAuthorizer
path Parameters
yyyymm
required
string

like 202402

Responses

Response samples

Content type
application/json
{
  • "contract_type": "fortinet",
  • "usage_type": "bandwidth",
  • "days": [
    ]
}

Threat Analytics

This section shows how to configure threat analytics.

Get Data of Incidents Dashboard

Get the global setting configurations.

Authorizations:
ApiRequestAuthorizer
query Parameters
widget_id
required
string

widget names. Could be one of threats_timeline, incidents_timeline, srccountry, attack_type, high_risk or http_host

action
string

Filtered by action values, could be all, block or monitor.

host
string
time_range
string

Could be one of 24h, 240h (10 days) or 720h (30 days)

Responses

Response samples

Content type
application/json
Example
{
  • "start": 1649888460000,
  • "end": 1652480460000,
  • "line_data": [
    ]
}

Get Incidents List

Example Request:

Get Incidents List with default params

/threat_analytics/incidents?size=20&page=1&local_timezone=-420&time_range=7d&filter=%5B%5D

Get Incidents List with filters

/threat_analytics/incidents?size=20&page=1&local_timezone=-420&time_range=7d&filter=%5B%7B%22id%22%3A%22action%22%2C%22logic%22%3A%7B%22is%22%3A%7B%22enum%22%3Atrue%7D%2C%22search%22%3A%22string%22%7D%2C%22value%22%3A%5B%22block%22%5D%7D%2C%7B%22id%22%3A%22risk%22%2C%22logic%22%3A%7B%22is%22%3A%7B%22string%22%3Atrue%7D%2C%22search%22%3A%22string%22%7D%2C%22value%22%3A%5B%22Moderate%22%5D%7D%2C%7B%22id%22%3A%22srccountry%22%2C%22logic%22%3A%7B%22is%22%3A%7B%22enum%22%3Atrue%7D%2C%22search%22%3A%22string%22%7D%2C%22value%22%3A%5B%22Japan%22%5D%7D%2C%7B%22id%22%3A%22acknowledged%22%2C%22logic%22%3A%7B%22is%22%3A%7B%22string%22%3Atrue%7D%2C%22search%22%3A%22string%22%2C%22splitter%22%3A%22%2C%22%7D%2C%22value%22%3A%5B%22true%22%5D%7D%5D

Authorizations:
ApiRequestAuthorizer
query Parameters
size
string

Should be integer and greater than 0

page
string

Should be integer and greater than 0

time_range
string

Could be 24h-last 24 hours, 240h-last 10 days, or 720h-last 30 days.

filter
string

HTTP Encode string which should be able to parsed to json format.

Responses

Response samples

Content type
application/json
Example
{
  • "total": 3,
  • "result": [
    ]
}

Get Incident Detail

Authorizations:
ApiRequestAuthorizer
path Parameters
incident_id
required
string

like us-east-1_4_120

Responses

Response samples

Content type
application/json
{
  • "incident_id": "us-east-1_4_120",
  • "risk": "Moderate",
  • "description": "SQL Injection by 4 IPs from Taiwan and Japan",
  • "host_desc": "On host test.demo.com",
  • "acknowledged": false,
  • "false_positive": false,
  • "threat_count": 43,
  • "block_count": 43,
  • "lasttime": 1651740557000,
  • "blocked": "100.0%",
  • "ep_id": "4488963652",
  • "app_name": "test_app",
  • "comments": [ ],
  • "attack_types": [
    ],
  • "cve_ids": [
    ],
  • "hosts": [
    ],
  • "src_countries": [
    ],
  • "firsttime": 1651733378000,
  • "src_ips": [
    ],
  • "http_urls": [
    ]
}

Update Incident to Add Comment or Tags

Authorizations:
ApiRequestAuthorizer
path Parameters
incident_id
required
string
Request Body schema: application/json
object (SingleJsonObject)

Responses

Request samples

Content type
application/json
{
  • "false_positive": true
}

Response samples

Content type
application/json
Example
{
  • "result": "Success"
}

Get Timeline Data of Incident

Authorizations:
ApiRequestAuthorizer
path Parameters
incident_id
required
string

Responses

Response samples

Content type
application/json
{
  • "start": 1651733378000,
  • "end": 1651740557000,
  • "line_data": [
    ]
}

Get Aggregated Data of Incident

Authorizations:
ApiRequestAuthorizer
path Parameters
incident_id
required
string
query Parameters
name
string

Set name='logs' to view attack log samples of a specific incident. This parameter also can be used to group incidents by value. Could be one of app, attack_type, srccountry, http_host, src_ip, http_url, signature_cve_id, owasp_top10, logs.

Responses

Response samples

Content type
application/json
Example
{
  • "total": 1,
  • "result": [
    ]
}

Get Insight Events

Get insight events by event type.

Requires API key secret as Authorization request header. See Authentication section for API key secret details.

Authorizations:
ApiRequestAuthorizer
query Parameters
type
string

Events type should be in 'exposed_server', 'trust_ip', 'unprotectd_host', 'monitor_service', 'waf_config_alarm'

cursor
string

To list the items of the first page, leave the cursor value empty. To go forward to next page, get the value of the "next_cursor" parameter in the result of the current page, then paste it here as the cursor value. To go to the previous page, get the "prev_cursor" value, then paste it here as the cursor value.

size
string

An integer, the page size. The value shall be 10, 20, 30.

forward
string

True: the next page;

False: the previous page.

Responses

Response samples

Content type
application/json
Example
{
  • "detail": "Successfully",
  • "result": {
    }
}

Insight Events Action

Execute insight events action.

Requires API key secret as Authorization request header. See Authentication section for API key secret details.

Example Request:

Apply Trust IP Events

/threat_analytics/insight?id={id}&type=trust_ip&action={action}&malicious_ip={ip}

Apply Unprotection Host Events

/threat_analytics/insight?id={id}&type=unprotected_host&action={action}

Ack Monitor Events

/threat_analytics/insight?id={id}&type=monitor_service&action={action}&threat_type={type}

Apply Waf Config Alarm Events

/threat_analytics/insight?id={id}&type=waf_config_alarm&status={status}&configuration={configuration}

Authorizations:
ApiRequestAuthorizer
query Parameters
id
required
string

Application epid

type
required
string

Events type should be in 'trust_ip', 'unprotectd_host', 'monitor_service', 'waf_config_alarm'

action
string

Excute action to application; 'apply': means approve and change configuration to related module

'ack': means ignore the events

status
string

This parameter is used when the type is 'waf_config_alarm' and the value is 'disable' or 'alert'.

configuration
string

This parameter is used when the type is 'waf_config_alarm' and the value is 'Block Mode', 'KnownAttacks', 'DDos' or 'Request Limit'.

Responses

Response samples

Content type
application/json
{ }

Get Insight Events Summary

Get insight events summary.

Requires API key secret as Authorization request header. See Authentication section for API key secret details.

Authorizations:
ApiRequestAuthorizer

Responses

Response samples

Content type
application/json
{
  • "detail": "Successfully",
  • "result": {
    }
}

Attack Logs

This section shows how to configure attack logs.

List Available Storage Regions

Returns a list of available region names which contains attack logs of your existing applications.

The possible values include ['cloud_us-east-1','cloud_eu-central-1', 'onpremise_us-east-1' and 'onpremise_eu-central-1'].

Authorizations:
ApiRequestAuthorizer

Responses

Response samples

Content type
application/json
Example
[
  • "cloud_us-east-1",
  • "cloud_eu-central-1"
]

Attack Logs List

Return list of attack logs from given storage region. Attack logs of your applications may be stored in multiple regions depending on your origin server location, you must provide one region name in URL to specify from where to read logs.

This API returns up to 10000 logs which meet existing filters.

Authorizations:
ApiRequestAuthorizer
path Parameters
storage_region
required
string
Enum: "cloud_us-east-1" "cloud_eu-central-1" "onpremise_us-east-1" "onpremise_eu-central-1"
Example: cloud_us-east-1

Region name in which the logs are stored.

query Parameters
time_range
string
Example: time_range=24h

range of generated time of attack logs.

page
number
Example: page=1

page number, starting from 1

size
number
Example: size=20

Number of logs in one page. maximum allowed value is 100.

filter
string
Example: filter=%5B%7B%22id%22%3A%22srccountry%22%2C%22logic%22%3A%7B%22RANGE%22%3A0%2C%20%22NOT%22%3A0%7D%2C%22value%22%3A%5B%22country1%22%2C%20%22country2%22%5D%7D%5D
The filter value must be Array like string. Each element shall be JSON like object and encoded as URI component. Filter should be with format like: [{"id":"srccountry","logic":{"RANGE":0, "NOT":0},"value":["country1", "country2"]}]. Set NOT=1 to exclude given values. Set RANGE=1 to filter by range. Supported filter keys are: 'srccountry', 'ep_domain', 'app_name', 'action', 'log_id', 'signature_id', 'signature_cve_id', 'http_host', 'http_url', 'http_method', 'http_refer', 'http_agent', 'http_version', 'msg', 'msg_id', 'service', 'main_type', 'sub_type', 'owasp_top10', 'src_port', 'threat_level', 'date_time'.

Responses

Response samples

Content type
application/json
Example
{
  • "total": 123,
  • "hits": [
    ]
}

Get Attack Log Detail

Returns detail data, especially the packet detail, of a selected attack log.

Authorizations:
ApiRequestAuthorizer
path Parameters
storage_region
required
string
Enum: "cloud_us-east-1" "cloud_eu-central-1" "onpremise_us-east-1" "onpremise_eu-central-1"
Example: cloud_us-east-1

region name of attack log are stored in.

log_uuid
required
string
Example: 0f05848f-ccab-43ce-a210-7e7f6d8cde7e

log uuid.

Responses

Response samples

Content type
application/json
Example
{
  • "msg_id": "000000232814",
  • "msg": "Known Attacks: Known Exploits violation in URL",
  • "ep_id": "7542132475",
  • "app_name": "kris-multiple-domain-same-root",
  • "ep_domain": "krisqa.waasonline.net",
  • "platform": "cloud",
  • "user_id": "feaf049e-9a68-11eb-a264-0a7a34043d2f",
  • "user_name": "1245460@qq.com",
  • "main_type": "Known Attacks",
  • "sub_type": "Known Exploits",
  • "log_id": "20000200",
  • "src_ip": "139.144.96.150",
  • "srccountry": "Australia",
  • "owasp_top10": "A06:2021-Vulnerable and Outdated Components",
  • "date_time": "2023-03-07T04:03:46+01:00",
  • "action": "Block",
  • "threat_weight": "50",
  • "signature_cve_id": "N/A",
  • "login_user": "Unknown",
  • "country_flag": "AU",
  • "backend_service": "unknown",
  • "signature_id": "090300053",
  • "bot_info": { },
  • "http_method": "GET",
  • "http_host": "krisqaauth.waasonline.net",
  • "http_url": "/.DS_Store",
  • "http_agent": "Go-http-client/1.1",
  • "threat_level": "Substantial",
  • "http_refer": "none",
  • "http_version": "1.x",
  • "packet": {
    },
  • "ml_log_sample_arglen_mean": "0.000000",
  • "ml_log_hmm_probability": "0.000000",
  • "ml_svm_accuracy": "none",
  • "ml_svm_log_match_types": null,
  • "ml_svm_log_main_types": "0",
  • "ml_domain_index": "0",
  • "ml_log_arglen": "0",
  • "ml_arg_dbid": "0",
  • "ml_url_dbid": "0",
  • "ml_log_sample_prob_mean": "0.000000",
  • "src_port": "43114",
  • "service": "https/tls1.3"
}

Get Suggested Filter Options

Return top 5 active values only.The suggested values are generated based on existing filters, including the time range filter.
Supported filter keys include: ["action", "log_id", "main_type", "sub_type", "threat_level", "srccountry", "src_ip","msg", "src_port", "signature_id", "signature_cve_id", "owasp_top10", "service", "http_url","http_host", "http_method", "http_version", "http_refer", "http_agent", "login_user","app_name", "device_id", "policy_name"]. 'service' represents HTTP protocol, and 'log_id' represents Attack ID.

The 'app_name' is only available for Cloud logs, while the 'device_id' (AKA: SN of On-Premise devices) and 'policy_name' are only available for On-Premise logs.

Authorizations:
ApiRequestAuthorizer
path Parameters
storage_region
required
string
Enum: "cloud_us-east-1" "cloud_eu-central-1" "onpremise_us-east-1" "onpremise_eu-central-1"
Example: cloud_us-east-1

region name of attack log are stored in.

query Parameters
key
required
string
Example: key=srccountry

filter key name.

time_range
string
Example: time_range=24h

range of generated time of attack logs.

filter
string
Example: filter=%5B%7B%22id%22%3A%22ep_domain%22%2C%22logic%22%3A%7B%22RANGE%22%3A0%2C%20%22NOT%22%3A1%7D%2C%22value%22%3A%5B%22www.test.com%22%5D%7D%5D

filter strings. Filter should be with format like: [{"id":"ep_domain","logic":{"RANGE":0, "NOT":1},"value":["www.test.com"]}]. The value must be encoded as URL component.

Responses

Response samples

Content type
application/json
Example
[
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    }
]

Get Information of Signature

This API endpoint is available for cloud attack logs only.It returns extra information like signature name of the signature as well as parameter name, cookie name and URL which are required to add exception of this signature.
Authorizations:
ApiRequestAuthorizer
path Parameters
storage_region
required
string
Enum: "cloud_us-east-1" "cloud_eu-central-1" "onpremise_us-east-1" "onpremise_eu-central-1"
Example: cloud_us-east-1

region name of attack log are stored in

log_uuid
required
string
Example: 0f05848f-ccab-43ce-a210-7e7f6d8cde7e

log uuid

module_name
required
string
Example: signature_exception

module name

query Parameters
signature_id
required
string
Example: signature_id=090500348

signature_id

Responses

Response samples

Content type
application/json
{
  • "summary": "Get information of signature",
  • "value": {
    }
}

Configure Application based on Attack Log

You can use this API to add a signature into exception.Supported action includes ['Add signature exception', 'Add ML argument exception', 'Rebuild URL'].

To add exception of a signature, you need some extra information which could be retrieved by GET method of this API.

You can also add a signature exception to a template, so that the exception could be applied to all applications which are bound to this template.

This API endpoint is available for cloud attack logs only.

Authorizations:
ApiRequestAuthorizer
path Parameters
storage_region
required
string
Enum: "cloud_us-east-1" "cloud_eu-central-1" "onpremise_us-east-1" "onpremise_eu-central-1"
Example: cloud_us-east-1

region name of attack log are stored in.

log_uuid
required
string
Example: 0f05848f-ccab-43ce-a210-7e7f6d8cde7e

log uuid.

module_name
required
string
Example: one of 'signature_exception', 'ml_arg_exception', 'ml_rebuild_url'

configued module name

Request Body schema: application/json
object (SingleJsonObject)

Responses

Request samples

Content type
application/json
Example
{
  • "exception rule": {
    },
  • "template": "<template_id>"
}

Response samples

Content type
application/json
{
  • "detail": "success"
}

WAF Gateways

This section shows how to configure waf gateways.

Get Gateway List

Authorizations:
ApiRequestAuthorizer
query Parameters
forward
string
Example: forward=true

True: the next page; False: the previous page.

filter
string
Example: filter=%5B%7B%22id%22%3A%22domain_name%22%2C%22logic%22%3A%7B%7D%2C%22value%22%3A%5B%22waf.domain-999.com%22%5D%7D%5D

The filter should like:

[
    {
        "id":"domain_name",
        "logic":{},
        "value":["waf.domain-999.com"]
    }
]

then URL encode this filter string and put this in filter parameter. The available "id" of filter are

["sn", "status", "location", "hostname", "expiration_date", "product_model"]
cursor
string

To list the items of the first page, leave the cursor value empty. To go forward to next page, get the value of the "next_cursor" parameter in the result of the current page, then paste it here as the cursor value. To go to the previous page, get the "prev_cursor" value, then paste it here as the cursor value.

size
string
Example: size=10

Should be integer and greater than 0

Responses

Response samples

Content type
application/json
Example
{
  • "prev_cursor": "",
  • "next_cursor": "",
  • "total": 2,
  • "devices": [
    ]
}

Update Data Storage of Selected Gateway

Authorizations:
ApiRequestAuthorizer
path Parameters
sn
required
string
Example: FVVM0000000000XX

The serial number

Request Body schema: application/json
location
string

Responses

Request samples

Content type
application/json
{
  • "locations": "US East (Ohio)"
}

Response samples

Content type
application/json
{
  • "detail": "Successfully"
}

Get List of Available Settings

Authorizations:
ApiRequestAuthorizer

Responses

Response samples

Content type
application/json
{
  • "locations": [
    ]
}

Get WAF Gateway List

Authorizations:
ApiRequestAuthorizer
query Parameters
forward
string
Example: forward=true

True: the next page; False: the previous page.

filter
string
Example: filter=%5B%7B%22id%22%3A%22domain_name%22%2C%22logic%22%3A%7B%7D%2C%22value%22%3A%5B%22waf.domain-999.com%22%5D%7D%5D

The filter should like:

[
    {
        "id":"domain_name",
        "logic":{},
        "value":["waf.domain-999.com"]
    }
]

then URL encode this filter string and put this in filter parameter. The available "id" of filter are

["sn", "status", "location", "hostname", "expiration_date", "product_model"]
cursor
string

To list the items of the first page, leave the cursor value empty. To go forward to next page, get the value of the "next_cursor" parameter in the result of the current page, then paste it here as the cursor value. To go to the previous page, get the "prev_cursor" value, then paste it here as the cursor value.

size
string
Example: size=10

Should be integer and greater than 0

Responses

Response samples

Content type
application/json
Example
{
  • "prev_cursor": "",
  • "next_cursor": "",
  • "total": 2,
  • "devices": [
    ]
}

Update Data Storage of Selected WAF Gateway

Authorizations:
ApiRequestAuthorizer
path Parameters
sn
required
string
Example: FVVM0000000000XX

The serial number

Request Body schema: application/json
location
string

Responses

Request samples

Content type
application/json
{
  • "locations": "US East (Ohio)"
}

Response samples

Content type
application/json
{
  • "detail": "Successfully"
}

Get List of Available Data Storages

Authorizations:
ApiRequestAuthorizer

Responses

Response samples

Content type
application/json
{
  • "locations": [
    ]
}

Template Basic

This section shows how to configure template.

Get Templates List

List the current templates.

Authorizations:
ApiRequestAuthorizer

Responses

Response samples

Content type
application/json
{
  • "result": [
    ],
  • "total": 6,
  • "user_perm": "rw"
}

Create Template

Create a new template.

Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
name
string

Template name

endpoints
Array of strings

Endpoints list

Responses

Request samples

Content type
application/json
{
  • "endpoints": [
    ],
  • "name": "template-name"
}

Response samples

Content type
application/json
{
  • "detail": "Template created"
}

Clone Template

Create a new template from the existing one.

Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
name
string

Template name

from_template
string

Source template ID

Responses

Request samples

Content type
application/json
{
  • "name": "template-clone-name",
  • "from_template": "e50cbdc9-e4fa-5aca-963c-f115fb63b7ba"
}

Response samples

Content type
application/json
{
  • "detail": "Template cloned"
}

Get Template

Fetch the template detail.

Authorizations:
ApiRequestAuthorizer
path Parameters
template_id
required
string

Template ID

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Template

Update the template.

Authorizations:
ApiRequestAuthorizer
path Parameters
template_id
required
string

Template ID

Request Body schema: application/json
endpoints
Array of strings

Endpoint ID

Responses

Request samples

Content type
application/json
{
  • "endpoints": [
    ]
}

Response samples

Content type
application/json
{
  • "detail": "Template updated"
}

Delete Template

Delete the template.

Authorizations:
ApiRequestAuthorizer
path Parameters
template_id
required
string

Template ID

Responses

Response samples

Content type
application/json
{
  • "detail": "Template deleted"
}

Application Basic

This section shows how to configure application.

Do Connection Test

Test whether the web service of a server for the protected domain is available or not.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
query Parameters
domain_name
required
string

The fully-qualified domain name (FQDN) of the server.

backend_type
required
string

The IP or Domain which indicates how you want to define the server. The valid values are HTTP and HTTPS.

backend_ip
required
string

The IP address of the origin server.

backend_port
string

The TCP port number where the server listens for connections. The number is an integer, and the valid range is from 1 to 65,535.

Responses

Response samples

Content type
application/json
{
  • "network_connectivity": 1,
  • "head_availability": 1,
  • "head_status_code": 404
}

Get Endpoint Modules

Get all modules' status of the EndPoint. A sample response body conforms to the following JSON schema:

  • id: The ID of the module
  • status: If the module is enabled or disabled
  • inherited: If the module uses the configuration which is inherited from the template
    [
    {
      "id": "knownattacks",
      "status": "disable",
      "inherited": "enable"
    },
    ]
    
    Requires API key secret as Authorization request header. See Request format section for API key secret details.
Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    }
]

Update Endpoint Modules

Modify Modules configuration of the Endpoints. A sample request body conforms to the following JSON schema:

  • id: The ID of the module
  • status: If the module is enabled or disabled
    [
    {
      "id": "knownattacks",
      "status": "disable"
    },
    ]
    
    After you update the configuration, the API will return successfully.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
Array
id
required
string
Enum: "known_attacks" "anomaly_detection" "information_leakage" "cookie_security" "file_protection" "parameter_validation" "http_header_security" "csrf_protection" "mitb_protection" "request_limits" "url_access" "ip_protection" "known_bots" "threshold_detection" "ml_bot_detection" "biometrics_based_detection" "bot_deception" "ddos_prevention" "custom_rule" "web_socket_security" "api_protection" "api_gateway" "mobile_api_protection" "json_protection" "xml_protection_policy" "ml_api_protection" "account_takeover" "rewriting_requests" "caching_compression" "global_trust_list_parameter" "content_routing" "cors_protection"

The ID of the module

status
required
string
Enum: "enable" "disable"

If the module is enabled or disabled

inherited
string
Enum: "enable" "disable"

If the module uses the configuration which is inherted from the template

Responses

Request samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
{
  • "detail": "Module configuration changed successfully."
}

Do DNS Lookup

Check DNS lookup utility. FortiWeb Cloud parses the protected domain name specified to obtain the IP and CNAME if any.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
domain
string

Responses

Request samples

Content type
application/json
{
  • "domain": "www.kernel.org"
}

Response samples

Content type
application/json
{
  • "A": [
    ],
  • "CNAME": [
    ]
}

List waf ip address

List allow WAF ip of applications.`/misc/management_ip?filter={{filter}}`

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
query Parameters
filter
string

The filter should like: [{"id":"domain_name", "logic":{}, "value":["www1.demo.com"]}], then URL encode this filter string and put this in filter parameter.

The available "id" of filter are ["app_name", "domain_name", "platform", "ep_id"].

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

List Applications

List all applications that you own.`/application?size={{size}}&filter={{filter}}&forward={{forward}}&cursor={{cursor}}`
List all applications with basic information.`/application?partial={{partial}}`
List predefined custom ports.`/application?custom_ports={{custom_ports}}`

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
query Parameters
forward
string

True: the next page.

False: the previous page.

filter
string

The filter should like: [{"id":"domain_name", "logic":{}, "value":["www1.demo.com"]}], then URL encode this filter string and put this in filter parameter.

The available "id" of filter are ["app_name", "domain_name", "block_mode", "platform", "owner", "data", "blocked_req", "req", "template_name"].

cursor
string

To list the items of the first page, leave the cursor value empty.

To go forward to next page, get the value of the 'next_cursor' parameter in the result of the current page, then paste it here as the cursor value.

To go to the previous page, get the 'prev_cursor' value, then paste it here as the cursor value.

size
string

An integer, the page size. The value shall be 10, 20, 30.

partial
string

Basic marker.

custom_ports
string

The vaules for the {{custom_ports}} are ['http', 'https', 'all']

Responses

Response samples

Content type
application/json
Example
{
  • "app_list": [
    ],
  • "total": 1,
  • "prev_cursor": "",
  • "next_cursor": "",
  • "can_add": 1
}

Create Application

Create a new application.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
app_name
string

The application name

Responses

Request samples

Content type
application/json
{
  • "app_name": "wl_us1",
  • "domain_name": "www.example.com",
  • "extra_domains": [
    ],
  • "custom_port": {
    },
  • "cdn_status": 0,
  • "region": "us-east-1",
  • "platform": "AWS",
  • "block_mode": 0,
  • "service": [
    ],
  • "server_address": "93.184.216.34",
  • "server_type": "https",
  • "server_country": "United States",
  • "head_availability": 1,
  • "head_status_code": 404,
  • "is_global_cdn": 1,
  • "continent": "NA"
}

Response samples

Content type
application/json
{
  • "detail": "Invalid HTTP method"
}

Get Application

Get some brief information of an application.`/application/{{ep_id}}`
Get application DNS status.`/application/{{ep_id}}?dns_resolve=true`

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

query Parameters
dns_resolve
boolean

Responses

Response samples

Content type
application/json
Example
{
  • "app_name": "wl_us1",
  • "domain_name": "www.example.com",
  • "block_mode": 0,
  • "fsa_status": 1
}

Update Application

Update application, including app_name, user alias, and CDN status.`/application/{{ep_id}}`
Update application DNS status.`/application/{{ep_id}}?dns_resolve=true`

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

query Parameters
dns_resolve
boolean
Request Body schema: application/json
object (SingleJsonObject)

Responses

Request samples

Content type
application/json
Example
{
  • "app_name": "test",
  • "user_name": "foo",
  • "cdn_status": 0,
  • "region": "us-east-1",
  • "is_global_cdn": 0,
  • "continent": "NA"
}

Response samples

Content type
application/json
{
  • "detail": "Get application status failed"
}

Delete Application

Delete an application.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "detail": "Get application status failed"
}

Configure Block Mode

Enable/Disable the block mode.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
block_mode
integer
Enum: 0 1

Select 0 to disable the block mode, or select 1 to enable the block mode

Responses

Request samples

Content type
application/json
{
  • "block_mode": 1
}

Response samples

Content type
application/json
{
  • "detail": "Get application status failed"
}

Fetch IP Region Information

Fetch the region of AWS service, geo-location and supported cluster region based on the given web server IP address.

A body including all parameters and values in the request that conforms to the following JSON schema:
{
    "type": "object",
    "required": ["ep_ip","domain_name"],
    "properties": {
        "ep_ip": {
            "description": "Endpoint IPv4 address",
            "type": "string",
        },
        "domain_name": {
            "description": "Domain name",
            "type": "string",
        },
        "extra_domains": {
            "description": "Extra domains list",
            "type": "array"
        }
    }
}

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
Request Body schema: application/json
extra_domains
Array of strings

The extra domain of the site

domain_name
string

The domain of the site

ep_ip
string

Ip of the site

Responses

Request samples

Content type
application/json
{
  • "ep_ip": "35.172.155.99",
  • "domain_name": "www.example.com",
  • "extra_domains": [
    ]
}

Response samples

Content type
application/json
{
  • "region": [ ],
  • "location": "United States",
  • "cluster": {
    }
}

Get Known Bot Info

Get the known bad bot list by category name.

Requires API key secret as Authorization request header. See Authentication section for API key secret details.

Authorizations:
ApiRequestAuthorizer
query Parameters
category
required
string

Category of bad bot. Should be one of the categories in DoS Spam Trojan Scanner Crawler

bots-type
required
string

Responses

Response samples

Content type
{
  • "detail": "successfully",
  • "result": {
    }
}

Dashboard

This section shows how to configure module dashboard.

Get Traffic Log Stats

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
query Parameters
count
string

Return the first N countries data

timespan
required
string

Time range to show the statistic. This parameter is required. No default value. Value could be one of ['last_4_hours', 'last_24_hours', 'last_7_days', 'last_14_days', 'last_30_days'].

Responses

Response samples

Content type
application/json
{
  • "United States": {
    },
  • "Australia": {
    },
  • "India": {
    },
  • "Canada": {
    },
  • "United Kingdom": {
    },
  • "France": {
    },
  • "Germany": {
    },
  • "China": {
    },
  • "Japan": {
    },
  • "Singapore": {
    }
}

Get Threat Level History for Application Dashboard

Get the information of threat level history on DASHBOARD tab.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string

The application ID, it can be obtained from List Applications API.

query Parameters
timespan
required
string
Enum: "last_24_hours" "last_7_days" "last_14_days" "last_30_days"
offset_hours
string

The value should be integer of -11~12, and the default value is 0. This value is required only when {{timespan}} equals to "last_7_days", "last_14_days", "last_30_days".

Responses

Response samples

Content type
application/json
{
  • "20190610T040000": {
    },
  • "20190610T050000": {
    },
  • "20190610T060000": {
    },
  • "20190610T070000": {
    },
  • "20190610T080000": {
    },
  • "20190610T090000": {
    },
  • "20190610T100000": {
    },
  • "20190610T110000": {
    },
  • "20190610T120000": {
    },
  • "20190610T130000": {
    },
  • "20190610T140000": {
    },
  • "20190610T150000": {
    },
  • "20190610T160000": {
    },
  • "20190610T170000": {
    },
  • "20190610T180000": {
    },
  • "20190610T190000": {
    },
  • "20190610T200000": {
    },
  • "20190610T210000": {
    },
  • "20190610T220000": {
    },
  • "20190610T230000": {
    },
  • "20190611T000000": {
    },
  • "20190611T010000": {
    },
  • "20190611T020000": {
    },
  • "20190611T030000": {
    },
  • "20190611T040000": {
    }
}

Get Threat Levels for Application Dashboard

Get the information of threat level values on Application DASHBOARD tab.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "level": 0,
  • "categories": { }
}

Get Data of Application Dashboard Widgets

Get data of widgets on Application Dashboard page.Parameter 'category' is required to specify which widget you want to view.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
query Parameters
category
required
string

The values for this variable are ["month_sum", "lic_info", "req", "tp"].It is required parameter and has no default value.

  • month_sum: Return the monthly statistics of the endpoint, such as total throughput, total requests, total blocked requests, the user's subscribed bandwidth, and usage bandwidth, etc.
  • lic_info: Return user's license type and the expiration date.
  • req: Return allowed requests and blocked requests.
  • tp: Return the HTTPS throughput and HTTP throughput.
timespan
required
string

This parameter is required if category equals to 'tp' or 'req'. Value could be one of ['last_hour', 'last_24_hours', 'last_7_days', 'last_14_days']. No default value.

local_timezone
string

Specify your local timezone with minutes format, like -480 (-08:00) or 120(+02:00).

Responses

Response samples

Content type
application/json
Example
{
  • "20190606T160000": {
    },
  • "20190606T170000": {
    },
  • "20190606T180000": {
    }
}

Get Server Status Data for Application Dashboard

Get the information of server status on DASHBOARD tab.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "servers": [
    ],
  • "counter": {
    }
}

Get OWASP Top 10 Data for Application Dashboard

Get OWASP TOP 10 data for Application Dashboard.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string

The application ID, it can be obtained from List Applications API.

query Parameters
timespan
required
string

Available values include: last_hour, last_24_hours and last_7_days

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    }
]

Get Traffic Log Method Statics

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
query Parameters
start_time
string

the start time of timespan

end_time
string

the end time of timespan

type
string

the type of query result only support "summary" and for "detail"

size
string

the result table size

page
string

the page number of requested information

filter
string

For example, for the Agent details table, the filter is{"http_method":"get"}

Responses

Response samples

Content type
application/json
Example
{
  • "details": {
    },
  • "summary": {
    }
}

Get Traffic Log URL Statics

Example Request:

Get Traffic Log URL Statics

/application/{ep_id}/traffic_summary/url_statistics?type=summary&start_time=1660254330143&end_time=1660340730143

Get Traffic Log URL Statics Detail 24 Hours

/application/:ep_id/traffic_summary/traffic_summary/url_statistics?type=details&start_time=1660254450854&end_time=1660340850854&page=1&size=5&sort_by=total_number&filter=%7B%22http_url%22%3A%22%2F%22%7D

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
query Parameters
start_time
string

the start time of timespan

end_time
string

the end time of timespan

type
string

the type of query result only support "summary" and for "detail"

size
string

the result table size

page
string

the page number of requested information

filter
string

For example, for the URL details table, the filter is "{?srccountry": ?canada, united state?, "http_url": ?/ip/*?}"

Responses

Response samples

Content type
application/json
Example
{
  • "details": {
    },
  • "summary": {
    }
}

Log Settings

This section shows how to configure module log settings.

Test Accessible of S3 Bucket

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Request Body schema: application/json
server_type
string
user_bucket_name
string
user_access_id
string
user_secret_key
string
user_account_region
string

Responses

Request samples

Content type
application/json
{
  • "server_type": "S3",
  • "user_bucket_name": "example-function",
  • "user_access_id": "xxx",
  • "user_secret_key": "xxx",
  • "user_account_region": "us-west-2"
}

Response samples

Content type
application/json
{
  • "detail": "Connect the Cloud Connector successfully."
}

Get Log Settings Configuration

Get endpoint log server configuration.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "attackCfg": {
    },
  • "enableAlarm": true,
  • "alarmMode": "advanced",
  • "basicRule": {
    },
  • "advancedRules": [
    ],
  • "logMaskRules": [
    ],
  • "logstash_traffic_config": {
    }
}

Update Log Settings Configuration

Update log server configuration.

A request body including all parameters and values is required. Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
object (SingleJsonObject)

Responses

Request samples

Content type
application/json
{
  • "attackCfg": {
    },
  • "enableAlarm": true,
  • "alarmMode": "basic",
  • "basicRule": {
    },
  • "advancedRules": [
    ],
  • "logstash_traffic_config": {
    }
}

Response samples

Content type
application/json
Example
{
  • "detail": "Logs settings were changed successfully."
}

Threat View

This section shows how to configure module threat view.

Get Threat Map Data

Get the information of threats by geographic region.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string

The application ID, it can be obtained from List Applications API.

query Parameters
start
required
string

The start time in millisecond format.

end
required
string

The end time in millisecond format.

count
required
integer <= 2000

An integer, log numbers that will be retrieved in one request. The maximum value is 2000.

Responses

Response samples

Content type
application/json
{
  • "details": [ ],
  • "total": 0,
  • "next_msg_id": false,
  • "next_start_time": false,
  • "end_time": "1557729179000",
  • "region": "us-east-1"
}

Get Threat View Statistics Data

Get the statistics information of threats. The result could be aggregated by srccountry or threat type.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string

The application ID, it can be obtained from List Applications API.

query Parameters
report_by
string
Example: report_by=main_type

Log field name that is used to group the result in grid. Supported values include owasp_top10, main_type, src_ip and srccountry.

filter
string
Example: filter=%7B%22http_url%22%3A%22test%22%2C%22main_type%22%3A%22Known%20Attacks%22%7D

A string, it can be deserialized as JSON object. The value shall be URL encoded. For example, filter object is like:

{
    "http_url": "test",
    "main_type": "Known Attacks"
}

and the value for this param here shall be like:

%7B%22http_url%22%3A%22test%22%2C%22main_type%22%3A%22Known%20Attacks%22%7D
end
string
Example: end=1665446400000

The end time of time range in millisecond format.

start
string
Example: start=1665360000000

The beginning time of time range in millisecond format.

count
string
Example: count=20

An integer, the number of logs in one page and the maximum value is 100.

tend_by
string
Example: tend_by=action

Log field name which is used to group data in chart view. The values can be http_method, action, etc.

sort_by
string
Example: sort_by=total_number

The field name which is used to sort the result. It must be present in response, like total_number, score, etc.

Responses

Response samples

Content type
application/json
Example
{
  • "details": [
    ],
  • "summary": {
    }
}

Get period blocked IPs related to the application

Get period blocked IPs related to the application

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string

The application ID, it can be obtained from List Applications API.

query Parameters
filter
string

Array like string. Each element shall be JSON like object. Basic structure is [{"id":"{field_name}","logic":{"is":{"string":true},"NOT":{1 or None} },"value":["{field_value_1}", "field_value_2"]}]. Add NOT:1 to exclude given values. Value is an array containing multiple values. The logic between these values is OR logic.

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Release the IP from being period blocked

Release the IP from being period blocked

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string

The application ID, it can be obtained from List Applications API.

query Parameters
ip
required
string

The IP to be released from being period blocked.

Responses

Response samples

Content type
application/json
{
  • "detail": "Invalid IP address."
}

Get Traffic Log Agent Statics

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string

The application ID, it can be obtained from List Applications API.

query Parameters
type
required
string
Enum: "summary" "detail"
Example: type=summary

The type of query result

start_time
required
string
Example: start_time=1660254596243

The start time of timespan

end_time
required
string
Example: end_time=1660340996243

The end time of timespan

page
integer >= 1
Example: page=1

The page number of requested information

size
integer [ 1 .. 100 ]
Default: 20
Example: size=10

The result table size (1-100)

filter
string

For example, for the Agent details table, the filter is {"srccountry": "canada, united state", "http_agent": "Mozilla/5.0*"}

Responses

Response samples

Content type
application/json
Example
{
  • "details": {
    },
  • "summary": {
    }
}

Get Traffic Log IP Statics

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string

The application ID, it can be obtained from List Applications API.

query Parameters
type
required
string
Enum: "summary" "detail"
Example: type=summary

The type of query result

start_time
required
string
Example: start_time=1660326562527

The start time of timespan

end_time
required
string
Example: end_time=1660330162527

The end time of timespan

page
integer >= 1
Example: page=1

The page number of requested information

size
integer [ 1 .. 100 ]
Default: 20
Example: size=10

The result table size (1-100)

sort_by
string
Default: "count_sum"
Enum: "count_sum" "average_http_request_bytes_sum" "average_http_response_bytes_sum"
Example: sort_by=count_sum

The field which will be sorted

dir
required
string
Enum: "req" "res"
Example: dir=req

The direction of the statistics

filter
string

For example, for the IP details table, the filter is {"srccountry": "canada, united state", "src": "207.10.*.*"}

Responses

Response samples

Content type
application/json
Example
{
  • "details": {
    },
  • "summary": {
    }
}

Get Traffic Log Retcode Statics

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string

The application ID, it can be obtained from List Applications API.

query Parameters
type
required
string
Enum: "summary" "detail"
Example: type=summary

The type of query result

start_time
required
string
Example: start_time=1660326562527

The start time of timespan

end_time
required
string
Example: end_time=1660330162527

The end time of timespan

page
integer >= 1
Example: page=1

The page number of requested information

size
integer [ 1 .. 100 ]
Default: 20
Example: size=10

The result table size (1-100)

filter
string

For example, for the Agent details table, the filter is {"http_retcode":"200"}

Responses

Response samples

Content type
application/json
Example
{
  • "details": {
    },
  • "summary": {
    }
}

Network

This section shows how to configure module network.

Do Pserver Health Check

Do health check on specific server, which helps client locate health check issues. Requires API key secret as Authorization request header. See Request format section for API key secret details.

path Parameters
ep_id
required
string

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
Array
string

Responses

Request samples

Content type
application/json
[
  • "18.140.15.165"
]

Response samples

Content type
application/json
{
  • "summary": "Success",
  • "value": {
    }
}

Get CRL Certificate

Get the information of CRL certificates configuration.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

query Parameters
forward
string

True: the next page.

False: the previous page.

cursor
string

To list the items of the first page, leave the cursor value empty.

To go forward to next page, get the value of the 'next_cursor' parameter in the result of the current page, then paste it here as the cursor value.

To go to the previous page, get the 'prev_cursor' value, then paste it here as the cursor value.

size
integer

An integer, the page size. The value shall be 10, 20, 30.

Responses

Response samples

Content type
application/json
{ }

Update CRL Certificate

Modify CRL certificates configuration.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
object (SingleJsonObject)

Responses

Request samples

Content type
application/json
No sample

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get Intermediate Certificate

Get the information of intermediate certificates configuration.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

query Parameters
forward
string

True: the next page.

False: the previous page.

cursor
string

To list the items of the first page, leave the cursor value empty.

To go forward to next page, get the value of the 'next_cursor' parameter in the result of the current page, then paste it here as the cursor value.

To go to the previous page, get the 'prev_cursor' value, then paste it here as the cursor value.

size
integer

An integer, the page size. The value shall be 10, 20, 30.

Responses

Response samples

Content type
application/json
{
  • "total": 2,
  • "prev_cursor": "eyJwb2xpY3lfbm...xIn19",
  • "next_cursor": "",
  • "hits": [
    ]
}

Update Intermediate Certificate

Modify intermediate certificates configuration.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
action
string
Enum: "import" "delete"

The type of the update operation

certificate
string

The intermediate certificate to be imported, required on action 'import'

id
integer

The certificate id to be deleted, required on action 'delete'

Responses

Request samples

Content type
application/json
Example
{
  • "action": "import",
  • "certificate": "-----BEGIN CERTIFICATE-----\nMIIETDCCAzSgAw...eCsTo\n-----END CERTIFICATE-----"
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get CRL Certificate Detail

Get the detail information of CRL certificate.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

query Parameters
id
integer
Example: id={{id}}

The ID of the SNI certificate.

Responses

Response samples

Content type
application/json
{ }

Get CA Certificate

Get the information of CA certificates configuration.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

query Parameters
forward
string

True: the next page.

False: the previous page.

cursor
string

To list the items of the first page, leave the cursor value empty.

To go forward to next page, get the value of the 'next_cursor' parameter in the result of the current page, then paste it here as the cursor value.

To go to the previous page, get the 'prev_cursor' value, then paste it here as the cursor value.

size
integer

An integer, the page size. The value shall be 10, 20, 30.

Responses

Response samples

Content type
application/json
{ }

Update CA Certificate

Modify CA certificates configuration.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
object (SingleJsonObject)

Responses

Request samples

Content type
application/json
No sample

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get CA Certificate Detail

Get the detail information of CA certificate.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

query Parameters
id
integer
Example: id={{id}}

The ID of the SNI certificate.

Responses

Response samples

Content type
application/json
{ }

Get Server CRL Certificate Detail

Get the detail information of origin server CRL certificate.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

query Parameters
pool_name
string
Example: pool_name={{pool_name}}

The server pool name.

server_index
integer
Example: server_index={{server_index}}

The index of the server.

id
integer
Example: id={{id}}

The index of the certificate.

Responses

Response samples

Content type
application/json
{ }

Get SNI Certificate

Get the information of SNI certificates configuration.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

query Parameters
forward
string

True: the next page.

False: the previous page.

cursor
string

To list the items of the first page, leave the cursor value empty.

To go forward to next page, get the value of the 'next_cursor' parameter in the result of the current page, then paste it here as the cursor value.

To go to the previous page, get the 'prev_cursor' value, then paste it here as the cursor value.

size
integer

An integer, the page size. The value shall be 10, 20, 30.

Responses

Response samples

Content type
application/json
{
  • "total": 3,
  • "prev_cursor": "eyJwb2xpY3lfbmFtZ....IxIn19",
  • "next_cursor": "",
  • "hits": [
    ]
}

Update SNI Certificate

Modify SNI certificates configuration.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
action
string
Enum: "import" "delete"

The type of the update operation

private_key
string

The private key of the certificate, required on action 'import'

passwd
string

The password of the encrypted private key, optional on action 'import'

certificate
string

The certificate to be imported, required on action 'import'

id
integer

The certificate id to be deleted, required on action 'delete'

Responses

Request samples

Content type
application/json
Example
{
  • "action": "import",
  • "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCA...6I6Bw\n-----END RSA PRIVATE KEY-----",
  • "certificate": "-----BEGIN CERTIFICATE-----\nMIIETDCCAzSgAw...eCsTo\n-----END CERTIFICATE-----"
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get Content Routing

Get the configuration of routings.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Content Routing

Update the configuration of routings.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
status
required
boolean
Default: false
Enum: true false

Enable/Disable content routing for current application.

required
Array of objects (RoutingPolicyList)

Responses

Request samples

Content type
application/json
{
  • "status": true,
  • "policy_list": [
    ]
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get SNI Certificate Detail

Get the detail information of SNI certificate.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

query Parameters
id
integer
Example: id={{id}}

The ID of the SNI certificate.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Get Servers

Get the configuration of servers.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Servers

Update the configuration of servers.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
required
Array of objects (ServerPool)

Responses

Request samples

Content type
application/json
{
  • "server_pools": [
    ]
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get Server CRL Certificate

Get the information of origin server CRL certificates configuration.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

query Parameters
forward
string

True: the next page.

False: the previous page.

cursor
string

To list the items of the first page, leave the cursor value empty.

To go forward to next page, get the value of the 'next_cursor' parameter in the result of the current page, then paste it here as the cursor value.

To go to the previous page, get the 'prev_cursor' value, then paste it here as the cursor value.

size
integer

An integer, the page size. The value shall be 10, 20, 30.

pool_name
string

The server pool name.

server_index
integer

The index of the server.

Responses

Response samples

Content type
application/json
{ }

Update Server CRL Certificate

Modify origin server CRL certificates configuration.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
action
string
Enum: "import" "delete"

The action.

id
integer

The index of the CRL certificate (for action "delete").

certificate
string

The CRL certificate (for action "import").

server_index
integer

The server index.

pool_name
string
Default: "default_pool"

The server pool name.

Responses

Request samples

Content type
application/json
No sample

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get Intermediate Certificate Detail

Get the detail information of intermediate certificate.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

query Parameters
id
integer
Example: id={{id}}

The ID of the intermediate certificate.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Get Server CA Certificate

Get the information of origin server CA certificates configuration.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

query Parameters
forward
string

True: the next page.

False: the previous page.

cursor
string

To list the items of the first page, leave the cursor value empty.

To go forward to next page, get the value of the 'next_cursor' parameter in the result of the current page, then paste it here as the cursor value.

To go to the previous page, get the 'prev_cursor' value, then paste it here as the cursor value.

size
integer

An integer, the page size. The value shall be 10, 20, 30.

pool_name
string

The server pool name.

server_index
integer

The index of the server.

Responses

Response samples

Content type
application/json
{ }

Update Server CA Certificate

Modify origin server CA certificates configuration.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
action
string
Enum: "import" "delete"

The action.

id
integer

The CA certificate index (for action "delete").

certificate
string

The CA certificate (for action "import").

server_index
integer

The index of the server.

pool_name
string
Default: "default_pool"

The server pool name.

Responses

Request samples

Content type
application/json
No sample

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get Server CA Certificate Detail

Get the detail information of origin server CA certificate.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

query Parameters
pool_name
string
Example: pool_name={{pool_name}}

The server pool name.

server_index
integer
Example: server_index={{server_index}}

The index of the server.

id
integer
Example: id={{id}}

The index of the certificate.

Responses

Response samples

Content type
application/json
{ }

Get Endpoints

Get the information of endpoints configuration.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "app_name": "wl_us1",
  • "ep_cname": "wl_us1.waasonline-test.54321.waasonline.net",
  • "domain_name": "www.example.com",
  • "extra_domains": [
    ],
  • "http_status": 0,
  • "http2_status": 0,
  • "https_status": 1,
  • "ipv6_option": 0,
  • "platform": "AWS",
  • "cert_type": 0,
  • "cert_auto_status": 0,
  • "ssl_options": {
    },
  • "custom_port": {
    },
  • "block_mode": 1,
  • "custom_block_page": "enable",
  • "block_url": "/test/block.html"
}

Update Endpoints

Modify endpoints configuration.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
app_name
string

The application name

Responses

Request samples

Content type
application/json
{
  • "app_name": "test",
  • "ep_cname": "test.demo.38906.waasonline.net.",
  • "domain_name": "test.demo.com",
  • "extra_domains": [
    ],
  • "block_mode": 1,
  • "ipv6_option": 0,
  • "platform": "AWS",
  • "cert_type": 0,
  • "cert_challenge_mode": 1,
  • "client_cert_verify": true,
  • "cert_auto_status": 0,
  • "block_url": "PredefinedMsg",
  • "http_status": 1,
  • "https_status": 1,
  • "http2_status": 0,
  • "ssl_options": {
    },
  • "custom_http_port": 8080,
  • "custom_https_port": 443
}

Response samples

Content type
application/json
{
  • "detail": "Request unauthorized"
}

Security Rules

This section shows how to configure module security rules.

Get Signature Info

Get the signature information.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
query Parameters
attack_category
string

The signature category name such as 'Cross Site Scripting', 'Generic Attacks'.

signature_id
string
sensitivity_level
string
cve_number
string
keywords
string

Responses

Response samples

Content type
application/json
Example
{
  • "Trojans": [
    ]
}

Get Exception

Get the information of signature exception.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

query Parameters
signatureid
string

The signature ID.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Exception

Update the information of signature exception.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
required
Array of objects (SignatureExceptionItem)

Responses

Request samples

Content type
application/json
{
  • "exception rule": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get Parameter Validation

Get the configuration of parameter validation.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Parameter Validation

Update the configuration of parameter validation.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (ParameterValidation)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get Information Leakage

Get the configuration of information leakage.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Information Leakage

Update the configuration of information leakage.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (InformationLeakage)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get Cookie Security

Get the configuration of cookie security.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Cookie Security

Update the configuration of cookie security.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (CookieSecurity)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get File Protection

Get the configuration of file protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update File Protection

Update the configuration of file protection.

The table below shows the keys and values of "file-type-id" and "file-type-name".

file-type-idfile-type-name
00001GIF
00002JPG
00010BMP
00018PNG
00019TIFF/TIF
00023Windows Metafile Format(.wmf)
00024Corel Draw Picture
00028Windows Icon
00030Microsoft Document Image(.mdi)
00032Windows Enhanced Metafile(.emf)
00038Photoshop Image File(.psd)
00050JPEG-2000 Image File Format(.jp2)
00054Multipage PCX Bitmap File(.dcx)
00059XPS
00089TXT
00060Word(.docx)
00061Word Macro-Enabled(.docm)
00062Word Template(.dotx)
00063Word Macro-Enabled Template(.dotm)
00064Excel(.xlsx)
00065Excel Macro-Enabled(.xlsm)
00066Excel Template(.xltx)
00067Excel Macro-Enabled Template(.xltm)
00068Excel Add-In(.xlam)
00069PPT(.pptx)
00070PPT Macro-Enabled(.pptm)
00071PPT Template(.potx)
00072PPT Macro-Enabled Template(.potm)
00073PPT Add-In(.ppam)
00074PPT Show(.ppsx)
00075PPT Macro-Enabled Show(.ppsm)
00076Visio Drawing(.vsdx)
00077Visio Macro-Enabled Drawing(.vsdm)
00078Visio Stencil(.vssx)
00079Visio Macro-Enabled Stencil(.vssm)
00080Visio Template(.vstx)
00081Visio Macro-Enabled Template(.vstm)
00003PDF
00004XML
00021CHM
00022EXE
00026RTF
00036Windows Help File(.hlp)
00042Windows Mobile Note(.pwi)
00043Windows Registry Text(.reg)
00046SQL Server 2000 Database(.mdf)
00047Java Archive(.jar)
00048Windows Printer Spool File(.shd)
00049Windows Shortcut File(.lnk)
00051Quark Express Document(.qxd)
00053Windows MS Info File(.mof)
00055Microsoft Access Database(.MDB)
00056SPSS Data(.SAV)
00083RedHat Package Manager file(.RPM)
00082VMware Virtual Disk File(.vmdk)
00084Lotus WordPro document(.LWP)
00085Adobe encapsulated PostScript file(.EPS)
00086Lotus 1-2-3 spreadsheet(.WK)
00087SkinCrafter skin file(.skf)
00088Nero CD Compilation(.NRI)
00090Microsoft Office Word(.doc)
00091Microsoft Office Excel(.xls)
00092Microsoft Office PowerPoint(.ppt)
00093Hancom Office Hanword(.hwp)
00005MP3
00006MIDI
00007WAVE
00031Apple CoreAudio(.caf)
00037Microsoft Advanced Streaming(.asf)
00039Real Audio File(.ra)
00044Apple Lossless Audio(.m4a)
00052Digital Speech Standard(.dss)
00011Real Media File(.rm)
00012MPEG v4
000133GPP
00015AVI
00020Macromedia Flash
00035Windows Animated Cursor
00045DVD Video Movie File(.vob)
00008RAR
00009ZIP
00017TAR
000257-ZIP
00027Debian Package
00029Microsoft Cabinet File
00033Unix Archiver File(.ar)
00034Installshield Cabinet Archive Data
00040AIN Archive Data(.ain)
00041BZIP2 Archive(.bz2)
00057WinZIP ZIPX Archive(ZIPx)
00058Gzipped Tape Archive(TGZ)
00094TXT(.txt)
00095ZIP(.zip)
000967-ZIP(.7z)
00097Debian Package(.pkg)
00098Unix Archiver File(.ar)
00099AIN Archive Data(.ain)
00100BZIP2 Archive(.bz2)
00101Gzipped Tape Archive(.tgz)
00102Word(.docx)
00103Word Macro-Enabled(.docm)
00104Word Template(.dotx)
00105Word Macro-Enabled Template(.dotm)
00106Excel(.xlsx)
00107Excel Macro-Enabled(.xlsm)
00108Excel Template(.xltx)
00109Excel Macro-Enabled Template(.xltm)
00110Excel Add-In(.xlam)
00111PPT(.pptx)
00112PPT Macro-Enabled(.pptm)
00113PPT Template(.potx)
00114PPT Macro-Enabled Template(.potm)
00115PPT Add-In(.ppam)
00116PPT Show(.ppsx)
00117PPT Macro-Enabled Show(.ppsm)
00118Visio Drawing(.vsdx)
00119Visio Macro-Enabled Drawing(.vsdm)
00120Visio Stencil(.vssx)
00121Visio Macro-Enabled Stencil(.vssm)
00122Visio Template(.vstx)
00123Visio Macro-Enabled Template(.vstm)
00124PDF(.pdf)
00125XML(.xml)
00126EXE(.exe)
00127Rich Text Format(.rtf)
00128Windows Help File(.hlp)
00129Windows Mobile Note(.pwi)
00130Windows Registry Text(.reg)
00131SQL Server 2000 Database(.mdf)
00132Java Archive(.jar)
00133Windows Printer Spool File(.shd)
00134Windows Shortcut File(.lnk)
00135Quark Express Document(.qxd)
00136Windows MS Info File(.mof)
00137Microsoft Access Database(.MDB)
00138SPSS Data(.SAV)
00139RedHat Package Manager file(.RPM)
00140VMware Virtual Disk File(.vmdk)
00141Adobe encapsulated PostScript file(.EPS)
00142SPSS Data(.SAV)
00145Lotus 1-2-3 spreadsheet(.WK)
00146SkinCrafter skin file(.skf)
00147Nero CD Compilation(.NRI)
00148Microsoft Office Word(.doc)
00149Microsoft Office Excel(.xls)
00150Microsoft Office PowerPoint(.ppt)
00151Hancom Office Hanword(.hwp)
00152PHP(.php)
00153JSP(.jsp)
00154ASPX(.aspx)
00155GIF(.gif)
00156JPG(.jpg)
00157BMP(.bmp)
00158SPSS Data(.SAV)
00159Windows Metafile Format(.wmf)
00160Windows Icon(.icon)
00161Microsoft Document Image(.mdi)
00162Windows Enhanced Metafile(.emf)
00163Photoshop Image File(.psd)
00164JPEG-2000 Image File Format(.jp2)
00165Multipage PCX Bitmap File(.dcx)(.SAV)
00166SQL(.sql)

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (FileProtection)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get Anomaly Detection

Get the configuration of anomaly detection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Anomaly Detection

Update the configuration of anomaly detection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (AnomalyDetection)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get Overview of Anomaly Detection

Get the Overview data of of anomaly detection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "categories": [ ],
  • "event_json": [
    ],
  • "event_series": [
    ],
  • "hmm_data": [
    ],
  • "summary_data": {
    },
  • "top10_data": [
    ],
  • "traffic_series": [
    ]
}

Get Treeview of Anomaly Detection

Get the Treeview data of anomaly detection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "treeData": [
    ]
}

Get URL Stats of Anomaly Detection

Get the URL Stats data of anomaly detection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

query Parameters
url_id
required
string

URL ID of model, required when get URL Stats detail.

Responses

Response samples

Content type
application/json
{
  • "summary": {
    },
  • "details": {
    }
}

Rebuild URL of Anomaly Detection

Rebuild URL of Anomaly Detection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
url_id
required
integer

URL ID in model

Responses

Request samples

Content type
application/json
{
  • "url_id": 1
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Rebuild argument of Anomaly Detection

Rebuild http argument of Anomaly Detection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
url_id
required
integer

URL ID in model

arg_id
required
integer

HTTP argument ID in model

Responses

Request samples

Content type
application/json
{
  • "url_id": 1,
  • "arg_id": 1
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Rebuild directory of Anomaly Detection

Rebuild all URLs under the directory of Anomaly Detection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
path
required
string

URL path in model

Responses

Request samples

Content type
application/json
{
  • "path": "/api/"
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Discard argument of Anomaly Detection

Discard http argument of Anomaly Detection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
url_id
required
integer

URL ID in model

arg_id
required
integer

HTTP argument ID in model

Responses

Request samples

Content type
application/json
{
  • "url_id": 1,
  • "arg_id": 1
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get Known Attacks

Get the configuration of known attacks.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Known Attacks

Update the configuration of known attacks.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (KnownAttacks)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Client Security

This section shows how to configure module client security.

Get CSRF Protection

Get the configuration of CSRF protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update CSRF Protection

Update the configuration of CSRF protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (CSRFProtection)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get HTTP Header Security

Get the configuration of HTTP header security.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update HTTP Header Security

Update the configuration of HTTP header security.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (HttpHeaderSecurity)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get MITB Protection

Get the configuration of MITB protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{}

Update MITB Protection

Update the configuration of MITB protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (MITBProtection)

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Access Rules

This section shows how to configure module access rules.

Get Request Limits

Get the configuration of request limits.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Request Limits

Update the configuration of request limits.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (RequestLimits)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get IP Protection

Get the configuration of IP protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update IP Protection

Update the configuration of IP protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (IPProtectionPut)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Export IP Protection list

Export IP Protection list.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Get URL Access

Get the configuration of URL access.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update URL Access

Update the configuration of URL access.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (UrlAccess)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get CORS Protection

Get the configuration of CORS protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update CORS Protection

Update the configuration of CORS protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (CorsProtection)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Bot Mitgation

This section shows how to configure module bot mitgation.

Get Known Bots

Get the configuration of known bots.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Known Bots

Update the configuration of known bots.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (KnownBots)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get Machine Learning Bot Detection

Get the configuration of machine learning bot detection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Machine Learning Bot Detection

Update the configuration of machine learning bot detection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (MLBotDetection)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get Advanced Bot Protection

Get the configuration of advanced bot protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Advanced Bot Protection

Update the configuration of advanced bot protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (AdvancedBotProtection)
property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get Threshold Based Detection

Get the configuration of bot detection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Threshold Based Detection

Update the configuration of bot detection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (BotDetection)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get Bot Deception

Get the configuration of bot deception.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Bot Deception

Update the configuration of bot deception.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (BotDeception)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get Biometrics Based Detection

Get the configuration of biometrics based detection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Biometrics Based Detection

Update the configuration of biometrics based detection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (BiometricsBasedDetection)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

DDos Prevention

This section shows how to configure module DDos prevention.

Get DDoS Prevention

Get the configuration of DDoS prevention.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update DDoS Prevention

Update the configuration of DDoS prevention.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (DDoSPrevention)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Advanced Applications

This section shows how to configure module advanced application.

Get WebSocket Security

Get the configuration of WebSocket security.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update WebSocket Security

Update the configuration of WebSocket security.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (WebSocketSecurity)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get Template WebSocket Security

Get the configuration of WebSocket security of the template.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
template_id
required
string
Example: {{template_id}}

The template ID.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Template WebSocket Security

Update the configuration of WebSocket security of the template.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
template_id
required
string
Example: {{template_id}}

The template ID.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (WebSocketSecurity)

Responses

Request samples

Content type
application/json
{
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get Custom Rule

Get the configuration of custom rule.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Custom Rule

Update the configuration of custom rule.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (CustomRule)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get Template Custom Rule

Get the configuration of custom rule of the template.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
template_id
required
string
Example: {{template_id}}

The template ID.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Template Custom Rule

Update the configuration of custom rule of the template.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
template_id
required
string
Example: {{template_id}}

The template ID.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (CustomRule)

Responses

Request samples

Content type
application/json
{
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

API Protection

This section shows how to configure module api protection.

Get Mobile API Protection

Get the configuration of mobile API protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Mobile API Protection

Update the configuration of mobile API protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (MobileAPIProtection)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get API Gateway Policy

Get the configuration of API gateway policy.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update API Gateway Policy

Update the configuration of API gateway policy.

To add a new API user, a sample body is added to the request that conforms to the following JSON schema:

"api_user": [
  {
    "name": "user1",
    "email": "user1@sina.com",
    "comments": "user1",
    "ip-access-list": ["1.1.1.1"],
    "http-referer-list": ["www.sina.com"]
  },
]

To add a new API policy, a sample body is added to the request that conforms to the following JSON schema:

"api_policy": [
  {
    "api-key-verification": "enable",
    "api-key-location": "http-header",
    "match-url-prefixes": [
      {
        "frontend-prefix": "/front_prefix",
        "backend-prefix": "/back_prefix"
      }
    ],
    "api-user-list": ["he"],
    "rate-limit-period": 1,
    "rate-limit-requests": 60,
    "name": "rule1",
    "header-field-name": "header1"
  },
]

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (APIGateway)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get ML Based API Protection

Get the configuration of ML baased API protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update ML Based API Protection

Update the configuration of ML baased API protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (MlApiProtection)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get ML Based API Protection API Path

Get the URL Path Configuration of ML Based API Protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

query Parameters
page
integer

Page number, needed only at get API Path List.

size
integer

Page size, needed only at get API Path List.

url
string

URL path of API model, required when get API Path detail.

url_md5
string

MD5 of URL path which returned in get API Path List, required when get API Path detail.

period
string
Enum: "1day" "7day"

Attack statistics period, '1day' or '7day'.

search
string

fuzzy search keyword.

Responses

Response samples

Content type
application/json
Example
{
  • "result": [
    ],
  • "total": 2
}

Refresh ML based API protection API Path Model

Refresh URL path of ML based API protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
url_md5
string

The MD5 of URL path which returned in response of GET request

Responses

Request samples

Content type
application/json
{
  • "url_md5": "815CB933D5EAD413"
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Update ML based API protection API Path Config

Update URL path of ML based API protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
url_md5
string

The MD5 of URL path which returned in response of GET request

object (UrlPathParam)

Responses

Request samples

Content type
application/json
{
  • "url_md5": "815CB933D5EAD413",
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Update ML based API protection API Path Model

Update URL path model of ML based API protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
url_md5
string

The MD5 of URL path which returned in response of GET request

object (UrlModel)

Responses

Request samples

Content type
application/json
{
  • "url_md5": "815CB933D5EAD413",
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get ML Based API Protection Schema File

Get the schema file of ML Based API Protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Download ML Based API Protection Schema File

Get the configuration JSON/YAML file of ML Based API Protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

query Parameters
type
string
Enum: "yaml" "json"

File format, 'yaml' or 'json'.

url_md5
string

MD5 of selected API path which returned in response of GET URL Path request. If empty, all data is downloaded. There can be multiple values, separated by commas.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Get ML Based API Protection Timeline

Get the timeline of ML Based API Protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

query Parameters
period
string
Enum: "1day" "7day"

Attack statistics period, '1day' or '7day'.

url
string

URL path of API model.

method
string

Request method of API model.

type
string
Enum: "all" "schema" "threat"

Protection type to be used for filtering timeline data.

parameter
string

Prarameter name of API model, required when get timeline of parameter.

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Get XML Protection

Get the configuration of XML protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update XML Protection

Update the configuration of XML protection.

The data format in the request is multipart/form-data. Refer to the Request body for more detail information

The keywords of the form are template_status, _status, action, XMLProtectionPolicy.

The keyword format of the uploaded file is: the prefix file_ + the name of each rule, for example, file_test_xml_01.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (XMLProtection)
property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    },
  • "file_test-rule1": "{binary}"
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get OpenAPI Validation

Get the configuration of OpenAPI validation policy.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update OpenAPI Validation

Update the configuration of OpenAPI validation policy.

The data format in the request is multipart/form-data. Refer to the Request body for more detail information

The keywords of the form are template_status, _status, action, OpenAPIValidationPolicy.

The keyword format of the uploaded file is: the prefix file_ + the array index of each rule, for example, file_1.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
One of
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (ApiProtection)
property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    },
  • "file_1": "{binary}"
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get JSON Protection

Get the configuration of JSON protection.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update JSON Protection

Update the configuration of JSON protection.

The data format in the request is multipart/form-data. Refer to the Request body for more detail information

The keywords of the form are template_status, _status, action, jsonsecuritypolicy.

The keyword format of the uploaded file is: the prefix file_ + the name of each rule, for example, file_test1.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (JsonProtection)
property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    },
  • "file_test_rule1": "{binary}"
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Account Takeover

This section shows how to configure module account takeover.

Get Account Takeover

Get the configuration of account takeover.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Account Takeover

Update the configuration of account takeover.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (AccountTakeover)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Application Delivery

This section shows how to configure module application delivery.

Purge Cache

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
url
string

Page URL

Responses

Request samples

Content type
application/json
{
  • "url": "/page/url/to/purge"
}

Response samples

Content type
application/json
{
  • "message": "Cache purge operation has been issued, which takes 5 minutes to take effect"
}

Get Rewriting Requests

Get the configuration of rewriting requests.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Rewriting Requests

Update the configuration of rewriting requests.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (RewritingRequests)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get Caching and Compression

Get the web cache policy and file compress rule.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Caching and Compression

Update the web cache policy and file compress rule.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (CachingAndCompression)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get Waiting Room Configuration

Get the configuration of waiting room of an application.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: 0123456789

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Waiting Room Configuration

Update the configuration of waiting room of an application.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: 0123456789

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (WaitingRoom)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Get Waiting Room Overview Data

Get the overview data of waiting room runtime.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: 0123456789

The application ID, it can be obtained from List Applications API.

query Parameters
widget
required
string
Enum: "overview" "current_active_users" "current_waiting_users" "current_new_users_per_min" "estimated_waiting_time"
Example: widget=overview

Widget name.

time_range
string
Default: "1h"
Enum: "1h" "24h" "7d"
Example: time_range=24h

Get data of specific time range. Default value is 1h which means last one hour.

Responses

Response samples

Content type
application/json
Example
{
  • "result": {
    }
}

Update Waiting Room Configuration

Update the configuration of waiting room of an application.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: 0123456789

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
template
required
boolean
Enum: true false

Enable to inherit configuration from template

required
object (WaitingRoom)

Responses

Request samples

Content type
application/json
{
  • "template": false,
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Global TrustList

This section shows how to configure module global trust list.

Get Global Trustlist Parameter

Get the configuration of global trustlist parameter.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update Global Trustlist Parameter

Update the configuration of global trustlist parameter.

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
Example: {{ep_id}}

The application ID, it can be obtained from List Applications API.

Request Body schema: application/json
required
object (GlobalTrust)

Responses

Request samples

Content type
application/json
{
  • "configs": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "Module updated"
}

Vulnerability Scan

This section shows how to configure module vulnerability scan.

Get Vulnerability Scan

Get asset list of Vulnerability Scan.`/application/{ep_id}/vs/get_asset_list`
Get customer Fortinet license and APIKEY of Vulnerability Scan.`/application/{ep_id}/vs/get_license`
Get the scan results for an asset.`/application/{ep_id}/vs/scan_result`
Get the asset configuration URL.`/application/{ep_id}/vs/get_config_url`
Get the asset report URL.`/application/{ep_id}/vs/get_report_url`

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
action
required
string
query Parameters
url
string

URL of the asset.

uuid
string

ID of the asset.

Responses

Response samples

Content type
application/json
Example
{
  • "results": [
    ],
  • "details": "successfully",
  • "status": "Success",
  • "statusCode": 200,
  • "_status": "enable"
}

Update Vulnerability Scan

Start scanning of assets.`/application/{ep_id}/vs/scan_start`
Stop scanning of assets.`/application/{ep_id}/vs/scan_stop`
Adding asset and authorizing it.`/application/{ep_id}/vs/add_asset`
Update the Bypass option for Vulnerability Scan.`/application/{ep_id}}/vs/update_bypass`

Requires API key secret as Authorization request header. See Request format section for API key secret details.

Authorizations:
ApiRequestAuthorizer
path Parameters
ep_id
required
string
action
required
string
Request Body schema: application/json
object (SingleJsonObject)

Responses

Request samples

Content type
application/json
Example
{}

Response samples

Content type
application/json
{
  • "detail": "successfully",
  • "statusCode": 200
}