Share feedback
Answers are generated based on the documentation.

Delete image manifest

DELETE/v2/{name}/manifests/{reference}

Delete an image manifest from a repository by digest.

Only untagged or unreferenced manifests can be deleted. If the manifest is still referenced by a tag or another image, the registry will return 403 Forbidden.

This operation requires delete access to the repository.

Note

Manifest deletion operations may take some time and could return a 500 Internal Server Error. The system automatically retries the deletion in the background. Manual intervention is not required.

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 repository

Type: string

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

reference path Required

Digest of the manifest to delete (e.g., sha256:...)

Type: string

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

Request and responses

Response 202

Manifest deleted successfully. No content returned.

No response content is declared.

Response 401

Authentication required.

No response content is declared.

Response 403

Access denied. The manifest may still be referenced.

No response content is declared.

Response 404

Manifest or repository not found.

No response content is declared.

Response 405

Only digest-based deletion is allowed.

No response content is declared.

Response 429

Too many requests.

No response content is declared.

Referenced schemas

Complete operation contract
{
  "description": "Delete an image manifest from a repository by digest.\n\nOnly untagged or unreferenced manifests can be deleted. If the manifest is still referenced by a tag or another image, the registry will return `403 Forbidden`.\n\nThis operation requires `delete` access to the repository.\n\n\u003e **Note**\n\u003e\n\u003e Manifest deletion operations may take some time and could return a `500 Internal Server Error`. The system automatically retries the deletion in the background. Manual intervention is not required.\n",
  "operationId": "DeleteImageManifest",
  "parameters": [
    {
      "description": "Name of the repository",
      "example": "yourusername/helloworld",
      "in": "path",
      "name": "name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "description": "Digest of the manifest to delete (e.g., `sha256:...`)",
      "example": "sha256:abc123def456...",
      "in": "path",
      "name": "reference",
      "required": true,
      "schema": {
        "type": "string"
      }
    }
  ],
  "responses": {
    "202": {
      "description": "Manifest deleted successfully. No content returned."
    },
    "401": {
      "description": "Authentication required."
    },
    "403": {
      "description": "Access denied. The manifest may still be referenced."
    },
    "404": {
      "description": "Manifest or repository not found."
    },
    "405": {
      "description": "Only digest-based deletion is allowed."
    },
    "429": {
      "description": "Too many requests."
    }
  },
  "summary": "Delete image manifest",
  "tags": [
    "Manifests"
  ],
  "x-codeSamples": [
    {
      "label": "cURL",
      "lang": "Bash",
      "source": "# DELETE a manifest by digest\ncurl -X DELETE \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  https://registry-1.docker.io/v2/yourusername/helloworld/manifests/sha256:abc123def456...\n"
    }
  ]
}