Docker Hub

App · Code Repositories · 9 actions

Work with Docker Hub container images: browse repositories and their tags, check whether an image tag has been published, and create repositories in any namespace the connected account can push to.

Actions

ActionWhat it does
Check repository existsCheck whether a repository exists and the connection can see it, without reading it.
Check repository has tagsCheck whether a repository has any tags at all, without listing them.
Check tag existsCheck whether a specific tag has been published to a repository, without reading it.
Create repositoryCreate a new repository in a namespace, ready for an image to be pushed to it.
Get repositoryGet one repository's details: its description, whether it is private, how many pulls and stars it has, how much storage it uses, and when it was last updated.
Get tagGet one tag's details: the digest it currently points at, its compressed size, who last pushed it, and a per-architecture breakdown of the images behind it.
List namespacesList the namespaces the connection can act in: the connected account's own Docker ID first, then any organizations it belongs to.
List repositoriesList the repositories in a namespace.
List tagsList a repository's tags, most recently pushed first.

Check repository exists

Check whether a repository exists and the connection can see it, without reading it. Use it to branch a workflow before creating or pushing to a repository.

Inputs

NamespacenamespacetextRequired
The Docker ID or organization the repository belongs to (the part before the '/' in 'namespace/repository'). Your own account is listed first.
RepositoryrepositorytextRequired
The repository name to check for (the part after the '/' in 'namespace/repository').

Outputs

existstrue/false
full_nametext
html_urltext
namespacetext
repositorytext
Example output
{
  "exists": true,
  "full_name": "library/nginx",
  "html_url": "https://hub.docker.com/_/nginx",
  "namespace": "library",
  "repository": "nginx"
}

Check repository has tags

Check whether a repository has any tags at all, without listing them. A freshly created repository has none until the first image is pushed.

Inputs

NamespacenamespacetextRequired
The Docker ID or organization the repository belongs to (the part before the '/' in 'namespace/repository'). Your own account is listed first.
RepositoryrepositorytextRequired
The repository to act on (the part after the '/' in 'namespace/repository').

Outputs

has_tagstrue/false
html_urltext
namespacetext
repositorytext
Example output
{
  "has_tags": true,
  "html_url": "https://hub.docker.com/_/nginx",
  "namespace": "library",
  "repository": "nginx"
}

Check tag exists

Check whether a specific tag has been published to a repository, without reading it. Use it to wait for a release tag, or to stop a workflow that would overwrite one.

Inputs

NamespacenamespacetextRequired
The Docker ID or organization the repository belongs to (the part before the '/' in 'namespace/repository'). Your own account is listed first.
RepositoryrepositorytextRequired
The repository to act on (the part after the '/' in 'namespace/repository').
TagtagtextRequired
The tag name to check for, for example 'latest' or 'v1.4.0'.

Outputs

existstrue/false
html_urltext
imagetext
namespacetext
repositorytext
tagtext
Example output
{
  "exists": true,
  "html_url": "https://hub.docker.com/_/nginx/tags?name=latest",
  "image": "library/nginx:latest",
  "namespace": "library",
  "repository": "nginx",
  "tag": "latest"
}

Create repository

Create a new repository in a namespace, ready for an image to be pushed to it. Needs a token with 'Read, Write & Delete' permission: Docker Hub treats making a repository as managing the namespace, not writing to a repository, so a 'Read & Write' token is refused.

Inputs

NamespacenamespacetextRequired
The Docker ID or organization the repository belongs to (the part before the '/' in 'namespace/repository'). Your own account is listed first.
Repository namerepositorytextRequired
The name for the new repository. Lowercase letters, digits, and separators only.
Short descriptiondescriptiontext
The one-line description shown next to the repository, up to 100 characters.
Full descriptionfull_descriptiontext
The long description shown on the repository's page. Markdown is supported.
Privateis_privatetrue/false
Whether only the account and its collaborators can see the repository. Public when left off.Default: false.

Outputs

