API referenceWebhooksRotate signing secret

Rotate a signing secret

⚠️
Preview — this feature is being built; the design below is the spec.
POST https://app.syntic.ai/v1/webhooks/{webhook_id}/rotate_secret

Issue a new signing secret. For the next 24 hours every delivery carries two v1 signatures, one per secret, so you can deploy the new secret without dropping events. After 24 hours only the new secret signs.

For how this fits into a full workflow, see Webhooks.

Headers

HeaderRequiredValue
AuthorizationYesBearer <key>: a private inference key (sk_live_...). See Authentication.
syntic-betaYes, while in previewwebhooks-2026-11-01. Without it the call fails with 400 beta_required. See Versioning.

Path parameters

ParameterTypeDescription
webhook_idstringThe webhook id, starting with whk_.

Response

200 OK, Content-Type: application/json

{
  "id": "whk_01JCA4C6E8G0J2L4N6Q8",
  "object": "webhook",
  "signing_secret": "whsec_P1x8Rr...redacted",
  "previous_secret_expires_at": "2026-11-09T12:00:00Z"
}
FieldTypeDescription
signing_secretstringThe new secret. Shown only in this response.
previous_secret_expires_atstringWhen the old secret stops signing.

Examples

curl -sS -X POST https://app.syntic.ai/v1/webhooks/whk_01JCA4C6E8G0J2L4N6Q8/rotate_secret \
  -H "Authorization: Bearer $SYNTIC_API_KEY" \
  -H "syntic-beta: webhooks-2026-11-01"

Errors

Errors use the error envelope and carry a request_id. Codes specific to this operation:

StatustypecodeWhen
400invalid_request_errorbeta_requiredThe syntic-beta header is missing.
404not_found_errorwebhook_not_foundNo webhook with that id in this workspace.
401authentication_errorinvalid_api_keyThe key is missing, unknown, revoked or expired.
429rate_limit_errorrate_limitedToo many requests; wait for Retry-After. See Rate-limit headers.
Was this page helpful?