curl --request POST \
--url https://console.advinservers.com/api/v1/client/snapshots/storages/{snapshotStorage}/resize/quote \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"size_gb": 300
}'import requests
url = "https://console.advinservers.com/api/v1/client/snapshots/storages/{snapshotStorage}/resize/quote"
payload = { "size_gb": 300 }
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: 300})
};
fetch('https://console.advinservers.com/api/v1/client/snapshots/storages/{snapshotStorage}/resize/quote', 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/{snapshotStorage}/resize/quote",
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' => 300
]),
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/{snapshotStorage}/resize/quote"
payload := strings.NewReader("{\n \"size_gb\": 300\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/{snapshotStorage}/resize/quote")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"size_gb\": 300\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://console.advinservers.com/api/v1/client/snapshots/storages/{snapshotStorage}/resize/quote")
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\": 300\n}"
response = http.request(request)
puts response.read_body{
"from_gb": 200,
"to_gb": 300,
"amount": "0.95",
"refund_amount": "0.00",
"currency": "USD",
"current_recurring_amount": "3.00",
"target_recurring_amount": "4.50",
"billing_cycle": "Monthly",
"days_remaining": 19,
"total_days": 30
}{
"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 name field is required.",
"errors": {}
}{
"message": "Too Many Attempts."
}Get a quote for resizing a snapshot storage
Overview
Returns the charge or refund for changing the storage to size_gb now. The amount is prorated over the time left in the current billing period. Nothing is changed.
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/{snapshotStorage}/resize/quote \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"size_gb": 300
}'import requests
url = "https://console.advinservers.com/api/v1/client/snapshots/storages/{snapshotStorage}/resize/quote"
payload = { "size_gb": 300 }
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: 300})
};
fetch('https://console.advinservers.com/api/v1/client/snapshots/storages/{snapshotStorage}/resize/quote', 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/{snapshotStorage}/resize/quote",
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' => 300
]),
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/{snapshotStorage}/resize/quote"
payload := strings.NewReader("{\n \"size_gb\": 300\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/{snapshotStorage}/resize/quote")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"size_gb\": 300\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://console.advinservers.com/api/v1/client/snapshots/storages/{snapshotStorage}/resize/quote")
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\": 300\n}"
response = http.request(request)
puts response.read_body{
"from_gb": 200,
"to_gb": 300,
"amount": "0.95",
"refund_amount": "0.00",
"currency": "USD",
"current_recurring_amount": "3.00",
"target_recurring_amount": "4.50",
"billing_cycle": "Monthly",
"days_remaining": 19,
"total_days": 30
}{
"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 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 snapshot storage UUID
"9e83397b-d88e-43ae-bfb7-a8c2e6eda853"
Body
Send a JSON object containing the fields below. Required fields are marked in the schema.
The value of size_gb.
100 <= x <= 10000Response
The record, as a JSON object. There is no envelope.
What changing a snapshot storage's size would cost or refund right now, prorated over what is left of the service's current period.
The value of from_gb.
200
The value of to_gb.
300
Charged now, from account credit, for a larger size.
"0.95"
Credited back, for a smaller size.
"0.00"
The three-letter currency code used for monetary amounts.
"USD"
The value of current_recurring_amount.
"3.00"
The value of target_recurring_amount.
"4.50"
How often the service renews and is billed.
"Monthly"
The value of days_remaining.
19
The value of total_days.
30