Get image API Reference
const url = 'https://api.kupe.cloud/api/v1/tenants/acme/registries/registry/repositories/team-a%252Fapi/images/v1.4.2';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/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.
Authorizations
Section titled “ Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “ Path Parameters ”Tenant name
Registry name: always registry
Repository name without the registry and tenant, with each / encoded as %2F
Image digest (sha256:…) or tag
Responses
Section titled “ Responses ”Image details
object
ArtifactType is the manifest’s artifactType, or its config’s media type when the manifest names none (OCI).
LastPulledAt is absent while the image was never pulled.
object
Self is the image’s canonical URL, always by digest.
MediaType is the manifest’s media type.
Platforms lists a multi-platform image’s platforms, or a single image’s own; empty when unknown (a chart).
object
Digest is the platform image’s digest (for a single image, its own).
object
ByDigest pulls exactly this image.
ByTag is one reference per tag; empty for an untagged image.
Size is in bytes.
Tags is empty for an untagged image.
object
LastPulledAt is absent while the tag was never pulled.
Type is index for a multi-platform image.
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
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"}object
Example generated
{ "code": "example", "error": "example", "field": "example", "message": "example", "severity": "example"}The registry is not ready yet (code registry_not_ready)
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"}The registry is busy or temporarily unavailable; retry
object
Example generated
{ "code": "example", "error": "example", "field": "example", "message": "example", "severity": "example"}