Owner-facing billing state: enforced plan plus this window's use count against the free allowance. included is null when metering is off or the plan is paid. The vault's cap banner reads this. Not MCP.
GET
/v1/billingAuthorization
AuthorizationBearer token (JWT) · headerrequiredHydra JWT. Identity is the bound agent or a Keto member human. The host is not identity.
Responses
200Billing state
planstringrequiredPlan as enforced by the Use gate
Allowed:
freeactiveusedinteger<int64>requiredUses consumed in the current window
includedinteger<int64> | nullrequiredFree allowance per window; null when unlimited (metering off or paid plan)
window_startstring<date-time>requiredwindow_endstring<date-time>requiredupgrade_urlstringVortex checkout/portal link for capped owners
401missing or invalid Bearer
403not owner
Request
curl -X GET "https://veil.nyc/v1/billing" \
-H "Authorization: Bearer YOUR_TOKEN"const response = await fetch("https://veil.nyc/v1/billing", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_TOKEN"
}
});import requests
response = requests.get(
"https://veil.nyc/v1/billing",
headers={
"Authorization": "Bearer YOUR_TOKEN"
},
)Response
{
"plan": "free",
"used": 0,
"included": 0,
"window_start": "2024-01-01T00:00:00Z",
"window_end": "2024-01-01T00:00:00Z",
"upgrade_url": "string"
}missing or invalid Bearer
not owner