Skip to content

Notifications

beginner

List, read, and manage in-app notifications for your account.

List notifications

GET/v1/notifications

List your notifications, ordered by most recent first.

unread_onlybooleanDefault: false

If true, only returns unread notifications.

pageintegerDefault: 1

Page number.

per_pageintegerDefault: 20

Items per page (max 100).

200Response
{
  "data": [
    {
      "id": "notif_abc123",
      "type": "regime_changed",
      "title": "Regime changed to Exploration",
      "message": "Your memory space entered Exploration regime due to rapid new pattern ingestion.",
      "read": false,
      "created_at": "2026-01-20T14:30:00Z",
      "action_url": "/docs/concepts/regimes"
    },
    {
      "id": "notif_def456",
      "type": "consolidation_completed",
      "title": "Consolidation cycle completed",
      "message": "Merged 12 patterns, pruned 5, strengthened 34 links.",
      "read": true,
      "created_at": "2026-01-20T03:00:00Z",
      "action_url": null
    },
    {
      "id": "notif_ghi789",
      "type": "pattern_limit_warning",
      "title": "Approaching pattern limit",
      "message": "You're at 80% of your plan's pattern limit (80,000/100,000).",
      "read": false,
      "created_at": "2026-01-19T10:00:00Z",
      "action_url": "/billing"
    }
  ],
  "unread_count": 2,
  "pagination": {
    "page": 1,
    "per_page": 20,
    "total": 15,
    "total_pages": 1
  }
}
import os
from engramma_cloud import EngrammaClient

client = EngrammaClient(api_key=os.environ["ENGRAMMA_API_KEY"])

notifications = client.notifications.list(unread_only=True)
print(f"Unread: {notifications.unread_count}")
for n in notifications:
    print(f"[{n.type}] {n.title}")
    print(f"  {n.message}")

Mark as read

PATCH/v1/notifications/{notification_id}/read

Mark a single notification as read.

notification_idstringrequired

Notification ID (path parameter).

200Response
{
  "id": "notif_abc123",
  "read": true,
  "read_at": "2026-01-20T15:00:00Z"
}

Mark all as read

POST/v1/notifications/read-all

Mark all notifications as read.

200Response
{
  "marked_read": 5,
  "read_at": "2026-01-20T15:00:00Z"
}
result = client.notifications.read_all()
print(f"Marked {result.marked_read} notifications as read")

Delete notification

DELETE/v1/notifications/{notification_id}

Delete a single notification permanently.

notification_idstringrequired

Notification ID (path parameter).

200Response
{
  "deleted": true,
  "id": "notif_abc123"
}

Delete all read

DELETE/v1/notifications/read

Delete all read notifications. Unread notifications are preserved.

200Response
{
  "deleted": 12,
  "preserved_unread": 3
}

Notification types

TypeTriggerSeverity
regime_changedMemory space changes regimeInfo
consolidation_completedAutomatic consolidation finishesInfo
pattern_limit_warningUsage exceeds 80% of limitWarning
pattern_limit_reachedUsage hits 100% of limitCritical
payment_failedInvoice payment failedCritical
key_expiringAPI key expires within 7 daysWarning
member_joinedNew member accepted invitationInfo
export_readyGDPR data export is readyInfo

Next steps

  • Webhooks — Get real-time event notifications via HTTP
  • Webhooks Setup Guide — Configure webhook receivers
  • Usage — Monitor consumption that triggers notifications