Subscribe
Create a webhook endpoint from your dashboard at hub.madiad.com/dashboard/webhooks: enter the URL that should receive deliveries and pick the events you want. The dashboard generates asecret for that endpoint — store it. You’ll use it to verify every delivery.
Events
Each delivery is a JSON body shaped
{ "id", "type", "created_at", "data": { … } }. For post.completed, data carries profile_id, platform, media_type, success, url, publish_id, and error.
Verify the signature
Every request carries anX-MADIAD-Signature header in the form sha256=<hex>: an HMAC-SHA256 of the raw request body, keyed with your subscription secret. Recompute it and compare before trusting the payload. Each delivery also includes X-MADIAD-Event and X-MADIAD-Delivery headers.
Respond and retries
- Return a
2xxstatus quickly (within a few seconds) to acknowledge receipt. - Any non-
2xxresponse or a timeout is retried with exponential backoff. - Make your handler idempotent — a delivery can arrive more than once. Dedupe on the delivery
id(also sent as theX-MADIAD-Deliveryheader).

