curl --request GET \
--url https://api.mountthor.com/v1/admin/billing/usage \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.mountthor.com/v1/admin/billing/usage"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.mountthor.com/v1/admin/billing/usage', 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://api.mountthor.com/v1/admin/billing/usage",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.mountthor.com/v1/admin/billing/usage"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.mountthor.com/v1/admin/billing/usage")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mountthor.com/v1/admin/billing/usage")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"buckets": [
{
"bucket_start": "2026-05-24T17:00:00Z",
"by_class": [
{
"billable_seconds": 123,
"lifecycle_count": 123,
"raw_active_seconds": 123,
"resource_class": "m4-24g",
"resource_kind": "BareMetalMachine"
}
]
}
],
"by_tenant": [
{
"billable_seconds": 123,
"by_class": [
{
"billable_seconds": 123,
"lifecycle_count": 123,
"raw_active_seconds": 123,
"resource_class": "m4-24g",
"resource_kind": "BareMetalMachine"
}
],
"lifecycle_count": 123,
"raw_active_seconds": 123,
"tenant_id": "22222222-2222-2222-2222-222222222222",
"tenant_slug": "acme-prod"
}
],
"customer_id": "<string>",
"period": {
"bucket": "hour",
"end": "2026-05-25T00:00:00Z",
"start": "2026-05-24T00:00:00Z"
},
"summary": {
"billable_seconds": 123,
"by_class": [
{
"billable_seconds": 123,
"lifecycle_count": 123,
"raw_active_seconds": 123,
"resource_class": "m4-24g",
"resource_kind": "BareMetalMachine"
}
],
"lifecycle_count": 123,
"raw_active_seconds": 123
}
}"<string>"List Billing Usage
Returns usage aggregated across every tenant under the customer
account, plus a per-tenant breakdown. Window semantics match
/v1/admin/fleet/usage: 24h -> hourly buckets; 7d, month, and a
closed YYYY-MM calendar month -> daily buckets. Open lifecycles report
elapsed raw time; per-class billing minimums apply only on closed
lifecycles.
curl --request GET \
--url https://api.mountthor.com/v1/admin/billing/usage \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.mountthor.com/v1/admin/billing/usage"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.mountthor.com/v1/admin/billing/usage', 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://api.mountthor.com/v1/admin/billing/usage",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.mountthor.com/v1/admin/billing/usage"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.mountthor.com/v1/admin/billing/usage")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mountthor.com/v1/admin/billing/usage")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"buckets": [
{
"bucket_start": "2026-05-24T17:00:00Z",
"by_class": [
{
"billable_seconds": 123,
"lifecycle_count": 123,
"raw_active_seconds": 123,
"resource_class": "m4-24g",
"resource_kind": "BareMetalMachine"
}
]
}
],
"by_tenant": [
{
"billable_seconds": 123,
"by_class": [
{
"billable_seconds": 123,
"lifecycle_count": 123,
"raw_active_seconds": 123,
"resource_class": "m4-24g",
"resource_kind": "BareMetalMachine"
}
],
"lifecycle_count": 123,
"raw_active_seconds": 123,
"tenant_id": "22222222-2222-2222-2222-222222222222",
"tenant_slug": "acme-prod"
}
],
"customer_id": "<string>",
"period": {
"bucket": "hour",
"end": "2026-05-25T00:00:00Z",
"start": "2026-05-24T00:00:00Z"
},
"summary": {
"billable_seconds": 123,
"by_class": [
{
"billable_seconds": 123,
"lifecycle_count": 123,
"raw_active_seconds": 123,
"resource_class": "m4-24g",
"resource_kind": "BareMetalMachine"
}
],
"lifecycle_count": 123,
"raw_active_seconds": 123
}
}"<string>"Authorizations
Bearer scheme name used by typed customer admin operations.
Query Parameters
Window: 24h, 7d, month, or a closed YYYY-MM calendar month.
Response
Customer-aggregated billing usage
Customer-aggregated billing usage response.
Customer-level time-series buckets summed across every tenant.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Stable UUID for the customer account.
Window and bucket size used for this response.
Show child attributes
Show child attributes
Customer-level totals summed across every tenant under the customer.
Show child attributes
Show child attributes