Docker Hub Scraper
Search Docker Hub repositories, fetch one public repository's metadata, or list one page of tag metadata through Docker Hub JSON endpoints, returning normalized image names, pulls, stars, official flags, timestamps, URLs, sizes, digests, architectures, and OS fields.
Overview
Docker Hub Scraper gives agents and DevOps workflows structured access to public Docker Hub repository metadata. Search public image repositories by keyword, fetch one exact repository by name or Docker Hub URL, or list a bounded page of tags for a repository. The tool normalizes namespaces, image names, repository URLs, pull counts, stars, official and automated flags, privacy labels when returned, repository type, status, descriptions, registration and update timestamps, tag names, tag URLs, image sizes, digests, architectures, operating systems, variants, and last-updated metadata. It is designed for container ecosystem research, image popularity monitoring, DevOps catalog enrichment, supply-chain inventory, base-image discovery, migration planning, and agent-readable Docker image context.
Last validated: Jul 3, 2026
Playground
Input
mode"search" | "repository" | "tags"default: "search"search = keyword search; repository = one repository metadata record; tags = one page of repository tags.
namestringOptional Docker Hub repository name when repository is not supplied.
limitintegerdefault: 10Maximum search result or tag rows to return.
querystringKeyword query for search mode.
namespacestringOptional Docker Hub namespace when repository is not supplied.
repositorystringRepository name or Docker Hub URL for repository/tags modes, such as nginx, library/nginx, nginxinc/nginx-unprivileged, or https://hub.docker.com/r/library/nginx.
Output
modestringrequiredMode used for this run
tagsobject[]Docker Hub tag rows
countintegerrequiredNumber of repository or tag rows returned
querystringSearch query used
next_urlstringDocker Hub pagination URL when returned
repositorystringResolved namespace/name repository
source_urlstringrequiredDocker Hub JSON URL fetched
repositoriesobject[]Docker Hub repository search rows
repository_recordobjectExact repository metadata record
repository_record.namestringRepository name
repository_record.rankintegerResult rank
repository_record.statusintegerStatus code
repository_record.namespacestringRepository namespace
repository_record.repo_namestringnamespace/name repository identifier
repository_record.is_privatebooleanPrivate flag when returned
repository_record.pull_countintegerPull count
repository_record.star_countintegerStar count
repository_record.affiliationstringAffiliation label when returned
repository_record.descriptionstringLonger description when returned
repository_record.is_officialbooleanOfficial image flag
repository_record.is_automatedbooleanAutomated build flag
repository_record.last_updatedstringLast update timestamp
repository_record.last_modifiedstringLast metadata modification timestamp
repository_record.repository_urlstringDocker Hub repository URL
repository_record.date_registeredstringRegistration timestamp
repository_record.repository_typestringRepository type
repository_record.short_descriptionstringShort description
repository_record.status_descriptionstringStatus description
Examples
nginx-search
{
"mode": "search",
"limit": 3,
"query": "nginx"
}nginx-repository
{
"mode": "repository",
"repository": "nginx"
}nginx-tags
{
"mode": "tags",
"limit": 3,
"repository": "library/nginx"
}Use cases
FAQ
Does Docker Hub Scraper require a Docker Hub login?
No. Version 0.1 uses public Docker Hub JSON endpoints and only returns metadata visible without account-specific authentication.
Does it download container images or layers?
No. It returns repository and tag metadata. It does not pull images, download layers, inspect filesystems, or scan vulnerabilities.
How do I query official images such as nginx?
Pass repository nginx or library/nginx. The tool resolves single-part names to the official library namespace.
Use it anywhere
MCP (Claude, Cursor, any client)
# Add the Better Fetch MCP connector (or paste the URL into # Claude → Settings → Connectors → Add custom connector): claude mcp add --transport http better-fetch https://betterfetch.co/api/mcp \ --header "Authorization: Bearer bf_your_key_here" # Then ask for the tool by name: docker_hub_scraper
REST
curl -sS -X POST "https://betterfetch.co/api/tools/docker_hub_scraper/run" \
-H "Authorization: Bearer bf_your_key_here" \
-H "Content-Type: application/json" \
-d '{"input": {"mode":"search","limit":3,"query":"nginx"}}'Run locally
git clone https://github.com/better-fetch/tools/tree/main/tools/docker-hub-scraper && cd docker-hub-scraper && npm i
BETTER_FETCH_API_KEY=bf_your_key_here npx bf-tool run --input '{"mode":"search","limit":3,"query":"nginx"}'