POSTs to. You subscribe to events, we sign the body, you answer quickly with 2xx (including 204).
Private, loopback, and link-local URLs are refused. Connect does not follow redirects — a 3xx is a failure.
Create and manage endpoints in the dashboard or the Webhooks API. Creating one does not ping the URL; send a test when you want to.
Events
There is no
publishing event and no wildcard. Immediate publish goes draft → publishing (silent) → outcome. A due scheduled post does the same. Edits that do not change status send nothing.
What arrives
A small envelope: an id, the event name, adata object, and a timestamp.
- id is the delivery. Retries of the same attempt keep it. A replay gets a new one.
- type is the event, or
webhook.testfor a ping (datais empty). - data on post events is the post (caption, media, per-network rows, author). On account events it is the social account.
- created_at is this attempt. Retries keep the id and write a new timestamp — so the signature changes. Dedupe on
id, not on the raw body.
Verify it is us
Connect sendsX-Webhook-Signature: hex HMAC-SHA256 of the raw body, plus User-Agent: TryPost.it/1.0 (+https://trypost.it).
Hash the bytes you received (not a re-serialized JSON) with the signing secret. Compare with a constant-time check.

