Skip to content

Get image API Reference

GET
/tenants/{tenant}/registries/{name}/repositories/{repository}/images/{reference}
curl --request GET \
--url https://api.kupe.cloud/api/v1/tenants/acme/registries/registry/repositories/team-a%252Fapi/images/v1.4.2 \
--header 'Authorization: <Authorization>'

Retrieve one image of a repository by digest (sha256:…) or by tag: its tags, size, platforms and pull references. links.self is the image’s canonical URL, always by digest. Reserved for later versions under it: .../images/{digest}/layers, /vulnerabilities, /sbom and /recommendations.

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

reference
required
string

Image digest (sha256:…) or tag

Image details

Media type application/json
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
Example
{
"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"
}

Invalid name, repository or reference

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