Forms and commerce
Check email domains, phone numbers and website contacts in Typeform
Receive each Typeform submission on a small server, check the email domain, and store the result next to the response.
Why the data matters in Typeform
A form is the first place a stranger types an email address, and an answer to a question you asked is easy to trust. Respondents mistype domains or use a throwaway address to reach the thank-you page, and the follow-up email then goes nowhere while the response sits in your results as a real lead.
What LookValid checks
| Product | What it does here | Credits |
|---|---|---|
| Email Domain Check | Reads the domain of the email answer: mail records, SPF, DMARC, throwaway domains, free providers and role mailboxes. It cannot confirm that the mailbox exists. | 1 credit per address checked |
| Phone Numbering-Plan Validation | Checks a phone answer against its country numbering plan and returns E.164. It does not tell you the line is active. | 1 credit per valid number |
| Website Contacts Scraper | For a company website answer, reads the public pages and lists the contact addresses and social profiles they publish. | 10 credits per domain with contacts found |
Connect it in four steps
- Create a LookValid account and an API key from the dashboard, which a person does once.
- Register an https address as the webhook for your form, since new webhook addresses must use https, and set the key as the LOOKVALID_API_KEY environment variable on the host behind it so it never appears in the form or its results.
- Pull the email answer from the submission body, call the function, and if it returns null mark the response as unchecked; if it throws, log the error code and fix. Answer the webhook within 30 seconds either way, because a slow or failing reply makes Typeform retry, and a 404 or 410 reply disables the webhook.
- Store the signal, throwaway and role mailbox values in the table or sheet where you keep the response, keyed by the response id.
A small server function at an https address that Typeform's Webhooks API sends each submission to, which then checks the email answer. The call is POST https://YOUR_API_HOST/v1/email-domain-check and costs 1 credit per address checked.
const API_URL = "https://YOUR_API_HOST/v1/email-domain-check";
export async function validateTypeformEmail(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 {
"email_signal": result.data?.deliverability_signal ?? null,
"email_disposable": result.data?.disposable ?? null,
"email_role_mailbox": result.data?.role_account ?? null,
};
}
| Response field | Goes into |
|---|---|
| data.deliverability_signal | email_signal |
| data.disposable | email_disposable |
| data.role_account | email_role_mailbox |
The recipe returns nothing when the lookup finds nothing, which costs no credits for this product, and stops with the error code and fix on a failed request.
Without code
If you would rather not host a server, point the form's webhook at the address of an automation platform's incoming-webhook trigger and add its generic HTTP request step to call LookValid with the email answer. No dedicated LookValid app is needed, and the step's output can update the row for that response.
Questions
What does it cost in credits?
The pricing page lists the credits for the email domain check. You pay one check per submission you choose to verify.
What does the check not do?
It works on the domain. It cannot prove the mailbox exists, and it will not catch a real domain with a made-up name before the @.
Where does the key go?
In an environment variable on the server that receives submissions, never in the form. Typeform can also sign each delivery, so the same server can reject requests that are not from your form.
Sources
- Webhooks API (Typeform developers) https://www.typeform.com/developers/webhooks/, read 2026-10-18
- LookValid API reference: Email Domain Check https://lookvalid.com/docs/api/email-domain-check, read 2026-10-18
LookValid is run by Meralume Labs. It is not connected to, endorsed by or a partner of any company or product named on this page, and every product name belongs to its owner.
Related pages
LookValid bills every lookup in credits from one shared balance, so the same key works for each check above.
See Email Domain Check