Create a webhook subscription

Board admins on Pro boards only. Registers a new endpoint and subscribes this board to events. The response carries the signing secret (as do later reads). The URL must be absolute http(s); a literal private, loopback or link-local IP is rejected, and delivery re-checks the resolved address so DNS can't route around it.

post/projects/{id}/webhooks

Request

  • Base URL: https://craaft.io/api/v1
  • URL: https://craaft.io/api/v1/projects/{id}/webhooks
  • Auth: HTTP bearer

Request body

urlstring uri required
descriptionstring
format'craaft' | 'slack' | 'discord'

Delivery format (omitted or empty = craaft). 'craaft' sends a signed JSON envelope; 'slack' and 'discord' POST message JSON to webhook URLs registered with those services (unsigned). Slack and Discord messages are grouped per card: changes are sent as one message once the card has been quiet for a minute (at most 5 minutes after the first change). A bulk request is one message for the whole request; a column rebalance sends none.

eventsstring[]

Event filter; empty=subscribe to all events

Response

Created

idstring uuid required

Subscription id (the handle for update/delete)

endpointIdstring uuid required

Endpoint id at the workspace level

urlstring uri required

The target URL for deliveries

secretstring required

HMAC signing secret for 'craaft' deliveries (X-Craaft-Signature). Returned on every read to board admins. Slack/Discord deliveries are unsigned and ignore it.

descriptionstring required

Optional label

format'craaft' | 'slack' | 'discord' required

Delivery format (craaft=signed JSON envelope; slack/discord=message POST)

eventsstring[] required

Event filter (empty=all events; non-empty=only listed events)

activeboolean required
createdAtstring date-time required

Changes

No recorded changes to this operation across all 2 revisions of this API.