Skip to content
Hoody.com

Retrieve historical notifications from one or more displays, subscribe to a real-time notification stream, manage dismissed state, and clear previously dismissed notifications. Use these endpoints to render notification feeds, listen for live alerts via WebSocket, and persist dismissal state across sessions.

Retrieves notifications for one or more specified displays. The display parameter accepts a single ID (e.g., "1" or ":1"), a comma-separated list (e.g., "1,:2,3"), or "all" to fetch from every display.

NameInTypeRequiredDescription
displaypathstringYesA single display ID (e.g., "1" or ":1"), a comma-separated list (e.g., "1,:2,3"), or "all" to fetch from all displays
limitqueryintegerNoMaximum number of notifications to return. Default: 100
sincequeryintegerNoUnix timestamp in milliseconds to get notifications after this time
usernamequerystringNoFilter notifications by username
sessionquerystringNoFilter notifications by session ID
{
"success": true,
"data": {
"count": 1,
"displays": ["1"],
"notifications": [
{
"id": 10,
"appname": "Google Chrome",
"summary": "Focus or Open a Window",
"body": "Click to focus the window",
"message": "Focus or Open a Window: Click to focus the window",
"category": "system",
"urgency": "normal",
"has_icon": true,
"icon_url": "/api/v1/notifications/icons/6_10_1749024932903.png",
"display_id": 1,
"timestamp": 1749024932903,
"expire_time": 5000
}
]
}
}
Terminal window
curl -X GET "https://myproj-cnt123-n-1.us-east.containers.hoody.icu/api/v1/notifications/1?limit=50&since=1749024000000" \
-H "Authorization: Bearer <token>"

Establishes a WebSocket connection for real-time notification updates. Clients subscribe to one or more displays and receive immediate notifications as they are dispatched. The displays query parameter accepts a comma-separated list (e.g., "1,:2,3") or "all" to subscribe to every display.

NameInTypeRequiredDescription
displaysquerystringYesComma-separated display IDs to subscribe to (e.g., "1,:2,3"), or "all" to receive notifications from every display.
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade

The HTTP response that confirms the WebSocket handshake; subsequent frames carry notification payloads.

Terminal window
curl -i -N \
-H "Connection: Upgrade" \
-H "Upgrade: websocket" \
-H "Sec-WebSocket-Version: 13" \
-H "Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==" \
"https://myproj-cnt123-n-1.us-east.containers.hoody.icu/api/v1/notifications/stream?displays=all"

Marks one or more notifications as dismissed. Dismissed notifications are filtered from subsequent GET responses. Optionally scope the dismissal to a specific display with displayId.

FieldTypeRequiredDescription
notificationIdsarray of integerYesArray of notification IDs to dismiss
displayIdstringNoOptional display ID to scope the dismissal
{
"success": true,
"message": "3 notification(s) dismissed"
}
Terminal window
curl -X POST "https://myproj-cnt123-n-1.us-east.containers.hoody.icu/api/v1/notifications/dismiss" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{
"notificationIds": [10, 11, 12],
"displayId": "1"
}'

Clears the dismissed state, making previously dismissed notifications visible again in subsequent GET responses. Optionally scope the clear to a single display with displayId; omit it to clear across all displays.

NameInTypeRequiredDescription
displayIdquerystringNoOptional display ID to scope the clear operation
{
"success": true,
"message": "Dismissed notifications cleared"
}
Terminal window
curl -X DELETE "https://myproj-cnt123-n-1.us-east.containers.hoody.icu/api/v1/notifications/dismiss?displayId=1" \
-H "Authorization: Bearer <token>"