Get image manifest
/v2/{name}/manifests/{reference} Fetch the manifest identified by name and reference, where reference can be a tag (e.g., latest) or a digest (e.g., sha256:...).
The manifest contains metadata about the image, including configuration and layer digests. It is required for pulling images from the registry.
This endpoint requires authentication. Use the Authorization: Bearer <token> header.
Use the Accept header to select the manifest representation. Supported media types:
application/vnd.docker.distribution.manifest.v2+jsonapplication/vnd.docker.distribution.manifest.list.v2+jsonapplication/vnd.oci.image.manifest.v1+jsonapplication/vnd.oci.image.index.v1+json
Connection and access
API connection and authentication guidance
https://registry-1.docker.io
—
Docker Hub registry API
Use one of these alternatives. Requirements within an alternative apply together.
registryToken
Parameters
name
path
Required
Type:
string
All schema constraints and annotations
{
"type": "string"
}reference
path
Required
Type:
string
All schema constraints and annotations
{
"type": "string"
}Request and responses
Response
200
application/vnd.docker.distribution.manifest.v2+json
Headers
Content-TypeMedia type of the returned manifest.
{
"description": "Media type of the returned manifest.",
"schema": {
"type": "string"
}
}Docker-Content-DigestDigest of the returned manifest content.
{
"description": "Digest of the returned manifest content.",
"schema": {
"type": "string"
}
}Type:
object
config
· required
Type:
object
digest
Type:
string
All schema constraints and annotations
{
"example": "sha256:a3f3e...c1234",
"type": "string"
}mediaType
Type:
string
All schema constraints and annotations
{
"example": "application/vnd.docker.container.image.v1+json",
"type": "string"
}size
Type:
integer
All schema constraints and annotations
{
"example": 7023,
"type": "integer"
}All schema constraints and annotations
{
"properties": {
"digest": {
"example": "sha256:a3f3e...c1234",
"type": "string"
},
"mediaType": {
"example": "application/vnd.docker.container.image.v1+json",
"type": "string"
},
"size": {
"example": 7023,
"type": "integer"
}
},
"type": "object"
}layers
· required
Type:
array
Array item
Type:
object
digest
Type:
string
All schema constraints and annotations
{
"example": "sha256:bcf2...78901",
"type": "string"
}mediaType
Type:
string
All schema constraints and annotations
{
"example": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"type": "string"
}size
Type:
integer
All schema constraints and annotations
{
"example": 32654,
"type": "integer"
}All schema constraints and annotations
{
"properties": {
"digest": {
"example": "sha256:bcf2...78901",
"type": "string"
},
"mediaType": {
"example": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"type": "string"
},
"size": {
"example": 32654,
"type": "integer"
}
},
"type": "object"
}All schema constraints and annotations
{
"items": {
"properties": {
"digest": {
"example": "sha256:bcf2...78901",
"type": "string"
},
"mediaType": {
"example": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"type": "string"
},
"size": {
"example": 32654,
"type": "integer"
}
},
"type": "object"
},
"type": "array"
}mediaType
· required
Type:
string
All schema constraints and annotations
{
"example": "application/vnd.docker.distribution.manifest.v2+json",
"type": "string"
}schemaVersion
· required
Type:
integer
All schema constraints and annotations
{
"example": 2,
"type": "integer"
}All schema constraints and annotations
{
"properties": {
"config": {
"properties": {
"digest": {
"example": "sha256:a3f3e...c1234",
"type": "string"
},
"mediaType": {
"example": "application/vnd.docker.container.image.v1+json",
"type": "string"
},
"size": {
"example": 7023,
"type": "integer"
}
},
"type": "object"
},
"layers": {
"items": {
"properties": {
"digest": {
"example": "sha256:bcf2...78901",
"type": "string"
},
"mediaType": {
"example": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"type": "string"
},
"size": {
"example": 32654,
"type": "integer"
}
},
"type": "object"
},
"type": "array"
},
"mediaType": {
"example": "application/vnd.docker.distribution.manifest.v2+json",
"type": "string"
},
"schemaVersion": {
"example": 2,
"type": "integer"
}
},
"required": [
"schemaVersion",
"mediaType",
"config",
"layers"
],
"type": "object"
}docker-manifest
{
"config": {
"digest": "sha256:123456abcdef...",
"mediaType": "application/vnd.docker.container.image.v1+json",
"size": 7023
},
"layers": [
{
"digest": "sha256:abcdef123456...",
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 32654
},
{
"digest": "sha256:7890abcdef12...",
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 16724
}
],
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"schemaVersion": 2
}Response
400
No response content is declared.
Response
401
No response content is declared.
Response
403
No response content is declared.
Response
404
No response content is declared.
Response
429
No response content is declared.
Referenced schemas
Complete operation contract
{
"description": "Fetch the manifest identified by `name` and `reference`, where `reference` can be a tag (e.g., `latest`) or a digest (e.g., `sha256:...`).\n\nThe manifest contains metadata about the image, including configuration and layer digests. It is required for pulling images from the registry.\n\nThis endpoint requires authentication. Use the `Authorization: Bearer \u003ctoken\u003e` header.\n\nUse the `Accept` header to select the manifest representation. Supported media types:\n\n- `application/vnd.docker.distribution.manifest.v2+json`\n- `application/vnd.docker.distribution.manifest.list.v2+json`\n- `application/vnd.oci.image.manifest.v1+json`\n- `application/vnd.oci.image.index.v1+json`\n",
"operationId": "GetImageManifest",
"parameters": [
{
"description": "Name of the target repository",
"example": "library/ubuntu",
"in": "path",
"name": "name",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "Tag or digest of the target manifest",
"examples": {
"by-digest": {
"summary": "Digest",
"value": "sha256:abc123def456..."
},
"by-tag": {
"summary": "Tag",
"value": "latest"
}
},
"in": "path",
"name": "reference",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/vnd.docker.distribution.manifest.v2+json": {
"examples": {
"docker-manifest": {
"summary": "Docker image manifest (schema v2)",
"value": {
"config": {
"digest": "sha256:123456abcdef...",
"mediaType": "application/vnd.docker.container.image.v1+json",
"size": 7023
},
"layers": [
{
"digest": "sha256:abcdef123456...",
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 32654
},
{
"digest": "sha256:7890abcdef12...",
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 16724
}
],
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"schemaVersion": 2
}
}
},
"schema": {
"properties": {
"config": {
"properties": {
"digest": {
"example": "sha256:a3f3e...c1234",
"type": "string"
},
"mediaType": {
"example": "application/vnd.docker.container.image.v1+json",
"type": "string"
},
"size": {
"example": 7023,
"type": "integer"
}
},
"type": "object"
},
"layers": {
"items": {
"properties": {
"digest": {
"example": "sha256:bcf2...78901",
"type": "string"
},
"mediaType": {
"example": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"type": "string"
},
"size": {
"example": 32654,
"type": "integer"
}
},
"type": "object"
},
"type": "array"
},
"mediaType": {
"example": "application/vnd.docker.distribution.manifest.v2+json",
"type": "string"
},
"schemaVersion": {
"example": 2,
"type": "integer"
}
},
"required": [
"schemaVersion",
"mediaType",
"config",
"layers"
],
"type": "object"
}
}
},
"description": "Manifest fetched successfully.",
"headers": {
"Content-Type": {
"description": "Media type of the returned manifest.",
"schema": {
"type": "string"
}
},
"Docker-Content-Digest": {
"description": "Digest of the returned manifest content.",
"schema": {
"type": "string"
}
}
}
},
"400": {
"description": "Invalid name or reference."
},
"401": {
"description": "Authentication required."
},
"403": {
"description": "Access denied."
},
"404": {
"description": "Repository or manifest not found."
},
"429": {
"description": "Too many requests."
}
},
"summary": "Get image manifest",
"tags": [
"Manifests"
],
"x-codeSamples": [
{
"label": "cURL",
"lang": "Bash",
"source": "# GET a manifest (by tag or digest)\ncurl -H \"Authorization: Bearer $TOKEN\" \\\n -H \"Accept: application/vnd.docker.distribution.manifest.v2+json\" \\\n https://registry-1.docker.io/v2/library/ubuntu/manifests/latest\n"
}
],
"x-displayName": "Manifests"
}