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.
Create a notification channel
Creates an email or webhook notification channel in the project.
Email: address is required. An address that belongs to one of the tenant's own
users is verified immediately. Any other address receives a single-use verification
link (valid 7 days) and gets NO alert until the link is redeemed;
verificationEmailSent says whether the link could be mailed.
Webhook: url is required and must be https (a dev environment may allow http
by configuration). A URL whose host is or resolves to a loopback, private, link-local,
metadata or otherwise non-public address is rejected (422). The response carries the
channel's HMAC-SHA256 signing secret in signingSecret exactly ONCE; every delivery
is signed with it in X-Publiccloud-Signature: t=<unix>,v1=<hex> over "<t>.<body>".
Limits: at most 20 channels per project, of which at most 5 webhooks (operator
adjustable); exceeding either is 409 QUOTA_EXCEEDED. A duplicate live name is 409
CONFLICT.
Idempotency: Idempotency-Key is optional (recommended); replaying the same key with the
same body
(by the same caller) returns the original response; reusing it with a different body
is 409 CONFLICT.
bearerTokenAuthorizationBearer <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.
scopeId*stringOpaque ownership+authorization scope resolving to tenant + subscription + project.
Idempotency-Key?stringOptional; recommended for safe retries. When sent, the same key+body within 24h replays the original result and the same key with a different body is 409 CONFLICT; keys are unique per tenant. When an API token or service-account (bearer) caller omits it, the request is applied once with no replay protection (a retry may apply it again). A console session gets one from the edge.
uuidapplication/json- body
Create body. address is required for type=email, url for type=webhook.
name*stringDisplay name; unique among the project's live channels.
^[^\p{C}\p{Z}\x{10000}-\x{10FFFF}](?:[^\p{C}\p{Zl}\p{Zp}\x{10000}-\x{10FFFF}]*[^\p{C}\p{Z}\x{10000}-\x{10FFFF}])?$1 <= length <= 255type*NotificationChannelTypeDelivery kind of a notification channel.
"email""webhook"address?stringRecipient email address (type=email).
length <= 254url?stringHTTPS endpoint (type=webhook).
length <= 2048Idempotent replay of an earlier create (no secret).
application/json- 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*booleanWhether a verification link was mailed by this call.
curl -X POST "https://example.com/scopes/string/observability/notification-channels" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "type": "email" }'{ "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}