Skip to main content
POST
Error

Authorizations

Authorization
string
header
required

Management API authentication for /api/* endpoints. Use the Authorization header with Bearer <API key>. Virtual keys, dashboard/user/session tokens, and x-api-key headers are not supported on management APIs.

Body

application/json

A notification to publish. IDs and both timestamps are assigned by the server and cannot be supplied.

audience
enum<string>
required

Who the notification reaches. all is every dashboard user; roles limits it to the listed RBAC roles, enforced on both the list endpoint and the WebSocket fan-out.

Available options:
all,
roles
severity
enum<string>
required

Visual weight the dashboard gives the notification.

Available options:
info,
success,
warning,
error
title
string
required

Trimmed before validation.

Required string length: 1 - 160
message
string
required

Trimmed before validation.

Required string length: 1 - 4000
role_ids
integer<int64>[]

Required when audience is roles, and must be empty otherwise. Duplicates are removed and the list is sorted before it is stored.

Required range: x >= 1
action_label
string

Label for the notification's action. Must be supplied together with action_path, or not at all.

action_path
string

Dashboard-internal absolute path the action opens, for example /workspace/providers. Absolute URLs, host-relative // paths, and anything not starting with / are rejected, so a notification cannot be used to send users off-site.

Pattern: ^/(?!/).*

Response

Notification published and broadcast

A persisted dashboard notification.

id
string<uuid>
required
audience
enum<string>
required

Who the notification reaches. all is every dashboard user; roles limits it to the listed RBAC roles, enforced on both the list endpoint and the WebSocket fan-out.

Available options:
all,
roles
severity
enum<string>
required

Visual weight the dashboard gives the notification.

Available options:
info,
success,
warning,
error
title
string
required
message
string
required
created_at
string<date-time>
required
expires_at
string<date-time>
required

Always 30 days after created_at. Expired rows are pruned hourly and are not returned once pruned.

role_ids
integer<int64>[]
action_label
string
action_path
string