Skip to content

Get tenant details API Reference

GET
/tenants/{tenant}
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.

tenant
required
string

Tenant name

Tenant details

Media type application/json
object
contactEmail
string
createdAt
string
displayName
string
enforceLogLimit
boolean
enforceMetricsLimit
boolean
members
Array<object>
object
email
string
role
string
name
string
plan
string
resourceVersion
string
status
object
allocatedResources
object
cpu
string
memory
string
storage
string
billing
object
nextBillingDate

NextBillingDate is when the next arrears bill fires (RFC 3339).

string
paddleSubscriptionStatus

PaddleSubscriptionStatus mirrors the Paddle payment-vehicle subscription status. The tenant is billing-ready only while this is active or trialing.

string
Allowed values: active trialing past_due paused canceled
remainingCredits

RemainingCredits is the current remaining promotional credit balance.

string
clusterCount
integer
currentUsage
object
compute
object
cpuCoreHours
string
cpuCost
string
memoryCost
string
memoryGiBHours
string
storageCost
string
storageGiBHours
string
currency
string
error
string
estimatedCreditsApplied
string
estimatedSubtotal
string
estimatedTotal
string
haCost

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.

string
observability
object
billableActiveSeriesP95
integer
currentActiveSeries
integer
logIngestBytes
integer
logIngestGB
string
logOverageCost
string
metricsOverageCost
string
periodEnd
string
periodStart
string
planChangedInPeriod
boolean
stale
boolean
updatedAt
string
phase
string
poolResources
object
cpu
string
memory
string
storage
string
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"
}
}
}
ETag
string

Resource version for optimistic locking

Invalid tenant name

Media type application/json
object
code
string
error
string
field
string
message
string
severity
string
Example generated
{
"code": "example",
"error": "example",
"field": "example",
"message": "example",
"severity": "example"
}

Missing or invalid authentication

Media type application/json
object
code
string
error
string
field
string
message
string
severity
string
Example generated
{
"code": "example",
"error": "example",
"field": "example",
"message": "example",
"severity": "example"
}

Not a member of this tenant

Media type application/json
object
code
string
error
string
field
string
message
string
severity
string
Example generated
{
"code": "example",
"error": "example",
"field": "example",
"message": "example",
"severity": "example"
}

Tenant not found

Media type application/json
object
code
string
error
string
field
string
message
string
severity
string
Example generated
{
"code": "example",
"error": "example",
"field": "example",
"message": "example",
"severity": "example"
}

Rate limit exceeded

Media type application/json
object
code
string
error
string
field
string
message
string
severity
string
Example generated
{
"code": "example",
"error": "example",
"field": "example",
"message": "example",
"severity": "example"
}