Section 14

14. Webhooks and notifications

bash
curl -X POST "$BASE/v1/projects/$PROJECT_ID/webhooks" \
  -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"url": "https://example.com/hook",
       "events": ["instance.ready", "cost.threshold_reached"]}'

GET /v1/webhooks/event-types lists everything subscribable (48 types: instance lifecycle, model discovery and promotion, membership and invitation changes, cost thresholds, training completion).

Deliveries are HMAC-signed with a per-subscription secret, retried with backoff, and dead-lettered on repeated failure. GET /v1/webhooks/{id}/deliveries shows attempts; POST /v1/webhooks/deliveries/{id}/replay re-sends one.

Never fired in production. Zero subscriptions and zero deliveries exist, so signing, retry, backoff and dead-lettering are untested against reality.