Webhooks

Rotate the signing secret

Changed on

Generates a fresh signing secret and returns it ONCE. The old secret is immediately invalidated — the next event delivery is signed with the new secret. Store the new value securely; it cannot be retrieved later.

Supply an Idempotency-Key header to safely retry on network errors — replays under the same key return the original rotation response rather than minting a fresh secret. Replays against a different public_id under the same key return 409 idempotency_conflict.

post/webhooks/{public_id}/rotate-secret

Request

  • Base URL: https://app.sendmux.ai/api/v1
  • URL: https://app.sendmux.ai/api/v1/webhooks/{public_id}/rotate-secret
  • Auth: one of:
    • HTTP bearer
    • OAuth 2 (authorization code, authorization URL https://app.sendmux.ai/oauth/authorize, token URL https://app.sendmux.ai/oauth/token, scopes: webhook.manage)

Path parameters

public_idstring required

Webhook public ID

Headers

Idempotency-Keystring

Client-chosen unique key to safely retry the request. Cached for 24h per (team, endpoint, key). Different target public_id under the same key returns 409 idempotency_conflict.

Example:webhooks-rotate-20260424-001

Response

Subscription with new signing secret

oktrue required

Example response

{
  "meta": {
    "request_id": "req_clxxxxxxxxxxxxxxxxxxxxxxxxx"
  },
  "data": {
    "created_at": "2026-04-23T09:12:00Z",
    "enabled": true,
    "event_types": [
      "message.bounced",
      "message.received"
    ],
    "filters": {
      "mailbox_ids": [
        "mbx_clxxxxxxxxxxxxxxxxxxxxxxxxx"
      ]
    },
    "id": "whk_clxxxxxxxxxxxxxxxxxxxxxxxxx",
    "name": "Acme inbound forwarder",
    "secret": "whsec_a9f3c2…",
    "updated_at": "2026-04-23T09:12:00Z",
    "url": "https://hooks.acme.com/sendmux"
  }
}

Changes

    • breaking

      the / response's property type changed from no type to object for status

    • info

      removed subschema #2 from the / response property allOf list for the response status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      the endpoint scheme security oauth2 was added to the API