Create a webhook secret

Requires scope webhook:write.

One secret per tenant, covering every webhook you have registered. CLC signs
each delivery with it so you can tell a real delivery from a forged one.

Creating a second secret destroys the first immediately, and there is no
overlap window. Deploy the new value to your endpoint in the same window you
create it, or you will reject your own deliveries in between.

Until a secret exists, deliveries go out unsigned and you have no way to
authenticate them. Create it before you register any webhook.

Idempotency-Key matters more here than anywhere else in the API: without it,
a client retry on a timed-out request rotates the secret a second time and the
value from the first attempt is gone for good.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Headers
string
required
length ≤ 255

Required on every mutation. Unique per (tenant, key). Stored 24 h; a replay returns the original response with Idempotent-Replay: true.

string
required
^[0-9]{10}$

Unix seconds. Requests outside a ±5 minute window are rejected, and the value is part of the signed canonical request.

string
required
length between 88 and 88
^[A-Za-z0-9+/]{86}==$

Base64 of the Ed25519 signature over the canonical request. Ed25519 signatures are always 64 bytes, so this is always 88 characters ending in ==.

Response

Language
Credentials
Header
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json