Get tenant details API Reference
const url = 'https://api.kupe.cloud/api/v1/tenants/acme';const options = {method: 'GET', headers: {Authorization: '<Authorization>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.kupe.cloud/api/v1/tenants/acme \ --header 'Authorization: <Authorization>'Retrieve full details for a tenant including plan, members, resource usage, and status. The response includes an ETag header for use with optimistic locking on subsequent PATCH requests.
Authorizations
Section titled “ Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “ Path Parameters ”Tenant name
Responses
Section titled “ Responses ”Tenant details
object
object
object
object
object
NextBillingDate is when the next arrears bill fires (RFC 3339).
PaddleSubscriptionStatus mirrors the Paddle payment-vehicle subscription status. The tenant is billing-ready only while this is active or trialing.
RemainingCredits is the current remaining promotional credit balance.
object
object
HACost is the estimated high-availability charge accrued so far this period (live HA plus any drained pending HA charges). Exposed as its own bucket so the displayed breakdown reconciles to EstimatedSubtotal.
object
object
Example
{ "contactEmail": "admin@acme.com", "createdAt": "2026-01-15T10:30:00Z", "displayName": "Acme Corp", "enforceLogLimit": false, "enforceMetricsLimit": true, "members": [ { "email": "alice@acme.com", "role": "admin" } ], "name": "acme", "plan": "pro", "resourceVersion": "184920", "status": { "allocatedResources": { "cpu": "8", "memory": "32", "storage": "200" }, "billing": { "nextBillingDate": "2026-07-01T00:00:00Z", "paddleSubscriptionStatus": "active", "remainingCredits": "25.00" }, "clusterCount": 3, "currentUsage": { "compute": { "cpuCoreHours": "2976.00", "cpuCost": "89.28", "memoryCost": "35.83", "memoryGiBHours": "5971.97", "storageCost": "8.63", "storageGiBHours": "74400.00" }, "currency": "GBP", "estimatedCreditsApplied": "10.00", "estimatedSubtotal": "166.15", "estimatedTotal": "156.15", "haCost": "21.60", "observability": { "billableActiveSeriesP95": 41000, "currentActiveSeries": 42000, "logIngestBytes": 12500000000, "logIngestGB": "12.50", "logOverageCost": "0.00", "metricsOverageCost": "0.00" }, "periodEnd": "2026-04-30T12:00:00Z", "periodStart": "2026-04-01T00:00:00Z", "planChangedInPeriod": false, "stale": false, "updatedAt": "2026-04-07T12:00:00Z" }, "phase": "Active", "poolResources": { "cpu": "8", "memory": "32", "storage": "200" } }}Headers
Section titled “ Headers ”Resource version for optimistic locking
Invalid tenant name
object
Example generated
{ "code": "example", "error": "example", "field": "example", "message": "example", "severity": "example"}Missing or invalid authentication
object
Example generated
{ "code": "example", "error": "example", "field": "example", "message": "example", "severity": "example"}Not a member of this tenant
object
Example generated
{ "code": "example", "error": "example", "field": "example", "message": "example", "severity": "example"}Tenant not found
object
Example generated
{ "code": "example", "error": "example", "field": "example", "message": "example", "severity": "example"}Rate limit exceeded
object
Example generated
{ "code": "example", "error": "example", "field": "example", "message": "example", "severity": "example"}