> ## Documentation Index
> Fetch the complete documentation index at: https://docs.60db.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Rotate Integration Signing Secret

> Issue a new signing secret for a custom webhook. The old one stops at once

Issue a new signing secret for a custom webhook. The new secret is returned **once**. The old secret stops working at once, so update your endpoint in the same moment. Headers and the other settings do not change.

Only custom webhooks have a signing secret. Other providers return `422`.

## Request

### Headers

**Authorization** `string` *required*

Bearer token with your API key (scope `agents`)

### Path

**id** `string` *required*

The connection `id` (UUID) of a custom webhook

## Response

**200 OK**

```json theme={null}
{
  "success": true,
  "data": { "signing_secret": "whsec_…" }
}
```

Store the value now. It is not shown again. Check the signatures in your endpoint with it, as shown in [Verify signatures](https://docs.60db.ai/features/agents-integrations.md#verify-signatures).

## Errors

| Status | Code | Meaning |
| - | - | - |
| 403 | `POLICY_DENY` | Your role cannot manage integrations, or the API key lacks the `agents` scope |
| 404 | `INTEGRATION_NOT_FOUND` | No connection with this ID in your workspace |
| 422 | `INTEGRATION_NO_SIGNING_SECRET` | The connection is not a custom webhook |
| 429 | `RATE_LIMITED` | More than 10 integration changes in the last minute |

## Example

```bash cURL theme={null}
curl -X POST https://api.60db.ai/agents/integrations/INTEGRATION_ID/rotate-secret \
  -H "Authorization: Bearer your-api-key"
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.