Setup
Webhook management (create / list / delete) uses your console login JWT — same auth as API Keys in the developer console. Platform API keys (gw_*)
authenticate session/control calls; they cannot manage webhooks.
- Open Console → Webhooks, or call
POST /v1/webhookswithAuthorization: Bearer <console_access_token>(the same JWT the console uses after you sign in). - Enter a public
https://URL (private / loopback / link-local / cloud-metadata addresses are rejected; redirects are not followed). - Copy the signing secret shown once on create (
whsec_…). - Start a session — your endpoint should receive
session.started, thensession.endedwhen it closes (including idle timeout / owner kill).
Payload
ended_reason (on session.ended)
Idle timeout is still a
session.ended event — there is no separate
session.reaped event. Switch on ended_reason=idle_timeout.
Headers
Verify the signature
Reject deliveries whose timestamp is more than 5 minutes from your clock (replay protection).Delivery behavior
- ~5s timeout; response body is capped — a slow or huge reply cannot tie up the worker.
- Failed deliveries update last status in the console.
- Retries are not implemented yet — poll sessions if you need a durable record.
