Get billing summary
Returns team-level financial information for the authenticated team’s current billing period. All charge fields are monetary USD values, not raw usage metrics. The team is derived from authentication; callers cannot select a team by query parameter.
Access requires billing:read and the tenant_usage_dashboard
rollout gate to be enabled for the team.
Phase 1 assumes no pricing tier or rate changes within the current billing period. The summary applies the team’s currently active pricing rates to all current-period usage.
curl --request GET \
--url https://api.superserve.ai/billing/summary \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.superserve.ai/billing/summary"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.superserve.ai/billing/summary', 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.superserve.ai/billing/summary",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$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.superserve.ai/billing/summary"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
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.superserve.ai/billing/summary")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.superserve.ai/billing/summary")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"mode": "shadow",
"billing_mode": "shadow",
"permissions": {
"can_view": true,
"can_manage": true
},
"checkout_available": true,
"portal_available": true,
"payment_setup_required": true,
"current_charges_usd": 123,
"credits_applied_usd": 123,
"credits_remaining_usd": 123,
"expected_invoice_amount_usd": 123,
"cost_breakdown_usd": {
"compute": 123,
"memory": 123,
"storage": 123
},
"resources": [
{
"resource_key": "<string>",
"resource": "<string>",
"display_name": "<string>",
"sort_order": 123,
"unit": "<string>",
"display_unit": "<string>",
"usage": 123,
"tracked": true,
"billable": true,
"charge_usd": 123
}
],
"billing_period": {
"start": "2023-11-07T05:31:56Z",
"end": "2023-11-07T05:31:56Z"
},
"pricing_tier": {
"plan_key": "payg",
"plan_name": "Pay-as-you-go",
"currency": "USD"
},
"trial": {
"grant_usd": 123,
"consumed_usd": 123,
"remaining_usd": 123,
"state": "no_grant",
"eligible": true
},
"calculated_at": "2023-11-07T05:31:56Z",
"stripe_credit_balance_usd": 123,
"stripe_credits_applied_usd": 123,
"stripe_remaining_credit_usd": 123,
"credit_source": "local_trial",
"credit_status": "available",
"credit_observed_at": "2023-11-07T05:31:56Z",
"resources_by_key": {}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Authorizations
Response
Current billing period financial summary
shadow, live shadow, live Show child attributes
Show child attributes
Current period charges before credits.
Credits applied against the current period charges.
Credits still available after applying current period charges.
Expected invoice amount after credits.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Timestamp when this live billing summary was calculated.
Stripe-authoritative aggregate remaining credit; null when unavailable.
local_trial, stripe available, unavailable Show child attributes
Show child attributes
curl --request GET \
--url https://api.superserve.ai/billing/summary \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.superserve.ai/billing/summary"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.superserve.ai/billing/summary', 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.superserve.ai/billing/summary",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$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.superserve.ai/billing/summary"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
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.superserve.ai/billing/summary")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.superserve.ai/billing/summary")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"mode": "shadow",
"billing_mode": "shadow",
"permissions": {
"can_view": true,
"can_manage": true
},
"checkout_available": true,
"portal_available": true,
"payment_setup_required": true,
"current_charges_usd": 123,
"credits_applied_usd": 123,
"credits_remaining_usd": 123,
"expected_invoice_amount_usd": 123,
"cost_breakdown_usd": {
"compute": 123,
"memory": 123,
"storage": 123
},
"resources": [
{
"resource_key": "<string>",
"resource": "<string>",
"display_name": "<string>",
"sort_order": 123,
"unit": "<string>",
"display_unit": "<string>",
"usage": 123,
"tracked": true,
"billable": true,
"charge_usd": 123
}
],
"billing_period": {
"start": "2023-11-07T05:31:56Z",
"end": "2023-11-07T05:31:56Z"
},
"pricing_tier": {
"plan_key": "payg",
"plan_name": "Pay-as-you-go",
"currency": "USD"
},
"trial": {
"grant_usd": 123,
"consumed_usd": 123,
"remaining_usd": 123,
"state": "no_grant",
"eligible": true
},
"calculated_at": "2023-11-07T05:31:56Z",
"stripe_credit_balance_usd": 123,
"stripe_credits_applied_usd": 123,
"stripe_remaining_credit_usd": 123,
"credit_source": "local_trial",
"credit_status": "available",
"credit_observed_at": "2023-11-07T05:31:56Z",
"resources_by_key": {}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}