curl --request POST \
--url https://console.advinservers.com/api/v1/client/snapshots/storages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"size_gb": 200,
"name": null
}
'import requests
url = "https://console.advinservers.com/api/v1/client/snapshots/storages"
payload = {
"size_gb": 200,
"name": None
}
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({size_gb: 200, name: null})
};
fetch('https://console.advinservers.com/api/v1/client/snapshots/storages', 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/snapshots/storages",
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([
'size_gb' => 200,
'name' => null
]),
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/snapshots/storages"
payload := strings.NewReader("{\n \"size_gb\": 200,\n \"name\": null\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/snapshots/storages")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"size_gb\": 200,\n \"name\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://console.advinservers.com/api/v1/client/snapshots/storages")
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 \"size_gb\": 200,\n \"name\": null\n}"
response = http.request(request)
puts response.read_body{
"uuid": "403f9bb0-bea0-4885-8960-8f6a3f27a21a",
"name": "Storage 3",
"status": "pending_payment",
"status_label": "Provisioning",
"progress_message": null,
"needs_funds": false,
"size_gb": 200,
"capacity": 214748364800,
"used": 0,
"remaining": 214748364800,
"snapshots_count": 0,
"is_suspended": false,
"is_usable": false,
"billing": {
"service_id": null,
"invoice_id": null,
"invoice_url": null,
"checkout_uuid": null,
"invoice_status": null,
"amount": "3.00",
"currency": "USD",
"billing_cycle": "Monthly",
"payment_due_at": "2026-09-14T17:12:09+00:00",
"payment_window_minutes": 30,
"paid_at": null
},
"cancellation_type": null,
"cancellation_requested_at": null,
"autopay": false,
"can_cancel": false,
"can_resize": false,
"pending_resize": null,
"created_at": "2026-09-14T16:42:09+00:00"
}{
"message": "The request could not be carried out."
}{
"message": "Unauthenticated."
}{
"message": "The request could not be carried out."
}{
"message": "This API key is not allowed to do that in this team. It needs the \"snapshot.delete\" permission."
}{
"message": "The name field is required.",
"errors": {}
}{
"message": "Too Many Attempts."
}Buy a snapshot storage
Overview
Orders a snapshot storage of size_gb GiB, between the catalogue’s min_gb and max_gb, paid from account credit. An optional name of up to 64 characters labels it. Returns the storage awaiting payment; snapshots can be stored in it once its status is active. If more credit is needed, status_label shows Needs funds and progress_message gives the amount. Add funds before the payment deadline or the order expires.
Permissions
Requires the billing.purchase (Make purchases) permission for the selected team. Resources outside that team return 404.
curl --request POST \
--url https://console.advinservers.com/api/v1/client/snapshots/storages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"size_gb": 200,
"name": null
}
'import requests
url = "https://console.advinservers.com/api/v1/client/snapshots/storages"
payload = {
"size_gb": 200,
"name": None
}
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({size_gb: 200, name: null})
};
fetch('https://console.advinservers.com/api/v1/client/snapshots/storages', 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/snapshots/storages",
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([
'size_gb' => 200,
'name' => null
]),
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/snapshots/storages"
payload := strings.NewReader("{\n \"size_gb\": 200,\n \"name\": null\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/snapshots/storages")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"size_gb\": 200,\n \"name\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://console.advinservers.com/api/v1/client/snapshots/storages")
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 \"size_gb\": 200,\n \"name\": null\n}"
response = http.request(request)
puts response.read_body{
"uuid": "403f9bb0-bea0-4885-8960-8f6a3f27a21a",
"name": "Storage 3",
"status": "pending_payment",
"status_label": "Provisioning",
"progress_message": null,
"needs_funds": false,
"size_gb": 200,
"capacity": 214748364800,
"used": 0,
"remaining": 214748364800,
"snapshots_count": 0,
"is_suspended": false,
"is_usable": false,
"billing": {
"service_id": null,
"invoice_id": null,
"invoice_url": null,
"checkout_uuid": null,
"invoice_status": null,
"amount": "3.00",
"currency": "USD",
"billing_cycle": "Monthly",
"payment_due_at": "2026-09-14T17:12:09+00:00",
"payment_window_minutes": 30,
"paid_at": null
},
"cancellation_type": null,
"cancellation_requested_at": null,
"autopay": false,
"can_cancel": false,
"can_resize": false,
"pending_resize": null,
"created_at": "2026-09-14T16:42:09+00:00"
}{
"message": "The request could not be carried out."
}{
"message": "Unauthenticated."
}{
"message": "The request could not be carried out."
}{
"message": "This API key is not allowed to do that in this team. It needs the \"snapshot.delete\" permission."
}{
"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.
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 snapshot storage: what it is, how full it is, what it costs, and what may be done with it right now.
The uuid UUID.
"9e83397b-d88e-43ae-bfb7-a8c2e6eda853"
The name shown to customers.
"Storage 1"
The value of status.
pending_payment, active, pending_cancellation, terminating, terminated, expired, payment_review "active"
The status in the customer's words, with suspension first.
"Active"
What the purchase is waiting on, when it is waiting on something.
null
Whether the purchase is waiting for the account to hold enough credit.
false
The size bought, in whole GiB.
200
The size bought, in bytes.
214748364800
What the finished snapshots in it occupy, in bytes.
85899345920
Capacity less used, never below nought, in bytes.
128849018880
The number of snapshots count.
1
Whether billing has suspended it. Its snapshots are frozen while it is.
false
Whether snapshots may be taken into, restored from, deleted from or moved in or out of it.
true
The value of billing.
Show child attributes
Show child attributes
{
"service_id": 7436,
"invoice_id": 16388,
"invoice_url": null,
"checkout_uuid": null,
"invoice_status": "Paid",
"amount": "3.00",
"currency": "USD",
"billing_cycle": "Monthly",
"payment_due_at": null,
"payment_window_minutes": 30,
"paid_at": "2026-06-03T17:26:52+00:00"
}
The value of cancellation_type.
immediate, end_of_billing, null null
The date and time for cancellation requested at, in UTC.
null
The value of autopay.
false
Whether the customer can cancel.
false
Whether the customer can resize.
true
A change of size still being paid for or written to billing.
Show child attributes
Show child attributes
null
The date and time for created at, in UTC.
"2026-06-03T17:26:40+00:00"