Skip to content
Hoody.com

The container images API lets you discover public images, browse the catalog, import free images into your account, purchase paid images, and rate images you have used. Use these endpoints to populate the image picker when launching a container, manage the images you already own, and capture community feedback on the catalog.

Retrieve the icon for a container image as a PNG. The endpoint always returns a PNG payload: if the image has no icon, is not public, or does not exist, a generic placeholder PNG is returned.

NameInTypeRequiredDescription
idpathstringYesUnique identifier of the container image to retrieve icon for
Terminal window
curl -X GET https://api.hoody.com/api/v1/images/{id}/icon \
-H "Authorization: Bearer <token>"
{
"description": "PNG image. Falls back to a generic placeholder PNG when the image has no icon, is not public, or does not exist.",
"content": {
"application/json": {
"schema": {
"type": "string",
"format": "binary",
"description": "PNG image. Falls back to a generic placeholder PNG when the image has no icon, is not public, or does not exist."
}
}
}
}

List public container images with optional filters for OS, architecture, price, rating, and free-text search. Results are paginated.

NameInTypeRequiredDescription
osquerystringNoFilter images by operating system (the platform currently carries debian/13 only)
architecturequerystringNoFilter images by CPU architecture, for example amd64, arm64, armhf
min_pricequerynumberNoMinimum price filter for paid images, 0 includes free images
max_pricequerynumberNoMaximum price filter for paid images, useful for budget constraints
min_ratingquerynumberNoMinimum average rating filter, filters images with rating >= this value (0 to 5 stars)
max_ratingquerynumberNoMaximum average rating filter, filters images with rating at most this value (0 to 5 stars)
searchquerystringNoSearch term to filter images by name, description, or tags
pagequeryintegerNoPage number for pagination, starts from 1. Default: 1
limitqueryintegerNoNumber of images to return per page, maximum 100 items. Default: 20
sort_byquerystringNoField to sort images by. Allowed: alias, added_date, price, rating
sort_orderquerystringNoSort direction. Allowed: asc, desc
Terminal window
curl -X GET "https://api.hoody.com/api/v1/images/public?os=debian&architecture=amd64&page=1&limit=20" \
-H "Authorization: Bearer <token>"
{
"statusCode": 200,
"message": "Public images retrieved successfully",
"data": {
"images": [
{
"id": "507f1f77bcf86cd799439021",
"alias": "debian/13",
"description": "Debian 13 (Trixie) - Default base image",
"image_name": "debian/13",
"architecture": "amd64",
"os": "debian",
"release": "13",
"variant": "default",
"size": 512000000,
"price": 0,
"added_date": "2025-01-10T08:00:00.000Z",
"average_rating": 4.5,
"rating_count": 142,
"icon_url": "/api/v1/images/507f1f77bcf86cd799439021/icon"
}
],
"pagination": {
"total": 87,
"page": 1,
"limit": 20,
"totalPages": 5
}
}
}

Fetch details of a single public container image, including its serial, variant, and rating summary.

NameInTypeRequiredDescription
idpathstringYesUnique identifier of the public container image to retrieve details for
Terminal window
curl -X GET https://api.hoody.com/api/v1/images/public/507f1f77bcf86cd799439021 \
-H "Authorization: Bearer <token>"
{
"statusCode": 200,
"message": "Public image details retrieved successfully",
"data": {
"id": "507f1f77bcf86cd799439021",
"alias": "debian/13",
"description": "Debian 13 (Trixie) - Default base image",
"image_name": "debian/13",
"architecture": "amd64",
"os": "debian",
"release": "13",
"serial": "20250110",
"variant": "default",
"size": 512000000,
"price": 0,
"added_date": "2025-01-10T08:00:00.000Z",
"average_rating": 4.5,
"rating_count": 142,
"icon_url": "/api/v1/images/507f1f77bcf86cd799439021/icon"
}
}

List the authenticated user’s imported and purchased container images. Each entry includes the user’s own rating (user_rating, has_rated) alongside the catalog-wide average and count.

NameInTypeRequiredDescription
pagequeryintegerNoPage number for pagination, starts from 1. Default: 1
limitqueryintegerNoNumber of images to return per page, maximum 100 items. Default: 20
sort_byquerystringNoField to sort user images by. Allowed: created_at
sort_orderquerystringNoSort direction. Allowed: asc, desc
Terminal window
curl -X GET "https://api.hoody.com/api/v1/images/user?page=1&limit=20" \
-H "Authorization: Bearer <token>"
{
"statusCode": 200,
"message": "User images retrieved successfully",
"data": {
"images": [
{
"id": "507f1f77bcf86cd799439021",
"alias": "debian/13",
"description": "Debian 13 (Trixie) - Default base image",
"image_name": "debian/13",
"architecture": "amd64",
"os": "debian",
"release": "13",
"variant": "default",
"size": 512000000,
"price": 0,
"user_rating": 5,
"has_rated": true,
"average_rating": 4.5,
"rating_count": 142,
"icon_url": "/api/v1/images/507f1f77bcf86cd799439021/icon"
}
],
"pagination": {
"total": 12,
"page": 1,
"limit": 20,
"totalPages": 1
}
}
}

Import a free public container image into the authenticated user’s account. Returns a 400 if the image is not free or has already been imported.

NameInTypeRequiredDescription
idpathstringYesUnique identifier of the public container image to import
Terminal window
curl -X POST https://api.hoody.com/api/v1/images/import/507f1f77bcf86cd799439021 \
-H "Authorization: Bearer <token>"
{
"statusCode": 200,
"message": "Free image imported successfully",
"data": {}
}

Purchase a paid container image. The response includes the amount charged and the account balance that remains after the purchase. A 400 is returned when the account has insufficient balance or the user already owns the image.

NameInTypeRequiredDescription
idpathstringYesUnique identifier of the paid container image to purchase
Terminal window
curl -X POST https://api.hoody.com/api/v1/images/purchase/507f1f77bcf86cd799439021 \
-H "Authorization: Bearer <token>"
{
"statusCode": 200,
"message": "Image purchased successfully",
"data": {
"price_paid": 5.99,
"remaining_balance": 44.01
}
}

Submit a rating for a container image. The rating field is required and must be between 0 and 5 (inclusive). The response returns the new rating, the updated catalog average, and the new rating count.

NameInTypeRequiredDescription
idpathstringYesUnique identifier of the container image to rate
FieldTypeRequiredDescription
ratingnumberYesRating for the image, between 0 and 5 (inclusive)
Terminal window
curl -X POST https://api.hoody.com/api/v1/images/rate/507f1f77bcf86cd799439021 \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"rating": 5
}'
{
"statusCode": 200,
"message": "Image rated successfully",
"data": {
"new_rating": 5,
"average_rating": 4.6,
"rating_count": 143
}
}