Skip to content
Hoody.com

The Notifications & Events API surfaces two related streams of activity on the Hoody platform. Notifications are user-facing messages (maintenance windows, announcements, status updates) targeted at specific users or broadcast globally. Events are an immutable audit log of platform actions — container lifecycle changes, firewall edits, proxy permission updates, and similar — used for observability, compliance, and integration tooling.

Use these endpoints to list, inspect, and manage both streams. Most operations require authentication; the public notifications endpoint is the only one that does not.

Query event history with filtering, pagination, and sorting. Maximum 500 events per page.

NameInTypeRequiredDescription
limitqueryintegerNoNumber of events to return (max 500). Default: 100
offsetqueryintegerNoNumber of events to skip. Default: 0
sort_byquerystringNoField to sort by. Allowed: "created_at", "event_type". Default: "created_at"
sort_orderquerystringNoSort direction. Allowed: "asc", "desc". Default: "desc"
event_typequerystringNoFilter by specific event type (see enum below)
resource_typequerystringNoFilter by resource type (see enum below)
resource_idquerystringNoFilter by specific resource ID
project_idquerystringNoFilter by project ID
container_idquerystringNoFilter by container ID
start_datequerystringNoFilter events after this timestamp
end_datequerystringNoFilter events before this timestamp
realm_idquerystringNoFilter by realm ID

The event_type parameter accepts: container.creating, container.running, container.stopped, container.failed, container.deleting, auth.token.deleted, container.autostart_enabled, container.autostart_disabled, container.renamed, container.resource_updated, container.ssh_key.added, container.ssh_key.removed, container.snapshot.created, container.snapshot.deleted, container.snapshot.restored, container.snapshot.renamed, container.display.enabled, user.created, auth.token.updated, auth.token.enabled, auth.token.disabled, proxy.alias.expiring_soon, proxy.alias.expired, storage.share.mount_changed, notification.read, server.health_changed, server.rental_expiring, firewall.rule.added, firewall.rule.removed, firewall.rule.updated, firewall.rule.enabled, firewall.rule.disabled, proxy.permissions.default_changed, proxy.permissions.group_added, proxy.permissions.group_updated, proxy.permissions.group_removed, pool.member.joined, pool.member.left, pool.member.role_changed, pool.invited, pool.invitation_revoked, user.banned, user.unbanned, user.role_changed, activity.logged.

The resource_type parameter accepts: container, storage_share, notification, project, server, firewall, proxy_alias, proxy_permissions, auth_token, pool, user, activity_log.

Terminal window
curl -G https://api.hoody.icu/api/v1/events \
-H "Authorization: Bearer <token>" \
--data-urlencode "limit=50" \
--data-urlencode "event_type=container.running" \
--data-urlencode "resource_type=container" \
--data-urlencode "sort_by=created_at" \
--data-urlencode "sort_order=desc"

Retrieve detailed information about a specific event.

NameInTypeRequiredDescription
idpathstringYesEvent ID
Terminal window
curl https://api.hoody.icu/api/v1/events/507f1f77bcf86cd799439044 \
-H "Authorization: Bearer <token>"

Get aggregated statistics about event history, broken down by event type and resource type over an optional time range.

NameInTypeRequiredDescription
start_datequerystringNoStart of time range
end_datequerystringNoEnd of time range
realm_idquerystringNoFilter by realm
Terminal window
curl -G https://api.hoody.icu/api/v1/events/stats \
-H "Authorization: Bearer <token>" \
--data-urlencode "start_date=2025-01-01T00:00:00.000Z" \
--data-urlencode "end_date=2025-01-31T23:59:59.999Z"

Delete events older than a specified retention period. Admin-only.

FieldTypeRequiredDescription
retention_daysintegerYesDelete events older than this many days. Range: 1 to 365
Terminal window
curl -X POST https://api.hoody.icu/api/v1/events/cleanup \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ "retention_days": 30 }'

Delete multiple events at once based on filters. At least one filter or all=true must be supplied.

FieldTypeRequiredDescription
event_typestringNoDelete all events of this type (see event_type enum on the list endpoint)
resource_typestringNoDelete all events for this resource type (see resource_type enum on the list endpoint)
resource_idstringNoDelete all events for this resource
before_datestringNoDelete events before this date
realm_idstringNoDelete events in this realm
Terminal window
curl -X DELETE https://api.hoody.icu/api/v1/events \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ "resource_type": "container", "before_date": "2024-12-15T00:00:00.000Z" }'

Permanently delete a single event from history.

NameInTypeRequiredDescription
idpathstringYesEvent ID to delete
Terminal window
curl -X DELETE https://api.hoody.icu/api/v1/events/507f1f77bcf86cd799439044 \
-H "Authorization: Bearer <token>"

Get all notifications for the authenticated user, including global broadcasts and notifications targeted to that user. Returns per-user read state via is_read and read_at.

This endpoint takes no parameters.

Terminal window
curl https://api.hoody.icu/api/v1/notifications/ \
-H "Authorization: Bearer <token>"

Get all public notifications. Does not require authentication, so is_read and read_at are not included in the response.

This endpoint takes no parameters.

Terminal window
curl https://api.hoody.icu/api/v1/notifications/public

Mark a single notification as read for the authenticated user.

NameInTypeRequiredDescription
idpathstringYesUnique identifier of the notification to mark as read
Terminal window
curl -X PUT https://api.hoody.icu/api/v1/notifications/507f1f77bcf86cd799439030/read \
-H "Authorization: Bearer <token>"

Mark every notification belonging to the authenticated user as read in a single call.

This endpoint takes no parameters.

Terminal window
curl -X PUT https://api.hoody.icu/api/v1/notifications/read-all \
-H "Authorization: Bearer <token>"