Create Webhook
Webhooks (Real-Time)
Create Webhook
Register a webhook to receive real-time events for an account
POST
Create Webhook
Create a webhook listener for one of your connected accounts. The delivery mode is determined by whether you provide a
url:
- With
url— Custom mode: events are sent asPOSTrequests to your URL - Without
url— Hosted mode: events are available via SSE stream or polling
Monitoring starts automatically. As soon as the webhook is created, the account’s real-time SSE stream is opened and credit billing begins (≈10 credits/day per account). You don’t need to call
/start — that endpoint is only used to resume a webhook that was previously stopped via /stop.Calling POST /v2/webhooks itself costs 0 credits; the running cost comes from the live monitoring it enables.Header Parameters
Your API key
Body Parameters
The ID of the account to monitor. Must be an account you own (created via
/v2/login).The URL where events will be sent as
POST requests. Must be a publicly accessible HTTPS endpoint.Omit this field to create a hosted webhook (SSE/polling).List of event types to listen for. Defaults to
["all"] which receives every event.Available event types: message_received, accepted_invitation, all.Custom mode only. When
true, every outbound POST is signed with HMAC-SHA256 so you can verify it came from LinkUp. The response returns a secret once — store it; it cannot be retrieved later. See Signature Verification.Response
Whether the webhook was created successfully
Notes
- The webhook is created in an active and monitoring state — events start flowing immediately, no extra call required.
- You can create multiple webhooks for the same account with different event filters. Billing is per-account (not per-webhook), so adding a second webhook to the same account doesn’t double the credit cost.
- Stopping the last active webhook on an account (via
/stoporDELETE) halts monitoring and stops the credit billing automatically. Other webhooks on the same account are unaffected. - For custom mode, the webhook URL must return a
200status code to acknowledge receipt. - When
accepted_invitationis in the events list, the API performs an initial sync of your connections to enable detection of new acceptances.