Share feedback
Answers are generated based on the documentation.

Get image manifest

GET/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+json
  • application/vnd.docker.distribution.manifest.list.v2+json
  • application/vnd.oci.image.manifest.v1+json
  • application/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

Name of the target repository

Type: string

All schema constraints and annotations
{
  "type": "string"
}

reference path Required

Tag or digest of the target manifest

Type: string

All schema constraints and annotations
{
  "type": "string"
}

Request and responses

Response 200

Manifest fetched successfully.

application/vnd.docker.distribution.manifest.v2+json

Headers

Content-Type

Media type of the returned manifest.

{
  "description": "Media type of the returned manifest.",
  "schema": {
    "type": "string"
  }
}
Docker-Content-Digest

Digest 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

Invalid name or reference.

No response content is declared.

Response 401

Authentication required.

No response content is declared.

Response 403

Access denied.

No response content is declared.

Response 404

Repository or manifest not found.

No response content is declared.

Response 429

Too many requests.

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