Webhooks
Webhooks deliver real-time event notifications to your HTTPS endpoint when things happen in your Memsolus workspace — memories created, processed, or the knowledge base updated.
Webhooks require the hasWebhooks entitlement on your plan.
Endpoint Overview
| Method | Path | Permission | Description |
|---|---|---|---|
POST | /v1/webhooks | webhook.write | Create a webhook |
GET | /v1/webhooks | webhook.read | List webhooks |
GET | /v1/webhooks/:id | webhook.read | Get webhook details |
PUT | /v1/webhooks/:id | webhook.write | Update webhook |
DELETE | /v1/webhooks/:id | webhook.delete | Delete webhook |
POST | /v1/webhooks/:id/test | webhook.write | Send a test event |
GET | /v1/webhooks/:id/deliveries | webhook.read | List delivery attempts |
GET | /v1/webhooks/:id/deliveries/:deliveryId | webhook.read | Get a single delivery detail |
Webhook Object
| Field | Type | Description |
|---|---|---|
id | string | UUID of the webhook |
url | string | HTTPS delivery URL |
events | string[] | Subscribed event types |
description | string | null | Optional label |
headers | object | null | Additional headers sent with each delivery |
active | boolean | Whether the webhook is enabled |
created_at | string | ISO 8601 creation timestamp |
updated_at | string | ISO 8601 last-update timestamp |
Create Webhook
/v1/webhooksCreate a new webhook endpoint
| Parameter | Type | Description |
|---|---|---|
urlrequired | string | HTTPS URL to receive webhook deliveries (max 2048 chars) |
eventsrequired | string[] | List of event types to subscribe to (1–20 items). Use `*` to subscribe to all events. Format: `category.action` (e.g., `memory.created`) |
description | string | Optional label for this webhook (max 255 chars) |
headers | object | Additional headers sent with every delivery — max 10 key-value pairs |
active | boolean | Whether the webhook is active (default: true) |
The secret field is returned only once at creation time. Store it securely — it is required to verify webhook signatures. It cannot be retrieved later.
| Error code | Description |
|---|---|
409 DUPLICATE_WEBHOOK_URL | A webhook for this URL already exists |
422 WEBHOOK_LIMIT_EXCEEDED | Maximum webhook count reached for this plan |
List Webhooks
/v1/webhooksList all webhooks in the workspace
Get Webhook
/v1/webhooks/:idGet details of a webhook (secret not included)
Update Webhook
/v1/webhooks/:idUpdate webhook URL, events, headers, or status
| Parameter | Type | Description |
|---|---|---|
url | string | New delivery URL |
events | string[] | Replace the subscribed event list |
description | string | Updated description |
headers | object | Replace additional headers (max 10 pairs) |
active | boolean | Enable or disable the webhook |
Delete Webhook
/v1/webhooks/:idDelete a webhook
Send Test Event
/v1/webhooks/:id/testTrigger a test delivery to verify the endpoint
List Deliveries
/v1/webhooks/:id/deliveriesList delivery attempts for a webhook
| Parameter | Type | Description |
|---|---|---|
page | number | Page number (default: 1) |
page_size | number | Results per page, max 100 (default: 20) |
Get Delivery
/v1/webhooks/:id/deliveries/:deliveryIdGet the full details of a single delivery attempt
Webhook Payloads
Every delivery includes two verification headers:
Verify the Signature
Always verify the signature before processing a delivery:
Example Payload
Available Events
| Event | Description |
|---|---|
memory.created | A new memory was stored |
memory.updated | Memory content or priority changed |
memory.consolidated | Memory was evaluated against similar memories |
knowledge.updated | The knowledge base was recompiled for a user |
* | Subscribe to all events |
Delivery Retries
Failed deliveries are retried with exponential backoff up to 5 times over 24 hours. Your endpoint must return a 2xx status code within 10 seconds to be considered successful.