Create webhook
Creates an enabled webhook that sends the chosen post events to your endpoint. The response includes the signing_secret. The endpoint must be a public http or https URL: other schemes and private or local addresses are refused with 422 This endpoint is not allowed. on endpoint.
Each delivery is a JSON POST with the body {id, type, data, created_at} and the header X-Webhook-Signature: the hex HMAC-SHA256 of the raw body, keyed with the webhook’s signing_secret. Compare it with your own HMAC of the body before trusting it. A delivery that does not get a 2xx answer within 10 seconds is retried twice, a minute apart. Redirects are not followed.
Authorizations
Workspace API key from Settings → API Keys.
Body
2551post.created: a post was created. Itsdata.statusis the status it was created with (draft,scheduled,publishingorpending_approval).post.scheduled: an existing post was scheduled (for example a draft scheduled, or a request approved). A post created already scheduled sends onlypost.created.post.unscheduled: a scheduled post went back to draft or to pending approval.post.published: every destination was published.post.partially_published: some destinations were published and others failed.post.failed: publishing failed.post.deleted: a post was deleted. Not sent for posts imported from the network or removed by disconnecting their channel. Itsdatais only{id, workspace_id}.
post.created, post.scheduled, post.unscheduled, post.published, post.partially_published, post.failed, post.deleted Response
The created webhook, with its signing secret.
post.created: a post was created. Itsdata.statusis the status it was created with (draft,scheduled,publishingorpending_approval).post.scheduled: an existing post was scheduled (for example a draft scheduled, or a request approved). A post created already scheduled sends onlypost.created.post.unscheduled: a scheduled post went back to draft or to pending approval.post.published: every destination was published.post.partially_published: some destinations were published and others failed.post.failed: publishing failed.post.deleted: a post was deleted. Not sent for posts imported from the network or removed by disconnecting their channel. Itsdatais only{id, workspace_id}.
post.created, post.scheduled, post.unscheduled, post.published, post.partially_published, post.failed, post.deleted paused is set by TryPost after 5 failed deliveries in a row (the account owner is emailed). Set status: enabled to resume.
enabled, disabled, paused ISO 8601, UTC.
"2026-10-08T14:00:03+00:00"
ISO 8601, UTC.
Secret used to sign deliveries (whsec_ and 32 characters). Only returned when you create, get or rotate the webhook.
"whsec_4qXbV8kP2mT7nR1sW9yZ3cE6hJ0aL5dF"
ISO 8601, UTC.
"2026-09-15T10:00:00+00:00"
ISO 8601, UTC.
"2026-10-08T14:00:03+00:00"

