Skip to content

Projects let you organize containers, networks, and other resources into logical groups with optional quotas, shared configurations, and multi-user access control. This page covers project CRUD, per-user permission management, and aggregated container statistics.

List all projects you own or have been granted access to, with pagination and sorting.

NameInTypeRequiredDescription
pagequerynumberNoPage number (1-based). Default: 1
limitquerynumberNoItems per page (max 100). Default: 10
sort_byquerystringNoField to sort by. Allowed: id, alias, created_at, updated_at. Default: "created_at"
sort_orderquerystringNoSort direction. Allowed: asc, desc. Default: "desc"
realm_idquerystringNoFilter by realm ID. Only returns projects that belong to this realm. Alternative to using a realm subdomain in the URL.
Terminal window
curl -X GET "https://api.hoody.icu/api/v1/projects/?page=1&limit=10&sort_by=created_at&sort_order=desc" \
-H "Authorization: Bearer <token>"

Create a new project to organize and manage your containers, networks, and resources.

This endpoint takes no parameters.

NameTypeRequiredDescription
aliasstringYesHuman-readable project name (1–100 characters). Must be unique across your projects (e.g., "Production", "Development", "Client-ABC").
colorstringNoHEX color code for visual organization. Accepts 3-digit (#RGB) or 6-digit (#RRGGBB) formats. The # prefix is auto-added if missing, and the value is auto-normalized to uppercase. If omitted, a random color is generated.
max_containersnumber | nullNoMaximum number of containers allowed in this project. Set to null for unlimited. Enforced during container creation.
realm_idsstring[]NoRealm IDs to assign this project to. If invoked from a realm subdomain, the subdomain realm is automatically included and merged with any explicitly provided realm_ids.
Terminal window
curl -X POST "https://api.hoody.icu/api/v1/projects/" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"alias": "Production Environment",
"color": "#EF4444",
"max_containers": 100
}'

Retrieve detailed information about a specific project, including the project owner, quotas, and (optionally) all users who have been granted access.

NameInTypeRequiredDescription
idpathstringYesProject ID
include_permissionsquerybooleanNoInclude project permissions with user details in response. Default: false
Terminal window
curl -X GET "https://api.hoody.icu/api/v1/projects/507f1f77bcf86cd799439011?include_permissions=true" \
-H "Authorization: Bearer <token>"

Update a project’s alias, color, or realm membership. Only the fields you send are modified. You must be the project owner or have edit permission.

NameInTypeRequiredDescription
idpathstringYesProject ID to update
NameTypeRequiredDescription
aliasstringYesNew project name (1–100 characters). Must be unique across your projects.
colorstringNoNew HEX color code. Auto-normalized to uppercase with # prefix.
realm_idsstring[]NoUpdated realm membership for this project.
Terminal window
curl -X PATCH "https://api.hoody.icu/api/v1/projects/507f1f77bcf86cd799439011" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"alias": "Production v2",
"color": "#10B981"
}'

Permanently delete a project and all associated resources. You must be the project owner or have delete permission.

NameInTypeRequiredDescription
idpathstringYesProject ID to delete
include_deleted_itemsquerybooleanNoInclude a lightweight list of deleted container IDs and names in the response for confirmation UX. Default: false
Terminal window
curl -X DELETE "https://api.hoody.icu/api/v1/projects/507f1f77bcf86cd799439011?include_deleted_items=true" \
-H "Authorization: Bearer <token>"

Each project supports three permission levels: read (view only), edit (modify resources), and delete (destroy the project). The project owner always has full access; additional users can be granted access through the endpoints below.

List all users who have been granted access to this project, with their permission levels.

NameInTypeRequiredDescription
idpathstringYesProject ID
pagequerynumberNoPage number (1-based)
limitquerynumberNoItems per page (max 100)
sort_byquerystringNoField to sort by. Allowed: id, user_id, permission_level, created_at, updated_at
sort_orderquerystringNoSort direction. Allowed: asc, desc
Terminal window
curl -X GET "https://api.hoody.icu/api/v1/projects/507f1f77bcf86cd799439011/permissions?page=1&limit=10" \
-H "Authorization: Bearer <token>"

Grant another user access to your project. You must be the project owner or have edit permission.

NameInTypeRequiredDescription
idpathstringYesProject ID
NameTypeRequiredDescription
user_idstringYesUser ID to grant access to
permission_levelstringYesAccess level. One of: read, edit, delete
Terminal window
curl -X POST "https://api.hoody.icu/api/v1/projects/507f1f77bcf86cd799439011/permissions" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"user_id": "507f1f77bcf86cd799439044",
"permission_level": "edit"
}'

PATCH /api/v1/projects/{id}/permissions/{permissionId}

Section titled “PATCH /api/v1/projects/{id}/permissions/{permissionId}”

Change a user’s permission level for a project — for example, upgrade from read to edit or downgrade from edit to read. You must be the project owner or have edit permission.

NameInTypeRequiredDescription
idpathstringYesProject ID
permissionIdpathstringYesPermission ID to update
NameTypeRequiredDescription
permission_levelstringYesNew permission level. One of: read, edit, delete
Terminal window
curl -X PATCH "https://api.hoody.icu/api/v1/projects/507f1f77bcf86cd799439011/permissions/507f1f77bcf86cd799439033" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"permission_level": "edit"
}'

DELETE /api/v1/projects/{id}/permissions/{permissionId}

Section titled “DELETE /api/v1/projects/{id}/permissions/{permissionId}”

Revoke a user’s access to a project. The user will immediately lose all access. You must be the project owner or have edit permission.

NameInTypeRequiredDescription
idpathstringYesProject ID
permissionIdpathstringYesPermission ID to remove
Terminal window
curl -X DELETE "https://api.hoody.icu/api/v1/projects/507f1f77bcf86cd799439011/permissions/507f1f77bcf86cd799439033" \
-H "Authorization: Bearer <token>"

Get aggregated resource usage statistics for all containers in a project. Returns per-container stats (CPU, memory, disk, network) plus a summary with the total container count and total processing time.

NameInTypeRequiredDescription
idpathstringYesUnique identifier of the project
Terminal window
curl -X GET "https://api.hoody.icu/api/v1/projects/507f1f77bcf86cd799439033/stats" \
-H "Authorization: Bearer <token>"