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. 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?