affiliationtext
categorieslist
collaborator_countnumber
content_typeslist
date_registeredtext
descriptiontext
full_descriptiontext
full_nametext
has_starredtrue/false
html_urltext
is_privatetrue/false
last_modifiedtext
last_updatedtext
media_typeslist
nametext
namespacetext
pull_countnumber
repository_typetext
star_countnumber
status_descriptiontext
storage_sizenumber
Example output
{
  "affiliation": null,
  "categories": [],
  "collaborator_count": 0,
  "content_types": [],
  "date_registered": "2026-08-26T12:00:00.000000Z",
  "description": "API server image",
  "full_description": "Built nightly from main.",
  "full_name": "myusername/my-app",
  "has_starred": false,
  "html_url": "https://hub.docker.com/r/myusername/my-app",
  "is_private": false,
  "last_modified": null,
  "last_updated": null,
  "media_types": [],
  "name": "my-app",
  "namespace": "myusername",
  "pull_count": 0,
  "repository_type": "image",
  "star_count": 0,
  "status_description": "active",
  "storage_size": 0
}

Get repository

Get one repository's details: its description, whether it is private, how many pulls and stars it has, how much storage it uses, and when it was last updated.

Inputs

NamespacenamespacetextRequired
The Docker ID or organization the repository belongs to (the part before the '/' in 'namespace/repository'). Your own account is listed first.
RepositoryrepositorytextRequired
The repository to act on (the part after the '/' in 'namespace/repository').

Outputs

affiliationtext
categorieslist
collaborator_countnumber
content_typeslist
date_registeredtext
descriptiontext
full_descriptiontext
full_nametext
has_starredtrue/false
html_urltext
is_privatetrue/false
last_modifiedtext
last_updatedtext
media_typeslist
nametext
namespacetext
pull_countnumber
repository_typetext
star_countnumber
status_descriptiontext
storage_sizenumber
Example output
{
  "affiliation": null,
  "categories": [
    "Web servers"
  ],
  "collaborator_count": 0,
  "content_types": [
    "image"
  ],
  "date_registered": "2014-06-05T19:14:45Z",
  "description": "Official build of Nginx.",
  "full_description": "# Quick reference\n\nOfficial build of Nginx.",
  "full_name": "library/nginx",
  "has_starred": false,
  "html_url": "https://hub.docker.com/_/nginx",
  "is_private": false,
  "last_modified": "2026-08-19T19:14:19.323791Z",
  "last_updated": "2026-08-25T10:52:46.08001Z",
  "media_types": [
    "application/vnd.oci.image.index.v1+json"
  ],
  "name": "nginx",
  "namespace": "library",
  "pull_count": 13301818814,
  "repository_type": "image",
  "star_count": 21363,
  "status_description": "active",
  "storage_size": 1093352718847
}

Get tag

Get one tag's details: the digest it currently points at, its compressed size, who last pushed it, and a per-architecture breakdown of the images behind it.

Inputs

NamespacenamespacetextRequired
The Docker ID or organization the repository belongs to (the part before the '/' in 'namespace/repository'). Your own account is listed first.
RepositoryrepositorytextRequired
The repository to act on (the part after the '/' in 'namespace/repository').
TagtagtextRequired
The tag to read, for example 'latest' or '1.27-alpine'.

Outputs

content_typetext
digesttext
full_sizenumber
html_urltext
idnumber
imageslist
last_updatedtext
last_updater_usernametext
media_typetext
nametext
platformslist
statustext
tag_last_pulledtext
tag_last_pushedtext
Example output
{
  "content_type": "image",
  "digest": "sha256:db35bfc6b2951e7f8a72db5db120288c127ffaeeb4a6d4b95a26fead017d5913",
  "full_size": 26253895,
  "html_url": "https://hub.docker.com/_/nginx/tags?name=alpine",
  "id": 2255519,
  "images": [
    {
      "architecture": "amd64",
      "digest": "sha256:1f25fedd50aec27413031afb3a4f8ee4effcc9d843f6a76e81bfa92245ac5c06",
      "last_pulled": "2026-08-26T23:00:05.71198411Z",
      "last_pushed": "2026-08-19T22:50:50.894773944Z",
      "os": "linux",
      "size": 26253895,
      "status": "active",
      "variant": null
    }
  ],
  "last_updated": "2026-08-20T04:51:46.706746Z",
  "last_updater_username": "doijanky",
  "media_type": "application/vnd.oci.image.index.v1+json",
  "name": "alpine",
  "platforms": [
    "linux/amd64",
    "linux/arm64",
    "linux/arm/v7"
  ],
  "status": "active",
  "tag_last_pulled": "2026-08-26T23:10:52.048192429Z",
  "tag_last_pushed": "2026-08-20T04:51:46.706746Z"
}

