Set webhook config
Create or replace the org’s webhook config. Idempotent on url /
events / enabled. The full signing secret is returned here —
on first create, or whenever rotate_secret=true. Store it: GET
only ever returns it masked.
Authorizations
Long-lived org API key. Alternative: Authorization: Bearer <key>.
Required alongside the API key (no key→org reverse index).
Query Parameters
When true, mint a fresh signing secret even if a config already exists. Default false preserves the existing secret so an URL/events edit doesn't break the subscriber.
Body
PUT /v1/webhooks — set or replace the org's webhook config.
HTTPS endpoint Xtrace POSTs terminal ingest events to. Must resolve to a public address — private / loopback / link-local hosts are rejected.
"https://api.zeabur.example/xtrace/webhooks"
Event types to receive. Omit (or null) to subscribe to all events. An empty list is rejected.
memory.learning.completed, memory.learning.failed [
"memory.learning.completed",
"memory.learning.failed"
]When false, the config is stored but no events are delivered. Lets you pause delivery without losing the URL.
Response
Successful Response
Wire shape of the org's webhook config.
Configured subscriber URL.
Event types currently subscribed.
memory.learning.completed, memory.learning.failed Whether deliveries are active.
Signing secret used to verify X-Webhook-Signature. Returned in full only when freshly minted — a first PUT (create) or PUT?rotate_secret=true. Store it then; every other response (a plain edit, or GET) masks it.
ISO-8601 timestamp the config was first created.
Constant discriminator for the resource type.
"webhook"ISO-8601 timestamp of the most recent edit.