curl --request PATCH \
--url https://console.advinservers.com/api/v1/client/firewall-groups/{firewallGroup} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Lambda Complex public ingress"
}
'import requests
url = "https://console.advinservers.com/api/v1/client/firewall-groups/{firewallGroup}"
payload = { "name": "Lambda Complex public ingress" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Lambda Complex public ingress'})
};
fetch('https://console.advinservers.com/api/v1/client/firewall-groups/{firewallGroup}', 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/firewall-groups/{firewallGroup}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Lambda Complex public ingress'
]),
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/firewall-groups/{firewallGroup}"
payload := strings.NewReader("{\n \"name\": \"Lambda Complex public ingress\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://console.advinservers.com/api/v1/client/firewall-groups/{firewallGroup}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Lambda Complex public ingress\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://console.advinservers.com/api/v1/client/firewall-groups/{firewallGroup}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Lambda Complex public ingress\"\n}"
response = http.request(request)
puts response.read_body{
"id": "72a4a737-236f-456f-827f-6145d9c95727",
"uuid_short": "Uuid short",
"name": "Lambda Complex public ingress",
"applied": false,
"rules": [
{
"id": "986f78ba-68f7-4dd3-8f15-1bac745f5ab1",
"position": 0,
"type": "in",
"action": "ACCEPT",
"macro": "Web",
"proto": null,
"sport": null,
"dport": null,
"source": null,
"source_ip_group": null,
"dest": null,
"enabled": true
},
{
"id": "23f9fb19-d43a-4144-af19-95348d88c247",
"position": 1,
"type": "in",
"action": "ACCEPT",
"macro": "SSH",
"proto": null,
"sport": null,
"dport": null,
"source": null,
"source_ip_group": {
"id": "145e6e6f-a6b0-4b9e-9060-2d4f017baff8",
"name": "Sector C lab"
},
"dest": null,
"enabled": true
},
{
"id": "97fd3850-8315-4eae-be31-4ef1211f6d76",
"position": 2,
"type": "in",
"action": "ACCEPT",
"macro": null,
"proto": "tcp",
"sport": null,
"dport": "9100",
"source": "10.24.0.0/24",
"source_ip_group": null,
"dest": null,
"enabled": true
}
],
"servers": [
{
"id": "ecc6f4f1-c89b-4dce-a20b-a330641c5b0b",
"uuid_short": "ecc6f4f1",
"name": "lambda-core",
"hostname": "lambda-core.blackmesa.example.com",
"template_name": "Ubuntu 24.04",
"template_icon_url": "https://img.icons8.com/color/48/ubuntu.png",
"windows": false,
"location": "Kansas City, MO",
"address": "203.0.113.24",
"synced_at": "2026-09-14T15:58:21+00:00",
"sync_state": "pending",
"sync_error": null,
"is_current": false
}
],
"created_at": "2026-03-02T19:31:08+00:00"
}{
"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."
}Rename a firewall group
Overview
Renames the group without changing its rules. Names must be unique across the account. The updated name is applied to assigned servers in the background, so their assignment status returns to pending until updated.
Permissions
Requires the firewall.update (Change the firewall) permission for the selected team. Resources outside that team return 404.
curl --request PATCH \
--url https://console.advinservers.com/api/v1/client/firewall-groups/{firewallGroup} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Lambda Complex public ingress"
}
'import requests
url = "https://console.advinservers.com/api/v1/client/firewall-groups/{firewallGroup}"
payload = { "name": "Lambda Complex public ingress" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Lambda Complex public ingress'})
};
fetch('https://console.advinservers.com/api/v1/client/firewall-groups/{firewallGroup}', 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/firewall-groups/{firewallGroup}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Lambda Complex public ingress'
]),
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/firewall-groups/{firewallGroup}"
payload := strings.NewReader("{\n \"name\": \"Lambda Complex public ingress\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://console.advinservers.com/api/v1/client/firewall-groups/{firewallGroup}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Lambda Complex public ingress\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://console.advinservers.com/api/v1/client/firewall-groups/{firewallGroup}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Lambda Complex public ingress\"\n}"
response = http.request(request)
puts response.read_body{
"id": "72a4a737-236f-456f-827f-6145d9c95727",
"uuid_short": "Uuid short",
"name": "Lambda Complex public ingress",
"applied": false,
"rules": [
{
"id": "986f78ba-68f7-4dd3-8f15-1bac745f5ab1",
"position": 0,
"type": "in",
"action": "ACCEPT",
"macro": "Web",
"proto": null,
"sport": null,
"dport": null,
"source": null,
"source_ip_group": null,
"dest": null,
"enabled": true
},
{
"id": "23f9fb19-d43a-4144-af19-95348d88c247",
"position": 1,
"type": "in",
"action": "ACCEPT",
"macro": "SSH",
"proto": null,
"sport": null,
"dport": null,
"source": null,
"source_ip_group": {
"id": "145e6e6f-a6b0-4b9e-9060-2d4f017baff8",
"name": "Sector C lab"
},
"dest": null,
"enabled": true
},
{
"id": "97fd3850-8315-4eae-be31-4ef1211f6d76",
"position": 2,
"type": "in",
"action": "ACCEPT",
"macro": null,
"proto": "tcp",
"sport": null,
"dport": "9100",
"source": "10.24.0.0/24",
"source_ip_group": null,
"dest": null,
"enabled": true
}
],
"servers": [
{
"id": "ecc6f4f1-c89b-4dce-a20b-a330641c5b0b",
"uuid_short": "ecc6f4f1",
"name": "lambda-core",
"hostname": "lambda-core.blackmesa.example.com",
"template_name": "Ubuntu 24.04",
"template_icon_url": "https://img.icons8.com/color/48/ubuntu.png",
"windows": false,
"location": "Kansas City, MO",
"address": "203.0.113.24",
"synced_at": "2026-09-14T15:58:21+00:00",
"sync_state": "pending",
"sync_error": null,
"is_current": false
}
],
"created_at": "2026-03-02T19:31:08+00:00"
}{
"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 firewall group uuid short
"72a4a737-236f-456f-827f-6145d9c95727"
Body
Send a JSON object containing the fields below. Required fields are marked in the schema.
A name unique for this group type across the account, 1 to 100 characters. Use letters, numbers, spaces, dots, dashes or underscores.
"Lambda Complex public ingress"
Response
The record, as a JSON object. There is no envelope.
A reusable set of firewall rules.
The id ID.
"72a4a737-236f-456f-827f-6145d9c95727"
The first eight characters of the UUID. Either form can identify the group.
"Uuid short"
The name shown to customers.
"Lambda Complex ingress"
Whether the group is applied to the requested server. Always false when no server was requested.
false
The value of rules.
Show child attributes
Show child attributes
[
{
"id": "986f78ba-68f7-4dd3-8f15-1bac745f5ab1",
"position": 0,
"type": "in",
"action": "ACCEPT",
"macro": "Web",
"proto": null,
"sport": null,
"dport": null,
"source": null,
"source_ip_group": null,
"dest": null,
"enabled": true
},
{
"id": "23f9fb19-d43a-4144-af19-95348d88c247",
"position": 1,
"type": "in",
"action": "ACCEPT",
"macro": "SSH",
"proto": null,
"sport": null,
"dport": null,
"source": null,
"source_ip_group": {
"id": "145e6e6f-a6b0-4b9e-9060-2d4f017baff8",
"name": "Sector C lab"
},
"dest": null,
"enabled": true
},
{
"id": "97fd3850-8315-4eae-be31-4ef1211f6d76",
"position": 2,
"type": "in",
"action": "ACCEPT",
"macro": null,
"proto": "tcp",
"sport": null,
"dport": "9100",
"source": "10.24.0.0/24",
"source_ip_group": null,
"dest": null,
"enabled": true
}
]
The value of servers.
Show child attributes
Show child attributes
[
{
"id": "ecc6f4f1-c89b-4dce-a20b-a330641c5b0b",
"uuid_short": "ecc6f4f1",
"name": "lambda-core",
"hostname": "lambda-core.blackmesa.example.com",
"template_name": "Ubuntu 24.04",
"template_icon_url": "https://img.icons8.com/color/48/ubuntu.png",
"windows": false,
"location": "Kansas City, MO",
"address": "203.0.113.24",
"synced_at": "2026-09-14T15:58:21+00:00",
"sync_state": "synced",
"sync_error": null,
"is_current": false
}
]
The date and time for created at, in UTC.
"2026-03-02T19:31:08+00:00"