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

LookValid checks for Typeform
ProductWhat it does hereCredits
Email Domain CheckReads 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 ValidationChecks 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 ScraperFor 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

  1. Create a LookValid account and an API key from the dashboard, which a person does once.
  2. 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.
  3. 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.
  4. 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.

validateTypeformEmail.mjs
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,
  };
}
Where each response field goes in Typeform
Response fieldGoes into
data.deliverability_signalemail_signal
data.disposableemail_disposable
data.role_accountemail_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.

REST and MCPOne shared credit balance

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

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.

LookValid bills every lookup in credits from one shared balance, so the same key works for each check above.

See Email Domain Check