Docker Hub Images & Tags Scraper
Pricing
Pay per event
Docker Hub Images & Tags Scraper
Give us repository names or a search term; we page through Docker Hub's public API, retry on rate limits, and return typed rows per image tag -- digest, size, architectures, and freshness. No auth token needed.
Pricing
Pay per event
Rating
0.0
(0)
Developer
DevilScrapes
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Docker Hub Images & Tags Scraper
$2.20 / 1 000 results โ pay only for results, no credit card to try.
๐ณ What this 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.
๐ฅ Features
- Repository or search input โ feed exact
namespace/namerepositories, or a search term we resolve to the top matching repositories first. - Full tag pagination โ we follow Docker Hub's
nextcursor across pages so you get every tag up to your configured cap, not just page one. - Per-tag architecture list โ deduplicated
amd64/arm64/arm(and friends) for every tag, so you can filter multi-arch images without a second lookup. - Optional repository details โ opt in to one extra call per unique repository for star count, pull count, official-image flag, and a short description.
- Fault-isolated batches โ one unknown or renamed repository in your list never stops the rest of the batch from completing.
๐ฏ Use cases
- SBOM & supply-chain tooling โ build an inventory of image digests and architectures across your organization's repositories.
- DevRel competitive intel โ track how often a vendor's official images are pushed and which architectures they support.
- Security teams โ spot stale tags (old
last_pushed) worth flagging for a rebuild, without hand-browsing the Hub UI. - Devtool vendors โ power a "search Docker Hub" feature in your own product without building pagination and rate-limit handling yourself.
โ๏ธ How to use it
- Click Try for free on the Apify Store page (or Start in Console).
- Enter one or more Repositories (e.g.
library/nginx,bitnami/redis), or leave it empty and set a Search query instead. - Optionally raise Max tags per repository or turn on Include repository details.
- Run the Actor. Rows land in the run's default dataset as they're found.
- Export via the Results (JSON) / Results (CSV) links, or pull them over the API.
We rotate browser fingerprints and retry with exponential backoff on
408 / 429 / 503 responses, honouring Retry-After when Docker Hub
sends it โ you don't have to build any of that yourself.
๐ฅ Input
| Field | Type | Default | Description |
|---|---|---|---|
repositories | array of string | [] | Repository names, one per line. Bare names imply library/name. Wins over search_query when both are set. |
search_query | string | null | null | Free-text search term, used only when repositories is empty. |
max_repositories | integer | 10 | Search-mode fan-out cap (1-25). |
max_tags_per_repository | integer | 25 | Per-repository tag cap (1-100). |
include_repository_details | boolean | false | Fetch star/pull count, official flag, and description per unique repository. |
proxy_configuration | object | {"useApifyProxy": true} | Standard Apify Proxy configuration. |
{"repositories": ["library/nginx", "bitnami/redis"],"max_tags_per_repository": 5,"include_repository_details": false,"proxy_configuration": { "useApifyProxy": true }}
๐ค Output
| Field | Type | Description |
|---|---|---|
namespace | string | Repository namespace (library for official images). |
repository_name | string | Repository name component. |
tag | string | Tag name. |
repository_url | string | Resolvable Docker Hub URL for the repository. |
digest | string | Tag manifest digest. |
tag_status | string | Docker Hub tag status. |
full_size_bytes | integer | Tag size in bytes. |
architectures | array of string | Deduplicated supported architectures. |
media_type | string | null | Tag manifest media type. |
last_pushed / last_pulled | string | null | ISO-8601 freshness timestamps. |
star_count / pull_count / is_official / description | mixed | null | Only populated with Include repository details on. |
scraped_at | string | ISO-8601 UTC fetch timestamp. |
{"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
Pay-per-event. No subscription, no minimum spend.
| Event | Price | Trigger |
|---|---|---|
| Actor start | $0.20 | Once per run (warm-up) |
| Result | $0.002 | Per repository+tag row written |
Example: 1,000 rows โ $2.20.
๐ง Limitations
- Public repositories only โ private/authenticated Docker Hub content is out of scope for this Actor.
- Repository metadata is scoped to the short
descriptionfield; the long-formfull_descriptionmarkdown is never fetched. - Image content (layers,
docker pull) is out of scope โ this Actor returns metadata only.
โ 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.
Your feedback
Found a bug, or need a field we don't scrape yet? Message us through the Apify Store page โ we read every note and ship fixes fast.