curl --request POST \
--url https://console.advinservers.com/api/v1/client/servers/{server}/ddos-protection/ip/{ip}/settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"symmetrical": true,
"symmetricalBasic": false,
"allowEgress": true,
"attackDuration": 45,
"defaultAction": "FILTER",
"discovery": true
}
'import requests
url = "https://console.advinservers.com/api/v1/client/servers/{server}/ddos-protection/ip/{ip}/settings"
payload = {
"symmetrical": True,
"symmetricalBasic": False,
"allowEgress": True,
"attackDuration": 45,
"defaultAction": "FILTER",
"discovery": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
symmetrical: true,
symmetricalBasic: false,
allowEgress: true,
attackDuration: 45,
defaultAction: 'FILTER',
discovery: true
})
};
fetch('https://console.advinservers.com/api/v1/client/servers/{server}/ddos-protection/ip/{ip}/settings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://console.advinservers.com/api/v1/client/servers/{server}/ddos-protection/ip/{ip}/settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'symmetrical' => true,
'symmetricalBasic' => false,
'allowEgress' => true,
'attackDuration' => 45,
'defaultAction' => 'FILTER',
'discovery' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://console.advinservers.com/api/v1/client/servers/{server}/ddos-protection/ip/{ip}/settings"
payload := strings.NewReader("{\n \"symmetrical\": true,\n \"symmetricalBasic\": false,\n \"allowEgress\": true,\n \"attackDuration\": 45,\n \"defaultAction\": \"FILTER\",\n \"discovery\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://console.advinservers.com/api/v1/client/servers/{server}/ddos-protection/ip/{ip}/settings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"symmetrical\": true,\n \"symmetricalBasic\": false,\n \"allowEgress\": true,\n \"attackDuration\": 45,\n \"defaultAction\": \"FILTER\",\n \"discovery\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://console.advinservers.com/api/v1/client/servers/{server}/ddos-protection/ip/{ip}/settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"symmetrical\": true,\n \"symmetricalBasic\": false,\n \"allowEgress\": true,\n \"attackDuration\": 45,\n \"defaultAction\": \"FILTER\",\n \"discovery\": true\n}"
response = http.request(request)
puts response.read_body{
"symmetrical": true,
"symmetricalBasic": false,
"allowEgress": true,
"attackDuration": 30,
"defaultAction": "FILTER",
"discovery": true,
"autoMitigation": true
}{
"message": "Unauthenticated."
}{
"message": "This API key is not allowed to do that in this team. It needs the \"snapshot.delete\" permission."
}{
"message": "Not found."
}{
"message": "The name field is required.",
"errors": {}
}{
"message": "Too Many Attempts."
}Update DDoS filtering settings for an IP address
Overview
Updates filtering settings and returns their applied values. Send any of symmetrical, symmetricalBasic, allowEgress, discovery, attackDuration and defaultAction (FILTER, DROP or ACCEPT). Unsupported settings are ignored. Changes affect live traffic immediately and may interrupt connections.
Permissions
Requires the network.update (Change networking) permission for the selected team. Resources outside that team return 404.
curl --request POST \
--url https://console.advinservers.com/api/v1/client/servers/{server}/ddos-protection/ip/{ip}/settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"symmetrical": true,
"symmetricalBasic": false,
"allowEgress": true,
"attackDuration": 45,
"defaultAction": "FILTER",
"discovery": true
}
'import requests
url = "https://console.advinservers.com/api/v1/client/servers/{server}/ddos-protection/ip/{ip}/settings"
payload = {
"symmetrical": True,
"symmetricalBasic": False,
"allowEgress": True,
"attackDuration": 45,
"defaultAction": "FILTER",
"discovery": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
symmetrical: true,
symmetricalBasic: false,
allowEgress: true,
attackDuration: 45,
defaultAction: 'FILTER',
discovery: true
})
};
fetch('https://console.advinservers.com/api/v1/client/servers/{server}/ddos-protection/ip/{ip}/settings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://console.advinservers.com/api/v1/client/servers/{server}/ddos-protection/ip/{ip}/settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'symmetrical' => true,
'symmetricalBasic' => false,
'allowEgress' => true,
'attackDuration' => 45,
'defaultAction' => 'FILTER',
'discovery' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://console.advinservers.com/api/v1/client/servers/{server}/ddos-protection/ip/{ip}/settings"
payload := strings.NewReader("{\n \"symmetrical\": true,\n \"symmetricalBasic\": false,\n \"allowEgress\": true,\n \"attackDuration\": 45,\n \"defaultAction\": \"FILTER\",\n \"discovery\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://console.advinservers.com/api/v1/client/servers/{server}/ddos-protection/ip/{ip}/settings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"symmetrical\": true,\n \"symmetricalBasic\": false,\n \"allowEgress\": true,\n \"attackDuration\": 45,\n \"defaultAction\": \"FILTER\",\n \"discovery\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://console.advinservers.com/api/v1/client/servers/{server}/ddos-protection/ip/{ip}/settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"symmetrical\": true,\n \"symmetricalBasic\": false,\n \"allowEgress\": true,\n \"attackDuration\": 45,\n \"defaultAction\": \"FILTER\",\n \"discovery\": true\n}"
response = http.request(request)
puts response.read_body{
"symmetrical": true,
"symmetricalBasic": false,
"allowEgress": true,
"attackDuration": 30,
"defaultAction": "FILTER",
"discovery": true,
"autoMitigation": true
}{
"message": "Unauthenticated."
}{
"message": "This API key is not allowed to do that in this team. It needs the \"snapshot.delete\" permission."
}{
"message": "Not found."
}{
"message": "The name field is required.",
"errors": {}
}{
"message": "Too Many Attempts."
}Authorizations
Your API key, sent as a bearer token. Create one in the control panel under API Keys, give it only the permissions the integration needs, and copy it when it is created. It cannot be shown again. Each key is restricted to one owned team. The key determines the team for every request.
Path Parameters
The server UUID
"ecc6f4f1"
The ip ID.
"203.0.113.24"
Body
Send a JSON object containing the fields below. Required fields are marked in the schema.
The value of symmetrical.
The value of symmetrical_basic.
The value of allow_egress.
The value of attack_duration.
The value of default_action.
FILTER, DROP, ACCEPT, null The value of discovery.
Response
The record, as a JSON object. There is no envelope.
How one address is filtered when no rule matches.
The value of symmetrical.
true
The value of symmetrical_basic.
false
The value of allow_egress.
true
How long, in minutes, an attack is considered ongoing.
30
What happens to traffic no rule matched, FILTER or DROP.
"FILTER"
The value of discovery.
true
The value of auto_mitigation.
true