---
title: "Rotate the signing secret without changing the endpoint id. The new secret is returned IN FULL exactly once. For 24 hours each delivery is signed with both the new and the old secret (two v1 entries), so you can switch your verifier with no dropped events. Rotating again inside that window replaces the older secret immediately."
method: POST
path: "/webhooks/{webhookId}/rotate-secret"
---

# Rotate the signing secret without changing the endpoint id. The new secret is returned IN FULL exactly once. For 24 hours each delivery is signed with both the new and the old secret (two v1 entries), so you can switch your verifier with no dropped events. Rotating again inside that window replaces the older secret immediately.

`POST /webhooks/{webhookId}/rotate-secret`

## Request

- Base URL: `https://app.seomatic.ai/api/v1`
- URL: `https://app.seomatic.ai/api/v1/webhooks/{webhookId}/rotate-secret`
- Auth: HTTP bearer

## Path parameters

- `webhookId` string, uuid, required

## Response `200`

New secret (shown once) and when the old one stops signing

## Other responses

- `401`: Missing or invalid API key
- `402`: Webhooks require the Infrastructure plan
- `404`: No such endpoint in this workspace
- `429`: Rate limited (per key). Retry-After header set.

---

[API](https://skmtc.dev/seomatic/apis/seomatic-api.md) · [All operations](https://skmtc.dev/seomatic/apis/seomatic-api/llms.txt) · [OpenAPI document](https://skmtc.dev/seomatic/apis/seomatic-api/revisions/113a2a263604?raw)
