Skip to main content
POST
/
hooks
Add Webhook
curl --request POST \
  --url https://api.lemlist.com/api/hooks \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '{
  "targetUrl": "https://webhook.site/1d50ac35-2755-42cc-964c-9acbb4ebca30",
  "type": "linkedinInterested"
}'
{
  "_id": "hoo_ekxJgaAx32Garv2uJ",
  "targetUrl": "https://n8n.bvelitchkine.com/webhook/lemlist-webhook-surprise",
  "createdAt": "2025-10-29T00:47:42.035Z",
  "type": "linkedinInterested"
}
This endpoint uses the Webhook object.
Create a webhook that receives real-time POST callbacks at your URL when selected events occur.

What you can subscribe to

  • Activities by type (e.g., emailsSent, emailsOpened, emailsReplied, linkedinInterested). See the full list in the API reference for this endpoint’s request body.
  • Operational alerts (e.g., customDomainErrors, connectionIssue, sendLimitReached, lemwarmPaused, campaignComplete).
Optionally, you can scope a webhook to a single campaign and/or only trigger it the first time an event happens.

Examples

{
	"targetUrl": "https://webhook.site/your-id"
}
Tip: You can include an optional zapId if you use Zapier to track the webhook mapping on your side.

Authorizations

Authorization
string
header
required

Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.

Query Parameters

campaignId
string

Webhook for specific campaign

isFirst
boolean

Webhook for first activity only

zapId
string

Zapier ID

Body

application/json
targetUrl
string<uri>
required

The URL that will receive webhook POST requests.

type
enum<string>

Optional event type to subscribe to. When omitted, all events are sent.

Available options:
contacted,
hooked,
attracted,
warmed,
interested,
skipped,
notInterested,
emailsSent,
emailsOpened,
emailsClicked,
emailsReplied,
emailsBounced,
emailsSendFailed,
emailsFailed,
emailsUnsubscribed,
emailsInterested,
emailsNotInterested,
opportunitiesDone,
aircallCreated,
aircallEnded,
aircallDone,
aircallInterested,
aircallNotInterested,
apiDone,
apiInterested,
apiNotInterested,
apiFailed,
linkedinVisitDone,
linkedinVisitFailed,
linkedinInviteDone,
linkedinInviteFailed,
linkedinInviteAccepted,
linkedinReplied,
linkedinSent,
linkedinVoiceNoteDone,
linkedinVoiceNoteFailed,
linkedinInterested,
linkedinNotInterested,
linkedinSendFailed,
manualInterested,
manualNotInterested,
paused,
resumed,
customDomainErrors,
connectionIssue,
sendLimitReached,
lemwarmPaused,
campaignComplete,
annotated,
enrichmentDone,
enrichmentError,
callRecordingDone,
callTranscriptDone

Response

Success

_id
string

Unique identifier for the webhook

targetUrl
string

The URL where the webhook will send data

createdAt
string<date-time>

Timestamp when the webhook was created

type
string

Type of webhook event