Open MCP Portaldocs
ReferenceNotifications

Make a new signing secret (team owners and admins, browser session only)

POST
/v1/teams/{team}/notification-destinations/{destinationId}/rotate-secret

Returns the new secret once. For graceHours (default 24, 0 to 72) every delivery carries a signature for the new secret and one for the old, so receivers can switch without dropping messages; 0 ends the old secret now. 409 not_signed for a slack destination, team_archived. Audited; the secret never is.

Path Parameters

team*string

Team slug or ID

destinationId*string
Formatuuid

Request Body

application/json
  1. body
graceHours?integer

How long the old secret keeps signing too (0: stop now)

Formatint32
Range0 <= value <= 72
Default24

Response Body

Rotated; secret is shown only now

application/json
  1. response
data*
curl -X POST 'https://mcp.example.com/v1/teams/string/notification-destinations/497f6eca-6276-4993-bfeb-53cbbbba6f08/rotate-secret' \  -H 'Content-Type: application/json' \  -d '{}'
{  "data": {    "destination": {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "scope": "team",      "team": {        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",        "slug": "string",        "name": "string"      },      "name": "string",      "format": "json",      "urlDisplay": "https://hooks.slack.com/...",      "events": [        "server.unhealthy"      ],      "teamEvents": true,      "enabled": true,      "disabledReason": "failures",      "hasSecret": true,      "secretHint": "string",      "secretRotatedAt": "2019-08-24T14:15:22Z",      "previousSecretExpiresAt": "2019-08-24T14:15:22Z",      "health": {        "state": "unknown",        "consecutiveFailures": 0,        "lastSuccessAt": "2019-08-24T14:15:22Z",        "lastFailureAt": "2019-08-24T14:15:22Z",        "lastErrorClass": "not_allowed"      },      "revision": 0,      "createdAt": "2019-08-24T14:15:22Z",      "updatedAt": "2019-08-24T14:15:22Z",      "createdByName": "string"    },    "secret": "string"  }}