curl --request POST \
--url https://controller.simplecloud.app/v0/server-groups/convert-to-persistent \
--header 'Content-Type: application/json' \
--header 'X-Network-Credential: <api-key>' \
--header 'X-Network-ID: <x-network-id>' \
--data '
{
"serverhost_id": "<string>"
}
'import requests
url = "https://controller.simplecloud.app/v0/server-groups/convert-to-persistent"
payload = { "serverhost_id": "<string>" }
headers = {
"X-Network-ID": "<x-network-id>",
"X-Network-Credential": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Network-ID': '<x-network-id>',
'X-Network-Credential': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({serverhost_id: '<string>'})
};
fetch('https://controller.simplecloud.app/v0/server-groups/convert-to-persistent', 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://controller.simplecloud.app/v0/server-groups/convert-to-persistent",
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([
'serverhost_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Network-Credential: <api-key>",
"X-Network-ID: <x-network-id>"
],
]);
$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://controller.simplecloud.app/v0/server-groups/convert-to-persistent"
payload := strings.NewReader("{\n \"serverhost_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Network-ID", "<x-network-id>")
req.Header.Add("X-Network-Credential", "<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.post("https://controller.simplecloud.app/v0/server-groups/convert-to-persistent")
.header("X-Network-ID", "<x-network-id>")
.header("X-Network-Credential", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"serverhost_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://controller.simplecloud.app/v0/server-groups/convert-to-persistent")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Network-ID"] = '<x-network-id>'
request["X-Network-Credential"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"serverhost_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"active": true,
"created_at": "2023-01-01T12:00:00Z",
"max_memory": 2048,
"max_players": 50,
"min_memory": 1024,
"name": "my-persistent-server",
"persistent_server_id": "123e4567-e89b-12d3-a456-426614174000",
"player_count": 0,
"priority": 10,
"properties": {},
"serverhost_id": "123e4567-e89b-12d3-a456-426614174000",
"source": {
"blueprint": "123e4567-e89b-12d3-a456-426614174000",
"image": "ghcr.io/user/custom-image:latest",
"type": "blueprint"
},
"tags": [
"<string>"
],
"type": "SERVER",
"updated_at": "2023-01-01T12:00:00Z",
"workflows": {
"manual": [
"<string>"
],
"when": {
"start": [
"<string>"
],
"stop": [
"<string>"
]
}
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Convert a stopped group to a persistent server
Requires an inactive source with no server records, queued starts or rolling restart. Copies shared settings and transfers plugin and collection assignments, then deletes the source atomically. Returns a new inactive resource with a new ID. Group scaling and deployment settings are discarded. World files and running instances are not migrated. Requires source read/delete and destination write permissions.
curl --request POST \
--url https://controller.simplecloud.app/v0/server-groups/convert-to-persistent \
--header 'Content-Type: application/json' \
--header 'X-Network-Credential: <api-key>' \
--header 'X-Network-ID: <x-network-id>' \
--data '
{
"serverhost_id": "<string>"
}
'import requests
url = "https://controller.simplecloud.app/v0/server-groups/convert-to-persistent"
payload = { "serverhost_id": "<string>" }
headers = {
"X-Network-ID": "<x-network-id>",
"X-Network-Credential": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Network-ID': '<x-network-id>',
'X-Network-Credential': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({serverhost_id: '<string>'})
};
fetch('https://controller.simplecloud.app/v0/server-groups/convert-to-persistent', 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://controller.simplecloud.app/v0/server-groups/convert-to-persistent",
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([
'serverhost_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Network-Credential: <api-key>",
"X-Network-ID: <x-network-id>"
],
]);
$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://controller.simplecloud.app/v0/server-groups/convert-to-persistent"
payload := strings.NewReader("{\n \"serverhost_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Network-ID", "<x-network-id>")
req.Header.Add("X-Network-Credential", "<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.post("https://controller.simplecloud.app/v0/server-groups/convert-to-persistent")
.header("X-Network-ID", "<x-network-id>")
.header("X-Network-Credential", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"serverhost_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://controller.simplecloud.app/v0/server-groups/convert-to-persistent")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Network-ID"] = '<x-network-id>'
request["X-Network-Credential"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"serverhost_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"active": true,
"created_at": "2023-01-01T12:00:00Z",
"max_memory": 2048,
"max_players": 50,
"min_memory": 1024,
"name": "my-persistent-server",
"persistent_server_id": "123e4567-e89b-12d3-a456-426614174000",
"player_count": 0,
"priority": 10,
"properties": {},
"serverhost_id": "123e4567-e89b-12d3-a456-426614174000",
"source": {
"blueprint": "123e4567-e89b-12d3-a456-426614174000",
"image": "ghcr.io/user/custom-image:latest",
"type": "blueprint"
},
"tags": [
"<string>"
],
"type": "SERVER",
"updated_at": "2023-01-01T12:00:00Z",
"workflows": {
"manual": [
"<string>"
],
"when": {
"start": [
"<string>"
],
"stop": [
"<string>"
]
}
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Network password or signed JWT. Password authentication also requires X-Network-ID and grants full access to that network, except the audit log. JWT permissions still apply.
Headers
Network ID
Query Parameters
Source group ID
Body
Destination host
Response
Created
Response for creating a new persistent server
true
"2023-01-01T12:00:00Z"
2048
50
1024
"my-persistent-server"
"123e4567-e89b-12d3-a456-426614174000"
0
10
Show child attributes
Show child attributes
"123e4567-e89b-12d3-a456-426614174000"
Source configuration for server groups
Show child attributes
Show child attributes
"SERVER"
"2023-01-01T12:00:00Z"
Workflows configuration for server groups
Show child attributes
Show child attributes
Was this page helpful?