Integrations & API 4 min read Pro plan or higher
Setting Up Webhooks
Get an HTTP POST to your own endpoint whenever a link is clicked, created, updated or deleted.
Creating a webhook
- Go to Dashboard → Integrations → Webhooks and click Add webhook.
- Enter the HTTPS URL that should receive the events. Plain HTTP is not accepted.
- Select the events:
click,link.created,link.updated,link.deleted. - Save. The signing secret is shown once — copy it now. If you lose it, delete the webhook and create a new one.
Payload
Events are sent as JSON. A click event looks like this:
{ "event": "click", "link_id": 12345, "short_code": "pricing2026", "device": "mobile", "browser": "Safari", "country": "DE", "is_bot": false, "timestamp": "2026-09-06T14:03:22+00:00"
} Link events carry the same link_id and short_code fields plus the event name. Use is_bot to ignore preview crawlers on your side if you want raw delivery of everything.
Verifying the signature
Each request includes an HMAC signature computed with your secret over the raw request body. Recompute it on your server (HMAC-SHA256 of the body using the secret) and compare with a constant-time comparison before trusting the payload. Reject requests that do not match.
Delivery tips
- Respond with a 2xx status within a few seconds; do heavy work asynchronously.
- Treat events as possibly duplicated — key on
link_id+timestampif you need idempotency. - Test with a request-inspection service before pointing the webhook at production.