List namespaces

List the namespaces the connection can act in: the connected account's own Docker ID first, then any organizations it belongs to. A namespace is the part before the '/' in an image name, so this is what to read when a workflow needs to know which account it is working as.

Inputs

None.

Outputs

countnumber
namespaceslist
usernametext
Example output
{
  "count": 2,
  "namespaces": [
    "myusername",
    "my-org"
  ],
  "username": "myusername"
}

List repositories

List the repositories in a namespace. Private repositories are included when the connection can see them. Optionally filter by part of a name and choose the sort order.

Inputs

NamespacenamespacetextRequired
The Docker ID or organization the repository belongs to (the part before the '/' in 'namespace/repository'). Your own account is listed first.
Name containsnametext
Only return repositories whose name contains this text. Leave blank for all of them.
Sort byorderingtext
The order to return repositories in.One of: -last_updated (Recently updated first), last_updated (Least recently updated first), -pull_count (Most pulled first), pull_count (Least pulled first), name (Name (A–Z)), -name (Name (Z–A)).
Maximum resultslimitnumber
How many repositories to return at most. Pages are fetched behind the scenes until this many are collected. Defaults to 25.From 1 to 250. Default: 25.

Outputs

countnumber
namespacetext
repositorieslist
Example output
{
  "count": 1,
  "namespace": "library",
  "repositories": [
    {
      "categories": [
        "Web servers"
      ],
      "content_types": [
        "image"
      ],
      "date_registered": "2014-06-05T19:14:45Z",
      "description": "Official build of Nginx.",
      "full_name": "library/nginx",
      "html_url": "https://hub.docker.com/_/nginx",
      "is_private": false,
      "last_updated": "2026-08-25T10:52:46.08001Z",
      "name": "nginx",
      "namespace": "library",
      "pull_count": 13301818814,
      "repository_type": "image",
      "star_count": 21363,
      "status_description": "active",
      "storage_size": 1093352718847
    }
  ]
}

List tags

List a repository's tags, most recently pushed first. Each tag reports its digest, compressed size, the platforms it can run on, and when it was last pushed and pulled.

Inputs

NamespacenamespacetextRequired
The Docker ID or organization the repository belongs to (the part before the '/' in 'namespace/repository'). Your own account is listed first.
RepositoryrepositorytextRequired
The repository to act on (the part after the '/' in 'namespace/repository').
Maximum resultslimitnumber
How many tags to return at most. Pages are fetched behind the scenes until this many are collected. Defaults to 25.From 1 to 250. Default: 25.

Outputs

countnumber
namespacetext
repositorytext
tagslist
Example output
{
  "count": 1,
  "namespace": "library",
  "repository": "nginx",
  "tags": [
    {
      "content_type": "image",
      "digest": "sha256:db35bfc6b2951e7f8a72db5db120288c127ffaeeb4a6d4b95a26fead017d5913",
      "full_size": 26253895,
      "html_url": "https://hub.docker.com/_/nginx/tags?name=alpine",
      "id": 2255519,
      "images": [
        {
          "architecture": "amd64",
          "digest": "sha256:1f25fedd50aec27413031afb3a4f8ee4effcc9d843f6a76e81bfa92245ac5c06",
          "last_pulled": "2026-08-26T23:00:05.71198411Z",
          "last_pushed": "2026-08-19T22:50:50.894773944Z",
          "os": "linux",
          "size": 26253895,
          "status": "active",
          "variant": null
        }
      ],
      "last_updated": "2026-08-20T04:51:46.706746Z",
      "last_updater_username": "doijanky",
      "media_type": "application/vnd.oci.image.index.v1+json",
      "name": "alpine",
      "platforms": [
        "linux/amd64",
        "linux/arm64",
        "linux/arm/v7"
      ],
      "status": "active",
      "tag_last_pulled": "2026-08-26T23:10:52.048192429Z",
      "tag_last_pushed": "2026-08-20T04:51:46.706746Z"
    }
  ]
}

On this page