curl --request POST \
--url https://console.advinservers.com/api/v1/client/bandwidth-blocks/quote \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"region": "us_eu",
"terabytes": 2
}
'import requests
url = "https://console.advinservers.com/api/v1/client/bandwidth-blocks/quote"
payload = {
"region": "us_eu",
"terabytes": 2
}
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({region: 'us_eu', terabytes: 2})
};
fetch('https://console.advinservers.com/api/v1/client/bandwidth-blocks/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/bandwidth-blocks/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([
'region' => 'us_eu',
'terabytes' => 2
]),
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/bandwidth-blocks/quote"
payload := strings.NewReader("{\n \"region\": \"us_eu\",\n \"terabytes\": 2\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/bandwidth-blocks/quote")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"region\": \"us_eu\",\n \"terabytes\": 2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://console.advinservers.com/api/v1/client/bandwidth-blocks/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 \"region\": \"us_eu\",\n \"terabytes\": 2\n}"
response = http.request(request)
puts response.read_body{
"unit_price": "1.00",
"amount": "2.00",
"currency": "USD",
"terabytes": 2,
"bytes": 2199023255552,
"region": "us_eu",
"region_label": "Americas & EMEA",
"quote_token": "eyJpdiI6InVlNzU5eGpSTitidlhBTGhxVEhzbGc9PSIsInZhbHVlIjoiRTVQSlpwWW9VRk5RWVRzcTMzbWRUQURxVVJCM2xmMVZ5UHlhMXQ5b3Y0eTVRSWFpTk5FdnJwWldEVEpPUkk1dEtkWXlScGwwVEZUcEJrRGRHaEVybzYyUlwvUzNJbG9jUjlld3U2dWllNjZlQU8yU3JTNFdZdXJVV0dSSjBHN2xGIiwibWFjIjoiMTNmODI5MWJjOTJmOWRhM2EzNjU4ZGM2NzgzYTdmNjIxZGE5NzQ2YjVmODRhODdjZWYyZTM5NDA5ZTFjODBmMyIsInRhZyI6IiJ9"
}{
"message": "Unauthenticated."
}{
"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."
}Get a quote for a bandwidth block
Overview
Returns a bandwidth price and signed quote_token. Send region and terabytes. The purchase requires this short-lived token. Amounts are decimal strings. No purchase or charge is made.
Permissions
Requires the network.read (View networking) permission for the selected team. Resources outside that team return 404.
curl --request POST \
--url https://console.advinservers.com/api/v1/client/bandwidth-blocks/quote \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"region": "us_eu",
"terabytes": 2
}
'import requests
url = "https://console.advinservers.com/api/v1/client/bandwidth-blocks/quote"
payload = {
"region": "us_eu",
"terabytes": 2
}
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({region: 'us_eu', terabytes: 2})
};
fetch('https://console.advinservers.com/api/v1/client/bandwidth-blocks/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/bandwidth-blocks/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([
'region' => 'us_eu',
'terabytes' => 2
]),
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/bandwidth-blocks/quote"
payload := strings.NewReader("{\n \"region\": \"us_eu\",\n \"terabytes\": 2\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/bandwidth-blocks/quote")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"region\": \"us_eu\",\n \"terabytes\": 2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://console.advinservers.com/api/v1/client/bandwidth-blocks/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 \"region\": \"us_eu\",\n \"terabytes\": 2\n}"
response = http.request(request)
puts response.read_body{
"unit_price": "1.00",
"amount": "2.00",
"currency": "USD",
"terabytes": 2,
"bytes": 2199023255552,
"region": "us_eu",
"region_label": "Americas & EMEA",
"quote_token": "eyJpdiI6InVlNzU5eGpSTitidlhBTGhxVEhzbGc9PSIsInZhbHVlIjoiRTVQSlpwWW9VRk5RWVRzcTMzbWRUQURxVVJCM2xmMVZ5UHlhMXQ5b3Y0eTVRSWFpTk5FdnJwWldEVEpPUkk1dEtkWXlScGwwVEZUcEJrRGRHaEVybzYyUlwvUzNJbG9jUjlld3U2dWllNjZlQU8yU3JTNFdZdXJVV0dSSjBHN2xGIiwibWFjIjoiMTNmODI5MWJjOTJmOWRhM2EzNjU4ZGM2NzgzYTdmNjIxZGE5NzQ2YjVmODRhODdjZWYyZTM5NDA5ZTFjODBmMyIsInRhZyI6IiJ9"
}{
"message": "Unauthenticated."
}{
"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.
What a purchase would cost, signed so the customer is charged the figure they agreed to.
The value of unit_price.
"1.00"
The amount in the currency shown by currency.
"2.00"
The three-letter currency code used for monetary amounts.
"USD"
The value of terabytes.
2
The value of bytes.
2199023255552
The value of region.
us_eu, apac "us_eu"
The value of region_label.
"Americas & EMEA"
The signed offer, handed back at checkout. It is what makes the price the customer saw the price they are billed, and it expires.
"eyJpdiI6InVlNzU5eGpSTitidlhBTGhxVEhzbGc9PSIsInZhbHVlIjoiRTVQSlpwWW9VRk5RWVRzcTMzbWRUQURxVVJCM2xmMVZ5UHlhMXQ5b3Y0eTVRSWFpTk5FdnJwWldEVEpPUkk1dEtkWXlScGwwVEZUcEJrRGRHaEVybzYyUlwvUzNJbG9jUjlld3U2dWllNjZlQU8yU3JTNFdZdXJVV0dSSjBHN2xGIiwibWFjIjoiMTNmODI5MWJjOTJmOWRhM2EzNjU4ZGM2NzgzYTdmNjIxZGE5NzQ2YjVmODRhODdjZWYyZTM5NDA5ZTFjODBmMyIsInRhZyI6IiJ9"