Webhooks push real-time events from your Linkmi profile straight to your server the moment they happen โ profile visits, link clicks, new subscribers. No polling. No delays.
// Incoming request from Linkmi
const body = JSON.parse(req.body);
// body =>
{
event: "profile.visit",
payload: { "country": "FR" },
timestamp: "2026-03-25T14:32:01Z"
}
Delivered ยท 12ms
Signature verified โ
Events
Each event arrives as a POST with a signed JSON body. The payload varies by event type.
profile.visitFired every time a visitor loads your public profile page.
link.clickFired when a visitor clicks a link, widget, or product on your profile.
subscriber.newFired when someone signs up through one of your mailing list widgets.
How it works
Go to your dashboard โ Webhooks, enter your server URL (HTTPS only) and choose which events to subscribe to.
A unique HMAC secret is generated per webhook. Paste it as an environment variable on your server โ never hard-code it.
Verify the X-Linkmi-Signature header, parse the JSON body, and react to the event. The dashboard shows a ready-to-use Node.js snippet.
Why it matters
Your server gets notified the instant an event happens โ no need to poll an API every few seconds and burn requests.
Webhooks are plain HTTPS POST requests with a JSON body. Any server that can handle a POST can receive them โ Node.js, Python, PHP, Go, or a no-code tool like Make or Zapier.
Every request is signed with a per-webhook secret using HMAC-SHA256. Your server can verify the signature and reject any request that didn't come from Linkmi.
See every webhook that was sent, the HTTP status returned by your endpoint, the duration, and any error. Debug faster without guessing.
Plan limits
3
Webhook endpoints
per account
1 000
Deliveries per day
rolling 24h window
10
Test sends per hour
to debug your endpoint