Observability

Preview — pending review

This reference is generated from the platform API contract and is still under review. Operations, fields, and descriptions can change before publication.

Rotate a webhook channel's signing secret

POST
/scopes/{scopeId}/observability/notification-channels/{notificationChannelId}/actions/rotate-secret

Replaces the webhook channel's HMAC-SHA256 signing secret and returns the new one in signingSecret exactly once; the previous secret stops signing immediately. This is also how the secret of a webhook channel created from a budget is obtained. An email channel is 409. RBAC: MANAGE on the observability plane.

Authorization

bearerToken
headerAuthorizationBearer <token>

An API token (pc_live_…) or a service-account key (sak_live_…), created in Identity & Access Management and sent as Authorization: Bearer <token>. Requests are rate limited per credential and per tenant: every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset, and a refused request gets 429 RATE_LIMITED with Retry-After.

Path Parameters

scopeId*string

Opaque ownership+authorization scope resolving to tenant + subscription + project.

notificationChannelId*string

Response Body

The channel and its new signing secret.

application/json
  1. response

A created (or replayed) channel with its one-time material.

channel*

An alert notification destination owned by a project.

signingSecret*|

The webhook signing secret, returned ONLY by the create that minted it.

verificationEmailSent*boolean

Whether a verification link was mailed by this call.

curl -X POST "https://example.com/scopes/string/observability/notification-channels/string/actions/rotate-secret"
{  "channel": {    "id": "string",    "name": "string",    "type": "email",    "target": "string",    "verificationStatus": "verified",    "verifiedAt": "string",    "verificationExpiresAt": "string",    "managedBy": "string",    "createdAt": "string",    "createdBy": "string"  },  "signingSecret": "string",  "verificationEmailSent": true}