curl --request POST \
--url https://console.advinservers.com/api/v1/client/servers/{server}/snapshots \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Before anti-mass spectrometer run",
"snapshot_storage": "9e83397b-d88e-43ae-bfb7-a8c2e6eda853"
}
'import requests
url = "https://console.advinservers.com/api/v1/client/servers/{server}/snapshots"
payload = {
"name": "Before anti-mass spectrometer run",
"snapshot_storage": "9e83397b-d88e-43ae-bfb7-a8c2e6eda853"
}
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({
name: 'Before anti-mass spectrometer run',
snapshot_storage: '9e83397b-d88e-43ae-bfb7-a8c2e6eda853'
})
};
fetch('https://console.advinservers.com/api/v1/client/servers/{server}/snapshots', 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}/snapshots",
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([
'name' => 'Before anti-mass spectrometer run',
'snapshot_storage' => '9e83397b-d88e-43ae-bfb7-a8c2e6eda853'
]),
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}/snapshots"
payload := strings.NewReader("{\n \"name\": \"Before anti-mass spectrometer run\",\n \"snapshot_storage\": \"9e83397b-d88e-43ae-bfb7-a8c2e6eda853\"\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}/snapshots")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Before anti-mass spectrometer run\",\n \"snapshot_storage\": \"9e83397b-d88e-43ae-bfb7-a8c2e6eda853\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://console.advinservers.com/api/v1/client/servers/{server}/snapshots")
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 \"name\": \"Before anti-mass spectrometer run\",\n \"snapshot_storage\": \"9e83397b-d88e-43ae-bfb7-a8c2e6eda853\"\n}"
response = http.request(request)
puts response.read_body{
"uuid": "c9380e36-eaa8-4391-a443-85f9dfb5a16b",
"name": "Before anti-mass spectrometer run",
"status": "creating",
"is_successful": false,
"is_available": true,
"size": 0,
"disk_allocated": 85899345920,
"disk_used": null,
"completed_at": null,
"created_at": "2026-09-14T16:42:09.000000Z",
"server": {
"uuid": "ecc6f4f1-c89b-4dce-a20b-a330641c5b0b",
"uuid_short": "ecc6f4f1",
"name": "lambda-core",
"windows": false,
"template_name": "Ubuntu 24.04",
"template_icon_url": "https://img.icons8.com/color/48/ubuntu.png"
},
"server_name": "lambda-core",
"storage": {
"uuid": "9e83397b-d88e-43ae-bfb7-a8c2e6eda853",
"name": "Storage 1",
"is_suspended": false
}
}{
"message": "The request could not be carried out."
}{
"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 request could not be carried out."
}{
"message": "The name field is required.",
"errors": {}
}{
"message": "Too Many Attempts."
}Take a snapshot
Overview
Creates a snapshot in the background. Send a name of 1 to 40 characters and the UUID of the snapshot_storage to store it in. You can leave out the storage when the team has exactly one usable storage. The storage must not be full, suspended or ended. The request is refused while a backup or migration of the server is running. The initial response has completed_at set to null. The snapshot is ready when completed_at is set and is_successful is true, and its size then counts against the storage.
Permissions
Requires the snapshot.create (Take snapshots) permission for the selected team. Resources outside that team return 404.
curl --request POST \
--url https://console.advinservers.com/api/v1/client/servers/{server}/snapshots \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Before anti-mass spectrometer run",
"snapshot_storage": "9e83397b-d88e-43ae-bfb7-a8c2e6eda853"
}
'import requests
url = "https://console.advinservers.com/api/v1/client/servers/{server}/snapshots"
payload = {
"name": "Before anti-mass spectrometer run",
"snapshot_storage": "9e83397b-d88e-43ae-bfb7-a8c2e6eda853"
}
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({
name: 'Before anti-mass spectrometer run',
snapshot_storage: '9e83397b-d88e-43ae-bfb7-a8c2e6eda853'
})
};
fetch('https://console.advinservers.com/api/v1/client/servers/{server}/snapshots', 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}/snapshots",
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([
'name' => 'Before anti-mass spectrometer run',
'snapshot_storage' => '9e83397b-d88e-43ae-bfb7-a8c2e6eda853'
]),
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}/snapshots"
payload := strings.NewReader("{\n \"name\": \"Before anti-mass spectrometer run\",\n \"snapshot_storage\": \"9e83397b-d88e-43ae-bfb7-a8c2e6eda853\"\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}/snapshots")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Before anti-mass spectrometer run\",\n \"snapshot_storage\": \"9e83397b-d88e-43ae-bfb7-a8c2e6eda853\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://console.advinservers.com/api/v1/client/servers/{server}/snapshots")
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 \"name\": \"Before anti-mass spectrometer run\",\n \"snapshot_storage\": \"9e83397b-d88e-43ae-bfb7-a8c2e6eda853\"\n}"
response = http.request(request)
puts response.read_body{
"uuid": "c9380e36-eaa8-4391-a443-85f9dfb5a16b",
"name": "Before anti-mass spectrometer run",
"status": "creating",
"is_successful": false,
"is_available": true,
"size": 0,
"disk_allocated": 85899345920,
"disk_used": null,
"completed_at": null,
"created_at": "2026-09-14T16:42:09.000000Z",
"server": {
"uuid": "ecc6f4f1-c89b-4dce-a20b-a330641c5b0b",
"uuid_short": "ecc6f4f1",
"name": "lambda-core",
"windows": false,
"template_name": "Ubuntu 24.04",
"template_icon_url": "https://img.icons8.com/color/48/ubuntu.png"
},
"server_name": "lambda-core",
"storage": {
"uuid": "9e83397b-d88e-43ae-bfb7-a8c2e6eda853",
"name": "Storage 1",
"is_suspended": false
}
}{
"message": "The request could not be carried out."
}{
"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 request could not be carried out."
}{
"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"
Body
Send a JSON object containing the fields below. Required fields are marked in the schema.
Response
The record, as a JSON object. There is no envelope.
A saved copy of a server's disk state.
The uuid UUID.
"2305595e-9b2f-4f9e-96d7-47fc7ff45791"
The name shown to customers.
"Pre-cascade baseline"
The state as the customer reads it, including a suspension of the storage holding the snapshot.
creating, available, failed, unavailable, suspended, restoring "available"
Whether the resource is successful.
true
Whether the resource is available.
true
The value of size.
85899345920
What the VM's disk was provisioned at when the snapshot was taken.
85899345920
How much of that disk is in use on the VM right now.
33822867456
The date and time for completed at, in UTC.
"2026-09-03T04:21:17.000000Z"
"2026-09-12T22:07:13.000000Z"
The date and time for created at, in UTC.
"2026-09-03T04:21:17.000000Z"
"2026-09-12T22:05:47.000000Z"
The machine it was taken of, while that machine exists and is still the same account's. A snapshot outlives its server, and one moved to another account with its storage does not reveal the seller's machine.
Show child attributes
Show child attributes
{
"uuid": "ecc6f4f1-c89b-4dce-a20b-a330641c5b0b",
"uuid_short": "ecc6f4f1",
"name": "lambda-core",
"windows": false,
"template_name": "Ubuntu 24.04",
"template_icon_url": "https://img.icons8.com/color/48/ubuntu.png"
}
What the machine was called when the snapshot was taken.
"lambda-core"
The snapshot storage holding it and paying for it.
Show child attributes
Show child attributes
{
"uuid": "9e83397b-d88e-43ae-bfb7-a8c2e6eda853",
"name": "Storage 1",
"is_suspended": false
}