Update protection profile
curl --request PUT \
--url https://api.gcore.com/security/sifter/v3/profiles/{protection_profile_id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"fields": [
{
"name": "bandwidth_limit",
"template_field_id": 5,
"value": "200"
}
],
"name": "Updated Web Server Protection",
"template_id": 2
}
'import requests
url = "https://api.gcore.com/security/sifter/v3/profiles/{protection_profile_id}"
payload = {
"fields": [
{
"name": "bandwidth_limit",
"template_field_id": 5,
"value": "200"
}
],
"name": "Updated Web Server Protection",
"template_id": 2
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
fields: [{name: 'bandwidth_limit', template_field_id: 5, value: '200'}],
name: 'Updated Web Server Protection',
template_id: 2
})
};
fetch('https://api.gcore.com/security/sifter/v3/profiles/{protection_profile_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gcore.com/security/sifter/v3/profiles/{protection_profile_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'fields' => [
[
'name' => 'bandwidth_limit',
'template_field_id' => 5,
'value' => '200'
]
],
'name' => 'Updated Web Server Protection',
'template_id' => 2
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.gcore.com/security/sifter/v3/profiles/{protection_profile_id}"
payload := strings.NewReader("{\n \"fields\": [\n {\n \"name\": \"bandwidth_limit\",\n \"template_field_id\": 5,\n \"value\": \"200\"\n }\n ],\n \"name\": \"Updated Web Server Protection\",\n \"template_id\": 2\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.put("https://api.gcore.com/security/sifter/v3/profiles/{protection_profile_id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"fields\": [\n {\n \"name\": \"bandwidth_limit\",\n \"template_field_id\": 5,\n \"value\": \"200\"\n }\n ],\n \"name\": \"Updated Web Server Protection\",\n \"template_id\": 2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/security/sifter/v3/profiles/{protection_profile_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"fields\": [\n {\n \"name\": \"bandwidth_limit\",\n \"template_field_id\": 5,\n \"value\": \"200\"\n }\n ],\n \"name\": \"Updated Web Server Protection\",\n \"template_id\": 2\n}"
response = http.request(request)
puts response.read_body{
"client_id": 3,
"created_at": "2025-06-15T10:30:00Z",
"fields": [
{
"template_field_id": 5,
"value": "100"
},
{
"template_field_id": 8,
"value": "enabled"
}
],
"id": 10,
"modified_at": "2025-07-20T14:45:00Z",
"name": "Web Server Protection",
"networks": [
"192.168.1.0/24",
"10.0.0.0/16"
],
"template": {
"id": 1,
"name": "DDoS Protection Standard"
}
}{}{}{}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Protection Profiles
Update protection profile
Update protection profile
PUT
/
security
/
sifter
/
v3
/
profiles
/
{protection_profile_id}
Update protection profile
curl --request PUT \
--url https://api.gcore.com/security/sifter/v3/profiles/{protection_profile_id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"fields": [
{
"name": "bandwidth_limit",
"template_field_id": 5,
"value": "200"
}
],
"name": "Updated Web Server Protection",
"template_id": 2
}
'import requests
url = "https://api.gcore.com/security/sifter/v3/profiles/{protection_profile_id}"
payload = {
"fields": [
{
"name": "bandwidth_limit",
"template_field_id": 5,
"value": "200"
}
],
"name": "Updated Web Server Protection",
"template_id": 2
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
fields: [{name: 'bandwidth_limit', template_field_id: 5, value: '200'}],
name: 'Updated Web Server Protection',
template_id: 2
})
};
fetch('https://api.gcore.com/security/sifter/v3/profiles/{protection_profile_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gcore.com/security/sifter/v3/profiles/{protection_profile_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'fields' => [
[
'name' => 'bandwidth_limit',
'template_field_id' => 5,
'value' => '200'
]
],
'name' => 'Updated Web Server Protection',
'template_id' => 2
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.gcore.com/security/sifter/v3/profiles/{protection_profile_id}"
payload := strings.NewReader("{\n \"fields\": [\n {\n \"name\": \"bandwidth_limit\",\n \"template_field_id\": 5,\n \"value\": \"200\"\n }\n ],\n \"name\": \"Updated Web Server Protection\",\n \"template_id\": 2\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.put("https://api.gcore.com/security/sifter/v3/profiles/{protection_profile_id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"fields\": [\n {\n \"name\": \"bandwidth_limit\",\n \"template_field_id\": 5,\n \"value\": \"200\"\n }\n ],\n \"name\": \"Updated Web Server Protection\",\n \"template_id\": 2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/security/sifter/v3/profiles/{protection_profile_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"fields\": [\n {\n \"name\": \"bandwidth_limit\",\n \"template_field_id\": 5,\n \"value\": \"200\"\n }\n ],\n \"name\": \"Updated Web Server Protection\",\n \"template_id\": 2\n}"
response = http.request(request)
puts response.read_body{
"client_id": 3,
"created_at": "2025-06-15T10:30:00Z",
"fields": [
{
"template_field_id": 5,
"value": "100"
},
{
"template_field_id": 8,
"value": "enabled"
}
],
"id": 10,
"modified_at": "2025-07-20T14:45:00Z",
"name": "Web Server Protection",
"networks": [
"192.168.1.0/24",
"10.0.0.0/16"
],
"template": {
"id": 1,
"name": "DDoS Protection Standard"
}
}{}{}{}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
API key for authentication. Make sure to include the word apikey, followed by a single space and then your token.
Example: apikey 1234_abcdef
Path Parameters
A positive integer ID
Required range:
1 <= x <= 1000000000Body
application/json
Response
Successful Response
Identifier for the protection profile
Identifier of the client owning this profile
Name of the protection profile
List of profile field values
Show child attributes
Show child attributes
Associated profile template
Show child attributes
Show child attributes
Example:
{ "id": 1, "name": "DDoS Protection Standard" }
Timestamp when the profile was created
Timestamp of the last modification
Was this page helpful?
⌘I