Docker API: Get container image details
Gets public Docker Hub image details and the newest tags from an image name or Docker Hub page link. Signature and metadata artifact tags are omitted; size is the reported compressed tag size.
Unofficial. Not affiliated with or endorsed by Docker.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Image, required
image Image name or Docker Hub page link, for example postgres or https://hub.docker.com/r/bitnami/redis. A bare name is official.
postgres
- Max Tags optional
max_tags Number of newest tags to show, for example 20.
20 (default)
Whole number from 1 to 100.
Input as JSON
{ "image": "postgres"}Output
{ "link": "https://hub.docker.com/_/postgres" , "tags": [ { "link": "https://hub.docker.com/_/postgres/tags?name=19rc1-trixie" , "name": "19rc1-trixie", "digest": "sha256:7c70c2455c1f22cf4fbf90b16345aa4e5f4e3efd68d68f7cd6d014f529a69108", "architectures": [ "386", "amd64", "arm" ], "last_pushed_date": "2026-10-23", "compressed_size_mb": 164.23 }, { "link": "https://hub.docker.com/_/postgres/tags?name=19rc1" , "name": "19rc1", "digest": "sha256:7c70c2455c1f22cf4fbf90b16345aa4e5f4e3efd68d68f7cd6d014f529a69108", "architectures": [ "386", "amd64", "arm" ], "last_pushed_date": "2026-10-23", "compressed_size_mb": 164.23 }, { "link": "https://hub.docker.com/_/postgres/tags?name=17.11-alpine3.23" , "name": "17.11-alpine3.23", "digest": "sha256:01ea903aa65deb58eb49d6e09d859ecff63a6bb7d61feca55f2abad71d08f72a", "architectures": [ "386", "amd64", "arm" ], "last_pushed_date": "2026-10-22", "compressed_size_mb": 116.71 } ], "stars": 15035, "publisher": "Docker Official Images", "image_name": "postgres", "description": "The PostgreSQL object-relational database system provides reliability and data integrity.", "total_pulls": 12003284669, "last_updated_date": "2026-10-23"}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"hub.docker.com/get_container_image","input":{"image":"postgres"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "hub.docker.com/get_container_image" , "input": { "image": "postgres" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "hub.docker.com/get_container_image" , "input": { "image": "postgres" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run hub.docker.com/get_container_image# with {"image":"postgres"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "image" ], "properties": { "image": { "type": "string", "minLength": 1, "description": "Image name or Docker Hub page link, for example postgres or https://hub.docker.com/r/bitnami/redis. A bare name is official." }, "max_tags": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1, "description": "Number of newest tags to show, for example 20." } }, "additionalProperties": false}Output schema
{ "type": "object", "required": [ "image_name", "description", "publisher", "total_pulls", "stars", "last_updated_date", "link", "tags" ], "properties": { "link": { "type": "string", "description": "Docker Hub image page." }, "tags": { "type": "array", "items": { "type": "object", "required": [ "name", "compressed_size_mb", "architectures", "last_pushed_date", "digest", "link" ], "properties": { "link": { "type": "string", "description": "Docker Hub tag page." }, "name": { "type": "string", "description": "Tag name." }, "digest": { "type": [ "string", "null" ], "description": "Tag manifest digest.", "x-fous-developer": true }, "architectures": { "type": "array", "items": { "type": "string" }, "description": "Available architectures; empty when not reported." }, "last_pushed_date": { "type": [ "string", "null" ], "description": "Last pushed date, YYYY-MM-DD." }, "compressed_size_mb": { "type": [ "number", "null" ], "description": "Reported compressed tag size in decimal megabytes." } }, "additionalProperties": false }, "description": "Newest image tags first, excluding publisher signature and metadata artifact tags." }, "stars": { "type": [ "integer", "null" ], "description": "Number of stars." }, "publisher": { "type": [ "string", "null" ], "description": "Publisher name." }, "image_name": { "type": "string", "description": "Image name; official images omit the library namespace." }, "description": { "type": [ "string", "null" ], "description": "Short description." }, "total_pulls": { "type": [ "integer", "null" ], "description": "Lifetime pull count." }, "last_updated_date": { "type": [ "string", "null" ], "description": "Last updated date, YYYY-MM-DD." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
hub.docker.com/get_container_image- Returns
- image name, description, publisher, pulls, stars, dates, link, newest tags with size, architectures, digest
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method hub.docker.com/get_container_image with the inputs above.
Ask your agent
- What are the newest tags and compressed sizes for the nginx image on Docker Hub?
- Show me the publisher, pull count, and star rating for bitnami/redis on Docker Hub.
- I need the architectures and digest for the latest postgres image tags, limited to the 10 newest.
- Pull up the Docker Hub page details for https://hub.docker.com/r/grafana/grafana including description and last updated date.
- Get the 50 most recent tags for the python image on docker.com, with their sizes.
See more
All Docker methodsFinds public Docker Hub container images matching a software name, in Docker Hub search order, with publisher, badge, stars, last update and exact total pulls when Docker Hub publishes them. Can keep only Docker Official Images and Verified Publisher images.
hub.docker.com/search_container_imagesLooks up a Ruby gem on RubyGems by name or gem page link and returns its latest version, release date, description, downloads, authors, license, links and runtime dependencies.
rubygems.org/get_gemGets a PyPI package's current version, release date, metadata, project links and its 10 most recently published versions from a package name or PyPI link.
pypi.org/get_packageGets public details and statistics for one YouTube video by link, ID or title. A title selects the top search match.
youtube.com/get_videoLists published, non-draft releases of a public GitHub project, newest first. A bare project name matches the most-starred repository.
github.com/list_releasesFinds free-to-use Wikimedia Commons images for a topic in Commons relevance order. Each image comes with its links, creator and licence details.
commons.wikimedia.org/search_free_imagesGets a movie or TV show's IMDb details from its name, IMDb title link or title ID; a year picks between titles with the same name. Unavailable details are null.
imdb.com/get_movie_or_showLooks up a public npm package by name or npm link. Returns its latest version, weekly downloads, maintainers, links, dates and version count.
npmjs.com/get_package