---
name: looot-email-verification
description: Verify an email address. Use when the user says things like "is jane.doe@example.com a real email", "verify this list of emails before I send" or "check if this address will bounce". Runs through looot, billed per call.
---

# Verify an email address

Email verification API for an agent: it sends an email address to a catalog endpoint and reads deliverability status, catch-all flag and mail provider back. Several providers sell the call, so the agent tries the cheapest first. You pay per call, and a failed call costs nothing.

This skill needs the looot skill set up first: https://looot.ai/skill.md

## Ask for these inputs

The job takes an email address. Example: jane.doe@example.com.

- The email address, or a list of them
- Whether to treat catch-all domains as risky

## Run it

1. Find the endpoint: `looot discover --mode auto --query "email verification"`. The endpoints listed below are the known matches.
2. Read the price and the input schema before spending: `looot inspect <endpoint-id>`. Tell the user the price, then run.
3. Run it: `looot run icypeas-email-verify --input '{"email":"jane.doe@example.com"}' --idempotency-key <new-key> --wait`. Reuse the same key only to retry the same request.
4. Read the run's `status` and `error`, not the HTTP status. A run can return `failed` with a normal response.
5. If a run fails with a provider error or times out, try the next endpoint from the list below, cheapest first. If it fails on your input (a 4xx style error), fix the input. Do not retry it on other providers.

## Endpoints

Each endpoint reads the same job from a different provider. They differ in inputs, fields and price. Run `looot inspect` on the ones that take the input you hold, start with the cheapest, and move to the next on a provider error.

- `icypeas-email-verify`: waits up to 60 seconds and returns FOUND or NOT_FOUND with a certainty and the MX details, with catch-all detection
- `leadmagic-email-verify`: returns an email status and the catch-all flag, plus company name, industry and size when it knows the domain
- `tomba-email-verifier`: returns status, result, score, accept_all, MX and SMTP checks, and the pages where the address was seen
- `hunter-email-verifier`: scores the address from 0 to 100 and lists the checks behind it, such as disposable, webmail, gibberish and SMTP
- `zerobounce-validate`: adds a did_you_mean typo suggestion, a free-mailbox flag and the age of the domain
- `findymail-api-verify`: returns verified as true or false with the mail provider, and uses one verifier credit on every attempt
- `anysite-api-emails-verify`: checks syntax, MX and mailbox, or returns a verdict already on file

## What comes back

- Deliverability status
- Catch-all flag
- Mail provider
- Confidence score
- Typo suggestion

## Answer rule

Group addresses as deliverable, risky and undeliverable, and say how many are in each group.

## Before you start

- Verify the address you plan to send to, not the one you guessed. A found address that was never verified is the usual cause of a bounce.
- Treat catch-all as its own result. Keep those rows apart and decide per campaign whether to send.
- Run the cheap check on the whole list first. Spend more only on rows the first provider could not settle.

## Cost rules

- Searching and inspecting are free. Running is billed per call at the price `looot inspect` shows.
- Say the price before the first run, and the total after a batch.
- Never loop a failing call. Stop after two failures and report what failed.

## When not to use this skill

Use `looot-find-professional-emails` instead when you have no address yet and need to find one first.

Page for people: https://looot.ai/agent-skills/email-verification
