Lost a webhook signing secret? Gemini shows it once, Sume re-reads
Gemini static webhooks return the signing secret once at creation. Sume's secret can be read again from the dashboard or GET /v1/webhooks/signing-secret.

If you lose a Sume webhook signing secret, read it again: open the Webhooks tab of the dashboard and use Reveal, or call GET /v1/webhooks/signing-secret with an API key that carries account:read. The Gemini API's static webhooks, by contrast, are described as returning the signing secret only once at creation.
Sume facts are from Webhooks, read 2026-10-01.
Where do I find the Sume signing secret?
Two places: the dashboard page /dashboard/webhooks (Reveal, then copy), or the API endpoint above. The docs say the value is derived for your workspace, so it is yours rather than a shared platform value, and suggest storing it as SUME_COM_WEBHOOK_SIGNING_SECRET.
curl https://api.sume.com/v1/webhooks/signing-secret \
-H "Authorization: Bearer $SUME_API_KEY"Is there one secret per webhook?
No. Job webhooks and run webhooks share that one workspace secret, so a single verifier covers both. Sume registers callbacks per job, so there is no per-webhook secret to lose.
| Aspect | Gemini static webhook | Sume |
|---|---|---|
| Shown at creation only | Yes, as written | No; re-readable |
| Scope | Per static webhook | One per workspace |
| Retrieval | Not covered | Dashboard Reveal or GET /v1/webhooks/signing-secret |
| API permission | Not covered | account:read |
How do I know which secret signed a delivery?
Every delivery carries x-sume-webhook-secret-fingerprint, and the receipt repeats it as webhook_delivery.signing_secret_fingerprint. If a signature does not verify, compare that fingerprint with the one shown beside the secret in the dashboard. Neither side has to send the secret itself.
During a rotation the signature header can carry one sume-v1= entry per live secret, newest first. Accept the delivery if any entry matches.
What should I do after reading the secret?
Put it in your secrets manager, not in source control, and make your verifier refuse to run with an empty value. The delivery debugging steps are in this guide.
Sources
Related posts
More in Developers
- Gemini thin webhook payload vs Sume: artifact URLs in the body
Gemini webhooks send a snapshot with pointers to results. A Sume job.completed webhook already carries the media.sume.com artifact URL, so no second fetch.
- Copilot app sandbox network: Sume hosts to allow
In a sandboxed GitHub Copilot app session, allow api.sume.com, mcp.sume.com and media.sume.com outbound; send the Sume key as a header, not a git credential.
- GITHUB_TOKEN can't redeliver webhooks; Sume uses jobs:write
GitHub's built-in GITHUB_TOKEN cannot redeliver webhooks. For Sume job webhooks, a jobs:write API key calls POST /v1/jobs/{job_id}/webhook/redeliver instead.
- Google Cloud TTS caps requests at 5,000 bytes; Sume counts characters
Google lists 5,000 total bytes per request and says multi-byte characters such as ja-JP count toward it. Sume TTS 1.0 counts characters: up to 20,000.
Written by Sume