---
title: "Validate contact data in Instantly"
url: "https://lookvalid.com/integrations/instantly-ai.md"
canonical_url: "https://lookvalid.com/integrations/instantly-ai"
last_updated: "2026-10-22"
type: "how-to"
summary: "Receive Instantly bounce events on your own endpoint and check the lead domain behind each one, so you can tell a dead domain from a one-off failure."
related: ["https://lookvalid.com/integrations.md", "https://lookvalid.com/docs/api/email-domain-check.md", "https://lookvalid.com/docs/quickstart.md"]
---

# Validate contact data in Instantly

Receive Instantly bounce events on your own endpoint and check the lead domain behind each one, so you can tell a dead domain from a one-off failure.

Instantly spreads cold sending across many mailboxes, and every mailbox that keeps hitting bad addresses loses sending health. A bounce event tells you an address failed but not why, so a whole dead domain looks the same as a single mistyped name until someone looks at the domain.

## What LookValid checks

- [Email Domain Check](https://lookvalid.com/products/email-domain-check.md): Looks at the domain of a bounced lead and reports whether it has mail servers and what its SPF and DMARC records say, which separates a dead domain from a mailbox that is simply gone. Flags throwaway and free-provider domains on leads that arrive from forms, so they are routed differently from company addresses. It cannot confirm that a mailbox exists. (1 credit per address checked)
- [Phone Numbering-Plan Validation](https://lookvalid.com/products/phone.md): Checks a phone number, when your own lead record holds one, against its country numbering plan and returns the number type the plan assigns. It does not say whether the line is active. (1 credit per valid number)
- [Domain Age](https://lookvalid.com/products/domain-age.md): Returns the registration date of a lead domain, which helps when a batch of leads all sit on domains created very recently. (2 credits per registered domain (unregistered domains are free))

## Connect it in four steps

1. Sign up for LookValid and create an API key in the dashboard.
2. Keep the key in the LOOKVALID_API_KEY environment variable of the service that receives the webhook, and put a shared secret in the custom headers field of the Instantly webhook so your endpoint can reject calls that do not carry it.
3. When a bounce event arrives, pass the lead email to the function: it posts to the email-domain-check endpoint, returns nothing if no result was found, and throws the error code and fix if the API refuses the call.
4. Store the three returned values next to the lead in your own table or CRM, and use them to suppress every lead on a domain that cannot receive mail instead of waiting for each address to bounce.

the HTTPS endpoint you register as the target URL of an Instantly webhook for bounce events The call is `POST https://YOUR_API_HOST/v1/email-domain-check`.

```js
const API_URL = "https://YOUR_API_HOST/v1/email-domain-check";

export async function classifyInstantlyBounce(value) {
  const response = await fetch(API_URL, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.LOOKVALID_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      "email": value,
    }),
  });
  const result = await response.json();
  if (!response.ok) throw new Error(`${result.error.code}: ${result.error.fix}`);
  if (!result.found) return null;
  return {
      "domain_receives_mail": result.data?.has_mx ?? null,
      "address_signal": result.data?.deliverability_signal ?? null,
      "throwaway_domain": result.data?.disposable ?? null,
  };
}
```

| Response field | Goes into |
| --- | --- |
| `data.has_mx` | domain_receives_mail |
| `data.deliverability_signal` | address_signal |
| `data.disposable` | throwaway_domain |

## Without code

Instantly can post events to any URL, so a generic HTTP request step in an automation platform can act as the receiver. Use the platform catch-hook trigger as the webhook target, add a step that sends the lead email from the bounce event to the email-domain-check endpoint with your key in a bearer header, and finish with a step that marks the lead or its domain in your sheet or CRM. No dedicated app is required.

## Questions

### How many credits does one bounce check use?

One lookup draws credits from your LookValid balance. See the pricing page for the current amount per product.

### Can the check tell me why an address bounced?

Not the individual reason. It tells you about the domain, such as missing mail servers or a throwaway provider, which explains a whole group of bounces. It never contacts the mail server.

### Where do I store the LookValid key for a webhook receiver?

In an environment variable on the service that receives the webhook. The shared secret that proves a call came from Instantly is a separate value, set in the webhook headers.

## Sources

- [Instantly API reference: create webhook](https://developer.instantly.ai/api-reference/webhook/create-webhook), read 2026-10-18
- [Instantly help center: how to use webhooks](https://help.instantly.ai/en/articles/6261906-how-to-use-webhooks), read 2026-10-18

## Related

- [LookValid integrations](https://lookvalid.com/integrations.md)
- [Email Domain Check reference](https://lookvalid.com/docs/api/email-domain-check.md)
- [Quickstart](https://lookvalid.com/docs/quickstart.md)
