Docker Hub Images & Tags Scraper icon

Developer tools

Docker Hub Images & Tags Scraper

Turn a Docker Hub repository name or search term into typed rows per image tag -- digest, size, architectures, and freshness -- no auth token needed.

Free Apify credit covers a first run. No credit card to try.

What this Actor scrapes

Docker Hub Images & Tags Scraper pulls structured rows from Docker Hub's public /v2 REST API — one row per repository + tag pair. Give it a list of repository names (nginx, bitnami/redis) or a free-text search term, and it returns each tag's digest, size, supported architectures, and freshness (last_pushed / last_pulled), plus a resolvable Docker Hub URL. No Docker Hub account or auth token required.

What we handle for you

  • Repository or search input — feed exact namespace/name repositories,
  • Full tag pagination — we follow Docker Hub's next cursor across
  • Per-tag architecture list — deduplicated amd64 / arm64 / arm
  • Optional repository details — opt in to one extra call per unique
  • Fault-isolated batches — one unknown or renamed repository in your

Use cases

  • SBOM & supply-chain tooling — build an inventory of image digests and
  • DevRel competitive intel — track how often a vendor's official images
  • Security teams — spot stale tags (old last_pushed) worth flagging
  • Devtool vendors — power a "search Docker Hub" feature in your own

Input

Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.

FieldTypeRequiredWhat it does
repositories array no Docker Hub repository names to scrape, one per line. Bare names (e.g. nginx) resolve to the official library/nginx repository; use namespace/name (e.g. bitnami/redis) otherwise. Takes precedence over Search query when…
search_query string no Free-text Docker Hub search term, used only when Repositories is empty. We resolve the top matches (see Max repositories) and fetch tags for each.
max_repositories integer no Search-mode fan-out cap -- how many repositories to resolve from a search query before fetching tags. Ignored when Repositories is set.
max_tags_per_repository integer no Stop paging one repository's tags after this many rows. Docker Hub caps a single page at 100 regardless of the value requested.
include_repository_details boolean no Fetch one extra request per unique repository for star count, pull count, official flag, and short description. Off by default to keep egress low.
proxy_configuration object no Apify Proxy spec.
{
  "repositories": [
    "library/nginx",
    "bitnami/redis"
  ],
  "max_tags_per_repository": 5,
  "include_repository_details": false,
  "proxy_configuration": {
    "useApifyProxy": true
  }
}

Output

One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.

namespacerepository_nametagrepository_urldigesttag_statusfull_size_bytesarchitectures

{
  "namespace": "library",
  "repository_name": "nginx",
  "tag": "1.27.3",
  "repository_url": "https://hub.docker.com/_/nginx",
  "digest": "sha256:abc123...",
  "tag_status": "active",
  "full_size_bytes": 44271616,
  "architectures": [
    "amd64",
    "arm64",
    "arm"
  ],
  "media_type": "application/vnd.docker.distribution.manifest.list.v2+json",
  "last_pushed": "2026-08-20T10:03:11Z",
  "last_pulled": "2026-09-01T06:55:02Z",
  "star_count": null,
  "pull_count": null,
  "is_official": null,
  "description": null,
  "scraped_at": "2026-09-01T07:00:00Z"
}

Pricing

EventPriceWhen
Actor start$0.20Once per run, covers warm-up and proxy session setup.
Result emitted$0.0020Per result written to the dataset.

You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.

Limitations

  • Public repositories only — private/authenticated Docker Hub content is
  • Repository metadata is scoped to the short description field; the
  • Image *content* (layers, docker pull) is out of scope — this Actor

FAQ

Does this need a Docker Hub account or token?
No — it uses Docker Hub's public, unauthenticated /v2 API.
What happens if a repository doesn't exist?
We skip it, log a warning, and keep processing the rest of your batch.
What if my search term matches nothing?
The run finishes successfully with zero rows and a status message naming what was searched — you're not charged for rows that don't exist.
Can I get every tag for a huge repository?
Set Max tags per repository up to 100 per repository per run; we follow Docker Hub's pagination cursor until that cap or the repository's real tag count, whichever comes first.

Ready to run it?

Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.

Related Actors

Teams that run this also run