Skip to content

Create, manage, and configure projects to organize containers, networks, and shared resources. Projects support per-user quotas, multi-realm membership, granular user permissions, and aggregated monitoring statistics.

Use these endpoints when building dashboards or automation around resource grouping, sharing projects with teammates, enforcing container limits, or surfacing resource usage.

Manage the lifecycle of a project: list, retrieve, create, update, and delete.

List all projects you own or have permissions for. Results are paginated and sortable.

Terminal window
curl -G "https://api.hoody.com/api/v1/projects/" \
-H "Authorization: Bearer <token>" \
--data-urlencode "page=1" \
--data-urlencode "limit=10" \
--data-urlencode "sort_by=created_at" \
--data-urlencode "sort_order=desc"
NameInTypeRequiredDescription
pagequerynumberNoPage number (1-based). Default: 1
limitquerynumberNoItems per page (max 100). Default: 10
sort_byquerystringNoField to sort by. Default: "created_at". Allowed: "id", "alias", "created_at", "updated_at"
sort_orderquerystringNoSort direction. Default: "desc". Allowed: "asc", "desc"
realm_idquerystringNoFilter by realm ID. Only returns projects that belong to this realm. Alternative to using realm subdomain in URL.
{
"statusCode": 200,
"message": "Projects retrieved successfully",
"data": {
"projects": [
{
"id": "507f1f77bcf86cd799439011",
"user_id": "507f1f77bcf86cd799439022",
"alias": "Production Environment",
"color": "#3B82F6",
"created_at": "2025-01-10T08:00:00.000Z",
"updated_at": "2025-01-15T10:30:00.000Z",
"max_containers": 50,
"is_default": false,
"realm_ids": ["507f1f77bcf86cd7994390aa"]
},
{
"id": "507f1f77bcf86cd799439033",
"user_id": "507f1f77bcf86cd799439022",
"alias": "Development",
"color": "#10B981",
"created_at": "2025-01-05T12:00:00.000Z",
"updated_at": "2025-01-05T12:00:00.000Z",
"max_containers": null,
"is_default": true,
"realm_ids": []
}
],
"pagination": {
"total": 3,
"page": 1,
"limit": 10,
"totalPages": 1
}
}
}

Retrieve detailed information about a specific project. Optionally include project permissions with associated user details.

Terminal window
curl "https://api.hoody.com/api/v1/projects/507f1f77bcf86cd799439011?include_permissions=true" \
-H "Authorization: Bearer <token>"
NameInTypeRequiredDescription
idpathstringYesProject ID
include_permissionsquerybooleanNoInclude project permissions with user details in response. Default: false
{
"statusCode": 200,
"message": "Project retrieved successfully",
"data": {
"id": "507f1f77bcf86cd799439011",
"user_id": "507f1f77bcf86cd799439022",
"alias": "Production Environment",
"color": "#3B82F6",
"created_at": "2025-01-10T08:00:00.000Z",
"updated_at": "2025-01-15T10:30:00.000Z",
"max_containers": 50,
"is_default": false,
"realm_ids": ["507f1f77bcf86cd7994390aa"],
"permissions": [
{
"id": "507f1f77bcf86cd799439033",
"project_id": "507f1f77bcf86cd799439011",
"user_id": "507f1f77bcf86cd799439044",
"permission_level": "read",
"created_at": "2025-01-12T14:00:00.000Z",
"updated_at": "2025-01-12T14:00:00.000Z",
"user": {
"id": "507f1f77bcf86cd799439044",
"username": "jane_smith",
"alias": "Jane Smith"
}
}
]
}
}

Create a new project to organize and manage your containers, networks, and resources. Projects act as logical groupings with optional quotas and shared configurations.

