Email validation for Typeform forms
The sign-up widget cannot run in Typeform: you cannot add your own script to a typeform, and an embedded typeform sits in an iframe on your page. Instead, send each response to a webhook, Zapier or Make and verify the address with the SimpleVerifier API after it is submitted.
Before you start
Webhooks and the Zapier connection are available in Typeform; check which of them your Typeform plan includes.
What to do instead
- In Typeform open your form, then Connect, then Webhooks, and add the URL of your endpoint. Or use Connect, then Zapier or Make.
- On your server, receive the response and find the email answer (the example below finds the first email address in the payload).
- Call the SimpleVerifier verify endpoint with your key from the server, never from the form.
- Act on the status: valid, risky or invalid. For example, tag invalid leads or skip sending them a welcome email.
// Receives the form platform's webhook, then checks the address with your key.
// SIMPLEVERIFIER_KEY stays on your server.
app.post("/webhooks/form", express.json(), async (req, res) => {
res.sendStatus(200); // answer the webhook first; the check runs after
const email = JSON.stringify(req.body).match(/[^\s"@\\]+@[^\s"@\\]+\.[^\s"@\\]+/)?.[0];
if (!email) return;
try {
const r = await fetch(
"https://simpleverifier.com/api/v1/verify?email=" + encodeURIComponent(email),
{ headers: { Authorization: `Bearer ${process.env.SIMPLEVERIFIER_KEY}` },
signal: AbortSignal.timeout(10000) }
);
const { status } = await r.json(); // valid | risky | invalid
if (status === "invalid") {
// e.g. tag the lead, skip the welcome email, or ask the person for another address
}
} catch {
// Timeout or network error: treat the address as unchecked, not as bad.
}
});Limits on Typeform
- This runs after the person has submitted, so it cannot stop a bad address. It lets you flag or skip it afterwards.
- Typeform's own email field only expects an address that looks valid; it does not tell you whether the mailbox exists.
- Mailbox checks need a plan with API access.
Check that the mailbox exists
The check runs on your server or in a no-code tool, so your API key stays private. See the API docs, the full form widget page with Node, PHP and Python examples, and pricing.
Common questions
- Can I add the widget script to a typeform?
- No. Typeform gives you no place to add a script to the form, and an embedded typeform runs in an iframe that your page's scripts cannot reach.
- What can I do instead?
- Send responses to a webhook, Zapier or Make, call the API there, and use the status in your next step.
- Does this stop people entering a bad email?
- No. The check happens after submission. Use it to decide what happens next, such as asking the person for another address.
- Is the form widget free?
- Yes. The widget runs in the visitor's browser, needs no account or API key and has no usage limit. Checks that confirm the mailbox exists use the SimpleVerifier API from a server, which comes with Pro, Business and Agency, from $39/month.