Skip to content

List registries API Reference

GET
/tenants/{tenant}/registries
curl --request GET \
--url https://api.kupe.cloud/api/v1/tenants/acme/registries \
--header 'Authorization: <Authorization>'

List the tenant’s container registry: a tenant has at most one, named registry. Served even while the platform has the registry switched off, so an existing one can always be found and deleted.

tenant
required
string

Tenant name

The tenant’s registry, if it has one

Media type application/json
object
items
Array<object>
object
createdAt
string
deletionProtection

DeletionProtection must be false before the registry can be deleted.

boolean
generation

Generation increments on every spec change; compare with status.observedGeneration.

integer
name
string
resourceVersion
string
status
object
artifactCount

ArtifactCount counts every stored item: each image, each platform image of a multi-platform image, and signatures.

integer
conditions

Conditions include Ready, Provisioned and StorageFull.

Array<object>
object
key
additional properties
endpoint

Endpoint is the image path prefix to push to and pull from.

string
phase
string
Allowed values: Pending Provisioning Running Degraded Terminating
repositoryCount

RepositoryCount is the number of repositories.

integer
storageLimitBytes

StorageLimitBytes is the storage cap in force, in bytes; -1 means unlimited. Absent until a cap has been applied.

integer
storageUsedBytes

StorageUsedBytes is what the registry stores, in bytes.

integer
usageObservedAt

UsageObservedAt is when the usage figures were last read.

string
storageLimit

StorageLimit is the tenant’s own cap below the plan’s; empty means the plan’s cap.

string
Example
{
"items": [
{
"createdAt": "2026-10-21T10:00:00Z",
"deletionProtection": true,
"generation": 2,
"name": "registry",
"resourceVersion": "582019",
"status": {
"artifactCount": 12,
"endpoint": "registry.kupe.cloud/acme",
"phase": "Pending",
"repositoryCount": 3,
"storageLimitBytes": 10737418240,
"storageUsedBytes": 1073741824,
"usageObservedAt": "2026-10-21T10:05:00Z"
},
"storageLimit": "10Gi"
}
]
}

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"
}

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"
}