Terminal window
curl -X POST "https://api.hoody.com/api/v1/projects/" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"alias": "Production Environment",
"color": "#EF4444",
"max_containers": 100
}'
NameTypeRequiredDescription
aliasstringYesHuman-readable project name. Must be unique across your projects (1–100 characters)
colorstringNoHEX color code (3-digit #RGB or 6-digit #RRGGBB). The # prefix is auto-added if missing, and the value is auto-normalized to uppercase. If not provided, a random color is generated
max_containersnumber | nullNoMaximum number of containers allowed in this project. Set to null for unlimited. Minimum: 0. This quota is enforced during container creation
realm_idsstring[]NoRealm IDs to assign this project to. If you are creating from a realm subdomain, the subdomain realm is automatically included and merged with any explicitly provided realm_ids
{
"statusCode": 201,
"message": "Project created successfully",
"data": {
"id": "507f1f77bcf86cd799439011",
"user_id": "507f1f77bcf86cd799439022",
"alias": "Production Environment",
"color": "#EF4444",
"created_at": "2025-01-10T08:00:00.000Z",
"updated_at": "2025-01-10T08:00:00.000Z",
"max_containers": 100,
"is_default": false,
"realm_ids": []
}
}

Update a project’s alias, color, quotas, or realm membership. You must be the owner or have edit permission. Only the provided fields are updated.

Terminal window
curl -X PATCH "https://api.hoody.com/api/v1/projects/507f1f77bcf86cd799439011" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"alias": "Production v2",
"color": "#10B981",
"max_containers": 50
}'
NameInTypeRequiredDescription
idpathstringYesProject ID to update
NameTypeRequiredDescription
aliasstringYesNew project name. Must be unique across your projects (1–100 characters)
colorstringNoNew HEX color code. Auto-normalized to uppercase with # prefix
max_containersnumber | nullNoMaximum number of containers allowed in this project. Set to null for unlimited. Minimum: 0. This quota is enforced during container creation
realm_idsstring[]NoUpdate realm membership for this project. If updating from a realm subdomain, the subdomain realm is automatically preserved and merged. Only unrestricted tokens and admin users can modify realm_ids; realm-restricted tokens cannot change realm membership
{
"statusCode": 200,
"message": "Project updated successfully",
"data": {
"id": "507f1f77bcf86cd799439011",
"user_id": "507f1f77bcf86cd799439022",
"alias": "Production Environment Updated",
"color": "#EF4444",
"created_at": "2025-01-10T08:00:00.000Z",
"updated_at": "2025-01-15T14:45:00.000Z",
"max_containers": 50,
"is_default": false,
"realm_ids": []
}
}

Permanently delete a project and all associated resources. If deletion cannot be fully completed, the project remains available so you can retry safely. You must be the owner or have delete permission.

Terminal window
curl -X DELETE "https://api.hoody.com/api/v1/projects/507f1f77bcf86cd799439011?include_deleted_items=true" \
-H "Authorization: Bearer <token>"
NameInTypeRequiredDescription
idpathstringYesProject ID to delete
include_deleted_itemsquerybooleanNoInclude a lightweight list of deleted container IDs/names in the response for confirmation UX. Default: false
{
"statusCode": 200,
"message": "Project deleted successfully",
"data": {
"deleted": {
"containers": 2,
"permissions": 1,
"aliases": 3
},
"deleted_items": {
"containers": [
{ "id": "507f1f77bcf86cd799439011", "name": "web-app" },
{ "id": "507f1f77bcf86cd799439012", "name": "worker" }
]
}
}
}

Grant, list, update, and revoke per-user project access. Permission levels are read (view only), edit (modify resources), and delete (destroy project). The project owner always has full access and cannot grant permissions to themselves.

List all users who have been granted access to this project with their permission levels. Supports pagination and sorting.

Terminal window
curl "https://api.hoody.com/api/v1/projects/507f1f77bcf86cd799439011/permissions?page=1&limit=10" \
-H "Authorization: Bearer <token>"
NameInTypeRequiredDescription
idpathstringYesProject ID
pagequerynumberNoPage number (1-based)
limitquerynumberNoItems per page
sort_byquerystringNoField to sort by. Allowed: "id", "user_id", "permission_level", "created_at", "updated_at"
sort_orderquerystringNoSort direction. Allowed: "asc", "desc"
{
"statusCode": 200,
"message": "Project permissions retrieved successfully",
"data": {
"permissions": [
{
"id": "507f1f77bcf86cd799439033",
"project_id": "507f1f77bcf86cd799439011",
"user_id": "507f1f77bcf86cd799439044",
"permission_level": "read",
"created_at": "2025-01-12T14:00:00.000Z",
"updated_at": "2025-01-12T14:00:00.000Z",
"user": {
"id": "507f1f77bcf86cd799439044",
"username": "jane_smith",
"alias": "Jane Smith"
}
},
{
"id": "507f1f77bcf86cd799439055",
"project_id": "507f1f77bcf86cd799439011",
"user_id": "507f1f77bcf86cd799439066",
"permission_level": "edit",
"created_at": "2025-01-13T09:30:00.000Z",
"updated_at": "2025-01-14T16:20:00.000Z",
"user": {
"id": "507f1f77bcf86cd799439066",
"username": "bob_jones",
"alias": "Bob Jones"
}
}
],
"pagination": {
"total": 2,
"page": 1,
"limit": 10,
"totalPages": 1
}
}
}

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

