Skip to main content
POST
Requires manage webhooks permission (Owner / Admin). Members and Viewers get 403. Private or local endpoints are rejected with 422 and an errors.endpoint array. Creating does not ping the URL — use send test. The webhook is always created enabled. There is no status field on this request.

Request

string
required
Public http:// or https:// URL that will receive signed webhook payloads. Maximum 255 characters. Private, loopback, and link-local addresses are rejected.
array
required
At least one event. Allowed values: post.created, post.scheduled, post.unscheduled, post.published, post.partially_published, post.failed, post.deleted. There is no publishing event and no wildcard.

Response

Returns 201 with the created webhook, including signing_secret. Store the secret — you can also read it later with GET /webhooks/{webhook}. Same shape as GET /webhooks/{webhook}. Private, loopback, or otherwise blocked URLs return 422: