webhook operations
The exact fields each webhook.* operation takes and returns.
Every op is POST /v1/<op> over HTTP and the MCP tool loom_<op>. The identity fields (org, namespace, agent, user_id, session_id) are filled from the token and the MCP session when a transport can; for an HTTP call with no token on a single-user server, the install's org on every op but code.* and tracker.* (which keep their plane's), and on some ops its namespace and agent; see identities and namespaces. The operations index explains role, kind and the MCP all listing. Unknown input fields are served and named in ignored_args.
webhook.deliveries
The namespace's webhook events of the last 3 days and their delivery state.
POST /v1/webhook.deliveries · MCP loom_webhook_deliveries · role admin · idempotent · not listed under the MCP all toolset
| Input field | Type | Default | Meaning |
|---|---|---|---|
org |
str |
required | The tenant (first element of the identity tuple). |
namespace |
str |
required | The namespace the op reads or writes. |
webhook_id |
str |
'' |
Only this webhook's events; "" = every webhook of the namespace. |
status |
Literal['pending', 'delivered', 'dead'] \| None |
None |
Only events in this state; None = every state. |
limit |
int |
100 |
At most this many events, newest first, 1-500. |
| Output field | Type | Meaning |
|---|---|---|
deliveries |
list[WebhookDelivery] |
Events, newest first. |
webhook.list
The namespace's memory webhooks.
POST /v1/webhook.list · MCP loom_webhook_list · role admin · idempotent · not listed under the MCP all toolset
| Input field | Type | Default | Meaning |
|---|---|---|---|
org |
str |
required | The tenant (first element of the identity tuple). |
namespace |
str |
required | The namespace the op reads or writes. |
| Output field | Type | Meaning |
|---|---|---|
webhooks |
list[WebhookInfo] |
The namespace's live registrations, oldest first. |
webhook.register
Register a URL that is told when memory in the namespace changes.
POST /v1/webhook.register · MCP loom_webhook_register · role admin · idempotent · audited · not listed under the MCP all toolset
| Input field | Type | Default | Meaning |
|---|---|---|---|
org |
str |
required | The tenant (first element of the identity tuple). |
namespace |
str |
required | The namespace the op reads or writes. |
url |
str |
required | Where events are POSTed: an https URL (http only where the deployment allows it) whose host resolves to public addresses. |
secret_ref |
str |
required | Name of the environment variable holding the signing secret (never the secret): LOOM_WEBHOOK_SECRET_<ORG>__<NAME>, ORG the org id upper-cased with every byte other than a-z and 0-9 as _ plus two hex digits. |
events |
list[Literal['memory.written', 'memory.revised', 'memory.tombstoned', 'memory.restored', 'memory.redacted', 'memory.erased']] |
(computed) | The event types to send; default every one. |
| Output field | Type | Meaning |
|---|---|---|
webhook |
WebhookInfo |
The registration as stored. |
webhook.remove
Remove one memory webhook; none of its events is sent after the call, save a POST already in flight.
POST /v1/webhook.remove · MCP loom_webhook_remove · role admin · idempotent · audited · not listed under the MCP all toolset
| Input field | Type | Default | Meaning |
|---|---|---|---|
org |
str |
required | The tenant (first element of the identity tuple). |
namespace |
str |
required | The namespace the op reads or writes. |
webhook_id |
str |
required | The webhook_id webhook.register or webhook.list returned. |
| Output field | Type | Meaning |
|---|---|---|
removed |
bool |
False when the namespace has no live webhook with that id. |