Notifications

Mark a notification as unread

POST/notifications/{id}/actions/mark-unread

Marks the notification unread for the acting user, clears read_at and returns it. Marking an unread notification again returns 200 and changes nothing. The user's other open sessions are not told to refresh. Another user's notification returns 404. Emits no webhook and sends no email. POST .../actions/mark-read undoes it.

Path parameters

  • idintegerRequired#

    The notification's id. Notifications are keyed by integer ids, not UUIDs: a whole number from 1 to 2147483647.

Query parameters

  • dry_runboolean#

    Validate and run the call without committing it, returning what the real call would return with meta.dry_run set.

Headers

  • Idempotency-Keystring#

    Makes a retry safe. Send a new UUID for each new request and reuse it only to retry that request; the first response is replayed for 24 hours.

Responses

200

The notification, now unread.

Notification
{
  "data": {
    "id": 1,
    "title": "string",
    "url": "string",
    "is_download": true,
    "status": "unread",
    "read_at": "2026-06-12T10:00:00+00:00",
    "actioned_at": "2026-06-12T10:00:00+00:00",
    "created_at": "2026-06-12T10:00:00+00:00",
    "updated_at": "2026-06-12T10:00:00+00:00"
  }
}
401

Authentication failed. error.code is one of invalid_token, expired, revoked.

Error
403

Authorization failed. error.code is one of org_disabled, ip_blocked, missing_scope, scope_disabled, user_disabled.

Error
404

Resource not found (error.code = not_found).

Error
422

The request can't be processed (HTTP 422): validation_failed with one ErrorDetail per problem, or a code documented on the operation.

Error
429

Rate limit exceeded (error.code = rate_limited).

Error

Examples

curl -X POST https://your-org-domain/kong/core/api/v2/notifications/{id}/actions/mark-unread\
  -H "Authorization: Bearer $HELM_API_KEY"\
  -H "Content-Type: application/json"