Platform API reference
Create Webhook Endpoint
Register an HTTPS endpoint for platform lifecycle events. The HMAC signing secret is returned once, only in this response.
POST
Registers a webhook endpoint to receive lifecycle events. The response includes the HMAC signing
secret once — store it immediately; no later call returns it. If you lose it, delete the endpoint and create a new one.
Delivery starts with events created after the endpoint is registered — there is no backfill of earlier events. Link projects and subscribe before contracts you care about begin.
Requirements: webhooks:manage scope.
Request
Delivery URL. Must be HTTPS (
http is allowed for localhost only). Redirects are not followed.At least one of:
contract.started, contract.ended, project_link.created, project_link.removed, install.revoked, milestone.funded, milestone.budget_low, milestone.budget_depleted.Response
The created endpoint:
{id, url, eventTypes, status, createdAt, consecutiveFailures, disabledAt, disabledReason} — same shape as GET /webhook-endpoints/{endpointId}.HMAC-SHA256 signing secret for verifying deliveries. Shown only in this response.
Reminder that the secret will not be shown again.
Errors
| Status | code | Meaning |
|---|---|---|
400 | BAD_REQUEST | Body not valid JSON, url missing/not HTTPS, or eventTypes empty/contains an unknown type |
401 | UNAUTHORIZED | Missing, invalid, or revoked token |
403 | FORBIDDEN | Token lacks webhooks:manage |
409 | CONFLICT | Endpoint limit reached for this install |