Create a webhook subscription
Creates a new webhook subscription and returns the signing secret ONCE in the response body. Store it securely — it cannot be retrieved later. Use POST /webhooks/{id}/rotate-secret to issue a new one.
Supply an Idempotency-Key header (any unique string, max 255 chars) to safely retry on network errors. Replays with the same key return the original response; replays with a different body return 409 idempotency_conflict.
Authorizations
Sendmux API key. Use a root API key for Management API routes, or a mailbox credential for Mailbox API routes. Obtain keys from the dashboard under API Keys.
Headers
Client-chosen unique key to safely retry the request. Cached for 24h per (team, endpoint, key). Different body with same key returns 409 idempotency_conflict.
255"webhooks-create-20260424-001"
Body
HTTPS endpoint that will receive event POSTs. Must be https:// — plain HTTP is rejected.
"https://hooks.acme.com/sendmux"
At least one event type must be provided.
1Event types a webhook may subscribe to. sendmux.test is accepted so you can verify end-to-end delivery via POST /webhooks/{id}/test.
message.delivered, message.bounced, message.complained, message.rejected, message.delivery_delayed, message.received, message.received.spam, sendmux.test ["message.bounced", "message.received"]Optional human-friendly label (max 255 chars). Surfaced in dashboard list/detail views.
1 - 255"Acme inbound forwarder"
Optional delivery scope. Omit or pass an empty mailbox_ids array to receive matching events for all mailboxes in the team.
Defaults to true.
true