Terminal window
curl -X POST "https://api.hoody.com/api/v1/projects/507f1f77bcf86cd799439011/permissions" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"user_id": "507f1f77bcf86cd799439044",
"permission_level": "read"
}'
NameInTypeRequiredDescription
idpathstringYesProject ID
NameTypeRequiredDescription
user_idstringYesUser ID to grant access to
permission_levelstringYesAccess level: "read", "edit", or "delete"
{
"statusCode": 201,
"message": "Project permission added successfully",
"data": {
"id": "507f1f77bcf86cd799439033",
"project_id": "507f1f77bcf86cd799439011",
"user_id": "507f1f77bcf86cd799439044",
"permission_level": "read",
"created_at": "2025-01-12T14:00:00.000Z",
"updated_at": "2025-01-12T14:00:00.000Z",
"user": {
"id": "507f1f77bcf86cd799439044",
"username": "jane_smith",
"alias": "Jane Smith"
}
}
}

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 (e.g., upgrade from read to edit, or downgrade from edit to read). You must be the owner or have edit permission.

Terminal window
curl -X PATCH "https://api.hoody.com/api/v1/projects/507f1f77bcf86cd799439011/permissions/507f1f77bcf86cd799439033" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"permission_level": "edit"
}'
NameInTypeRequiredDescription
idpathstringYesProject ID
permissionIdpathstringYesPermission ID to update
NameTypeRequiredDescription
permission_levelstringYesNew permission level: "read", "edit", or "delete"
{
"statusCode": 200,
"message": "Project permission updated successfully",
"data": {
"id": "507f1f77bcf86cd799439033",
"project_id": "507f1f77bcf86cd799439011",
"user_id": "507f1f77bcf86cd799439044",
"permission_level": "edit",
"created_at": "2025-01-12T14:00:00.000Z",
"updated_at": "2025-01-15T14:45:00.000Z",
"user": {
"id": "507f1f77bcf86cd799439044",
"username": "jane_smith",
"alias": "Jane Smith"
}
}
}

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 owner or have edit permission.

Terminal window
curl -X DELETE "https://api.hoody.com/api/v1/projects/507f1f77bcf86cd799439011/permissions/507f1f77bcf86cd799439033" \
-H "Authorization: Bearer <token>"
NameInTypeRequiredDescription
idpathstringYesProject ID
permissionIdpathstringYesPermission ID to remove
{
"statusCode": 200,
"message": "Project permission removed successfully"
}

Get aggregated resource usage statistics for all containers in a project. Returns per-container stats plus a summary block with total counts and total processing time.

Terminal window
curl "https://api.hoody.com/api/v1/projects/507f1f77bcf86cd799439011/stats" \
-H "Authorization: Bearer <token>"
NameInTypeRequiredDescription
idpathstringYesUnique identifier of the project
{
"statusCode": 200,
"message": "Project statistics retrieved successfully",
"data": {
"stats": [
{
"id": "507f1f77bcf86cd799439011",
"project_id": "507f1f77bcf86cd799439033",
"project_name": "Production Environment",
"server_name": "node-sg-sin-1",
"subserver_name": "web-tier",
"status": "Running",
"status_code": 103,
"processes": 143,
"started_at": "2025-12-03T18:39:53Z",
"cpu": { "usage": 17303605000 },
"memory": {
"usage": 1474666496,
"total": 131503332000
},
"disk": {
"root": {
"total": 0,
"usage": 11081670656
}
},
"network": [],
"processing_time": "3ms"
}
],
"summary": {
"project_id": "507f1f77bcf86cd799439033",
"project_name": "Production Environment",
"container_count": 29,
"total_processing_time": "1506ms"
}
}
}