Skip to content

List images API Reference

GET
/tenants/{tenant}/registries/{name}/repositories/{repository}/images
curl --request GET \
--url 'https://api.kupe.cloud/api/v1/tenants/acme/registries/registry/repositories/team-a%252Fapi/images?page=1&pageSize=25' \
--header 'Authorization: <Authorization>'

List the images of a repository, most recently pushed first, each with its tags, size and platforms. A multi-platform image is one item of type index listing its platforms; its per-platform images are not listed separately. tagged=false lists only the untagged images, which keep using storage until deleted; tagged=true only the tagged ones.

tenant
required
string

Tenant name

name
required
string

Registry name: always registry

repository
required
string

Repository name without the registry and tenant, with each / encoded as %2F

tagged
boolean

True: tagged images only; false: untagged images only; absent: all

page
integer
default: 1 >= 1 <= 10000

Page, from 1

pageSize
integer
default: 25 >= 1 <= 100

Images per page

One page of images

Media type application/json
object
items
Array<object>
object
artifactType

ArtifactType is the manifest’s artifactType, or its config’s media type when the manifest names none (OCI).

string
digest
string
lastPulledAt

LastPulledAt is absent while the image was never pulled.

string
links
object
self

Self is the image’s canonical URL, always by digest.

string
mediaType

MediaType is the manifest’s media type.

string
platforms

Platforms lists a multi-platform image’s platforms, or a single image’s own; empty when unknown (a chart).

Array<object>
object
architecture
string
digest

Digest is the platform image’s digest (for a single image, its own).

string
os
string
variant
string
pull
object
byDigest

ByDigest pulls exactly this image.

string
byTag

ByTag is one reference per tag; empty for an untagged image.

Array<string>
pushedAt
string
repository
string
size

Size is in bytes.

integer
tags

Tags is empty for an untagged image.

Array<object>
object
lastPulledAt

LastPulledAt is absent while the tag was never pulled.

string
name
string
pushedAt
string
type

Type is index for a multi-platform image.

string
Allowed values: image chart index other
page
integer
pageSize
integer
total

Total is the number of images across every page.

integer
Example
{
"items": [
{
"artifactType": "application/vnd.oci.image.config.v1+json",
"digest": "sha256:4f8c0d0e4b1f2b6e7e0c6a3d6c0f3a9e8d7c6b5a4f3e2d1c0b9a8f7e6d5c4b3a",
"lastPulledAt": "2026-10-21T13:00:00Z",
"links": {
"self": "/api/v1/tenants/acme/registries/registry/repositories/team-a%2Fapi/images/sha256:4f8c0d0e4b1f2b6e7e0c6a3d6c0f3a9e8d7c6b5a4f3e2d1c0b9a8f7e6d5c4b3a"
},
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"platforms": [
{
"architecture": "amd64",
"digest": "sha256:9a8b7c6d5e4f3a2b1c0d9e8f7a6b5c4d3e2f1a0b9c8d7e6f5a4b3c2d1e0f9a8b",
"os": "linux",
"variant": ""
}
],
"pull": {
"byDigest": "registry.kupe.cloud/acme/team-a/api@sha256:4f8c0d0e4b1f2b6e7e0c6a3d6c0f3a9e8d7c6b5a4f3e2d1c0b9a8f7e6d5c4b3a",
"byTag": [
"registry.kupe.cloud/acme/team-a/api:v1.4.2"
]
},
"pushedAt": "2026-10-21T12:30:00Z",
"repository": "team-a/api",
"size": 12345678,
"tags": [
{
"lastPulledAt": "2026-10-21T13:00:00Z",
"name": "v1.4.2",
"pushedAt": "2026-10-21T12:30:00Z"
}
],
"type": "image"
}
],
"page": 1,
"pageSize": 25,
"total": 42
}

Invalid name, repository, tagged, page or pageSize

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

The registry is not ready yet (code registry_not_ready)

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

The registry is busy or temporarily unavailable; retry

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