Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.mengram.io/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Webhooks send HTTP POST requests to your server when memory events occur. Use them to sync memories with your app, trigger workflows, or build real-time features.

Create a webhook

hook = m.create_webhook(
    url="https://your-app.com/webhooks/mengram",
    name="Production webhook",
    event_types=["memory_add", "memory_update", "memory_delete"],
    secret="your-hmac-secret",  # optional, for signature verification
)
print(hook)  # {"id": 1, "url": "...", "active": true}

Event types

EventDescription
memory_addNew entity or facts added
memory_updateEntity facts updated
memory_deleteEntity deleted

Webhook payload

{
  "event": "memory_add",
  "timestamp": "2026-02-27T10:30:00Z",
  "data": {
    "entity": "PostgreSQL",
    "type": "technology",
    "facts": ["Uses PostgreSQL 16", "Deployed on Railway"],
    "user_id": "default"
  }
}

Signature verification

If you provided a secret, each request includes an X-Mengram-Signature header with an HMAC-SHA256 signature of the request body.
import hmac, hashlib

def verify_webhook(body: bytes, signature: str, secret: str) -> bool:
    expected = hmac.new(
        secret.encode(), body, hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(f"sha256={expected}", signature)

Manage webhooks

# List all
hooks = m.get_webhooks()

# Update
m.update_webhook(webhook_id=1, active=False)

# Delete
m.delete_webhook(webhook_id=1)