Webhooks
Create Subscription
Create up to 25 webhook subscriptions per request. Specify the entity type, entity IDs, signal types to monitor, and your HTTPS webhook endpoint URL.
POST
Send a single request to subscribe one or more contacts or companies to real-time signal notifications. Each subscription links an entity to a webhook URL and the set of signal types you want to receive. Lusha delivers a signed JSON payload to your endpoint whenever a matching signal fires.
Endpoint:
Return the acknowledgment before performing any heavy processing. Queue the payload for async handling if needed:
POST https://api.lusha.com/api/subscriptions
You can create up to 25 subscriptions per request.
Request body
object
required
Default values applied to every subscription in the request, unless overridden per item.
string
Default subscription name prefix, applied unless a subscription item specifies its own
name. Maximum 100 characters.object[]
required
Array of subscriptions to create. Minimum 1, maximum 25 items per request (10 in development environments).
Example request
cURL
Example response
integer
Total number of subscription creation attempts.
integer
Number of subscriptions created successfully.
integer
Number of subscription creation attempts that failed.
object[]
One entry per item in the request
subscriptions array, in the same order. Each entry has index and success, plus either a subscription object (on success) or an error object with code and message (on failure) - for example a DUPLICATE_SUBSCRIPTION error if the entity is already subscribed.This endpoint supports partial success: some subscriptions in the request can be created while others fail (for example, due to a duplicate entity). Check
failed and inspect results to see which items succeeded.Webhook payload structure
When a signal fires, Lusha sends a POST request to the subscription’s webhook URL. The payload structure depends on the signal type.Delivery headers
Lusha includes the following headers in every webhook delivery:Required acknowledgment response
Your endpoint must respond within 10 seconds with an HTTP2xx status and the following JSON body:
boolean
required
Must be
true to confirm receipt.string
required
ISO 8601 timestamp of when your server received the request.
string
required
The
id value copied from the incoming webhook payload.Delivery and retry behavior
- Lusha retries failed deliveries up to 3 times with exponential backoff.
- A non-
2xxresponse or a timeout triggers the retry mechanism. - After all 3 retries are exhausted, the subscription is automatically disabled.
- All delivery attempts are recorded in audit logs.
Error responses
Authorizations
Your Lusha API key. You can find this in your Lusha dashboard under API settings.
Include this key in the api_key header for all requests.
Body
application/json