If you’re using Zapier, Make, Clay, or n8n, webhooks are handled automatically by these platforms. You can skip this section.
Why Webhooks?
Webhooks are notifications sent directly to your server when results are ready. Instead of you having to check for results, we push them to you immediately. Benefits:- Fastest method to receive results
- No need to keep a connection open
- No HTTP timeouts or retries to manage
- Simpler and more reliable than polling
How It Works
- When you start an enrichment or reverse lookup, include a
webhook_urlin your request - We process your contacts (typically 30-90 seconds per contact)
- When done, we POST the results directly to your webhook URL
Webhook Parameters
webhook_url — Batch Completion
Your webhook URL receives a POST request when the entire batch is finished, lacks credits, or is canceled.
webhook_events.contact_finished — Real-Time Per-Contact
If you need results as fast as possible, use this parameter. It fires a webhook immediately after each individual contact is enriched, without waiting for the entire batch to complete.
This is perfect for real-time integrations where you want to process results as they come in.
Reliability & Retries
Webhooks are reliable by design. If we can’t deliver your result (for example, receiving a non-2xx status code), we’ll automatically retry every minute, up to 5 times. For most use cases, you can treat webhooks as “guaranteed delivery.” If there’s ever a question about a specific result or missed event, our team can check our delivery logs on request.Tracking Requests with custom
You can easily keep track of which result belongs to which user or request by using the custom parameter. Include any identifier you need (User ID, CRM contact ID, etc.), and it will be returned exactly as provided in the webhook payload.
Custom field values must be strings. Numbers will return an error.
Testing Webhooks
Polling (Not Recommended)
Polling means repeatedly calling the GET endpoint to check if the operation is finished. This is not recommended because:- It consumes your rate limit quota
- Results come slower than with webhooks
- More complex to implement reliably