# Get image manifest


[API catalog](/reference/api/) · [Registry overview](/reference/api/registry/latest/) · [Product manual](https://docs.docker.com/docker-hub/repos/) · [OpenAPI specification](/reference/api/registry/latest.yaml)

API version: 2



`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](/reference/api/registry/latest/#authentication)


Server: `https://registry-1.docker.io`

Effective security: alternatives are OR; schemes within an alternative are AND. An empty array declares no HTTP authentication requirement.

```json
[
  {
    "registryToken": []
  }
]
```
## Example request

Replace placeholders and provide the required credentials or request body.

```console
curl \
  --request GET \
  --header "Authorization: Bearer ${REGISTRY_TOKEN}" \
  --header 'Accept: application/vnd.docker.distribution.manifest.v2+json' \
  'https://registry-1.docker.io/v2/library%2Fubuntu/manifests/<REFERENCE>'
```

## Parameters

### name

Location: path. Required: yes.

Name of the target repository

```json
{
  "description": "Name of the target repository",
  "example": "library/ubuntu",
  "in": "path",
  "name": "name",
  "pointer": "/paths/~1v2~1{name}~1manifests~1{reference}/get/parameters/0",
  "required": true,
  "schema": {
    "type": "string"
  }
}
```

### reference

Location: path. Required: yes.

Tag or digest of the target manifest

```json
{
  "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",
  "pointer": "/paths/~1v2~1{name}~1manifests~1{reference}/get/parameters/1",
  "required": true,
  "schema": {
    "type": "string"
  }
}
```

## Request and responses

### Response 200 application/vnd.docker.distribution.manifest.v2+json

Manifest fetched successfully.


Schema:

```json
{
  "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"
}
```



Headers:

```json
{
  "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"
    }
  }
}
```


docker-manifest:
```json
{
  "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.






## Complete operation contract

```json
{
  "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"
}
```

## Referenced schemas




