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
| Action | What it does |
|---|---|
| Check repository exists | Check whether a repository exists and the connection can see it, without reading it. |
| Check repository has tags | Check whether a repository has any tags at all, without listing them. |
| Check tag exists | Check whether a specific tag has been published to a repository, without reading it. |
| Create repository | Create a new repository in a namespace, ready for an image to be pushed to it. |
| 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. |
| 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. |
| List namespaces | List the namespaces the connection can act in: the connected account's own Docker ID first, then any organizations it belongs to. |
| List repositories | List the repositories in a namespace. |
| List tags | List 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
- Namespace
namespacetextRequired - The Docker ID or organization the repository belongs to (the part before the '/' in 'namespace/repository'). Your own account is listed first.
- Repository
repositorytextRequired - The repository name to check for (the part after the '/' in 'namespace/repository').
Outputs
existstrue/falsefull_nametexthtml_urltextnamespacetextrepositorytext
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
- Namespace
namespacetextRequired - The Docker ID or organization the repository belongs to (the part before the '/' in 'namespace/repository'). Your own account is listed first.
- Repository
repositorytextRequired - The repository to act on (the part after the '/' in 'namespace/repository').
Outputs
has_tagstrue/falsehtml_urltextnamespacetextrepositorytext
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
- Namespace
namespacetextRequired - The Docker ID or organization the repository belongs to (the part before the '/' in 'namespace/repository'). Your own account is listed first.
- Repository
repositorytextRequired - The repository to act on (the part after the '/' in 'namespace/repository').
- Tag
tagtextRequired - The tag name to check for, for example 'latest' or 'v1.4.0'.
Outputs
existstrue/falsehtml_urltextimagetextnamespacetextrepositorytexttagtext
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
- Namespace
namespacetextRequired - The Docker ID or organization the repository belongs to (the part before the '/' in 'namespace/repository'). Your own account is listed first.
- Repository name
repositorytextRequired - The name for the new repository. Lowercase letters, digits, and separators only.
- Short description
descriptiontext - The one-line description shown next to the repository, up to 100 characters.
- Full description
full_descriptiontext - The long description shown on the repository's page. Markdown is supported.
- Private
is_privatetrue/false - Whether only the account and its collaborators can see the repository. Public when left off.Default:
false.
Outputs
affiliationtextcategorieslistcollaborator_countnumbercontent_typeslistdate_registeredtextdescriptiontextfull_descriptiontextfull_nametexthas_starredtrue/falsehtml_urltextis_privatetrue/falselast_modifiedtextlast_updatedtextmedia_typeslistnametextnamespacetextpull_countnumberrepository_typetextstar_countnumberstatus_descriptiontextstorage_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
- Namespace
namespacetextRequired - The Docker ID or organization the repository belongs to (the part before the '/' in 'namespace/repository'). Your own account is listed first.
- Repository
repositorytextRequired - The repository to act on (the part after the '/' in 'namespace/repository').
Outputs
affiliationtextcategorieslistcollaborator_countnumbercontent_typeslistdate_registeredtextdescriptiontextfull_descriptiontextfull_nametexthas_starredtrue/falsehtml_urltextis_privatetrue/falselast_modifiedtextlast_updatedtextmedia_typeslistnametextnamespacetextpull_countnumberrepository_typetextstar_countnumberstatus_descriptiontextstorage_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
- Namespace
namespacetextRequired - The Docker ID or organization the repository belongs to (the part before the '/' in 'namespace/repository'). Your own account is listed first.
- Repository
repositorytextRequired - The repository to act on (the part after the '/' in 'namespace/repository').
- Tag
tagtextRequired - The tag to read, for example 'latest' or '1.27-alpine'.
Outputs
content_typetextdigesttextfull_sizenumberhtml_urltextidnumberimageslistlast_updatedtextlast_updater_usernametextmedia_typetextnametextplatformsliststatustexttag_last_pulledtexttag_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
countnumbernamespaceslistusernametext
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
- Namespace
namespacetextRequired - The Docker ID or organization the repository belongs to (the part before the '/' in 'namespace/repository'). Your own account is listed first.
- Name contains
nametext - Only return repositories whose name contains this text. Leave blank for all of them.
- Sort by
orderingtext - 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 results
limitnumber - 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
countnumbernamespacetextrepositorieslist
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
- Namespace
namespacetextRequired - The Docker ID or organization the repository belongs to (the part before the '/' in 'namespace/repository'). Your own account is listed first.
- Repository
repositorytextRequired - The repository to act on (the part after the '/' in 'namespace/repository').
- Maximum results
limitnumber - 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
countnumbernamespacetextrepositorytexttagslist
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"
}
]
}