Webhooks
List signing keys
List the webhook’s rotation keys (status primary, secondary or retired) without secrets. A new webhook has no rows until you stage a key; its creation secret signs as primary until then.
GET
https://api.sndr.sh/api/cranl/v1/webhooks/{id}/signing-keysList signing keys
curl 'https://api.sndr.sh/api/cranl/v1/webhooks/wh_2a7d4e9c-6b1/signing-keys' \
-H 'Authorization: Bearer sndr_your_access_token'200OK
{
"webhook_id": "wh_2a7d4e9c-6b1",
"webhook_url": "https://your-app.com/webhooks/sndr",
"data": [
{
"id": "whk_61d0a9c7-5e4",
"webhook_id": "wh_2a7d4e9c-6b1",
"status": "secondary",
"created_at": "2026-06-01T13:00:00Z",
"created_by": "usr_5b2f8c1e-9a3",
"rotation_reason": "scheduled rotation"
}
],
"count": 1
}Authorization
AuthorizationstringheaderrequiredBearer followed by an access token. Needs the read scope.
Path parameters
idstringrequiredWebhook ID (wh_...).
Errors
401
unauthenticatedMissing or invalid Bearer token.401
token_expiredAccess token expired — exchange the refresh token for a new pair.401
token_revokedToken was explicitly revoked.403
insufficient_scopeToken is missing the read scope.404
not_foundResource does not exist or belongs to a different account.