# Email verification API for your agent

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.

## What this does

A verifier answers one question before you send: will this address bounce. Your agent sends the address, the provider checks the syntax, the mail server and the mailbox, and a status comes back. Several providers sell this check, and they do not return the same fields.

The part that matters most is the catch-all flag. Some domains accept mail for any name, so a clean check proves little. Most providers here report it, and a few add a confidence score or a typo suggestion, so your agent can fix jane.doe@exmaple.com before it spends anything else.

You give: an email address. Example: jane.doe@example.com.

## What differs between providers

- Icypeas (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 (leadmagic-email-verify): returns an email status and the catch-all flag, plus company name, industry and size when it knows the domain.
- Tomba (tomba-email-verifier): returns status, result, score, accept_all, MX and SMTP checks, and the pages where the address was seen.
- Hunter (hunter-email-verifier): scores the address from 0 to 100 and lists the checks behind it, such as disposable, webmail, gibberish and SMTP.
- ZeroBounce API (zerobounce-validate): adds a did_you_mean typo suggestion, a free-mailbox flag and the age of the domain.
- Findymail API documentation (findymail-api-verify): returns verified as true or false with the mail provider, and uses one verifier credit on every attempt.
- Any Site API (anysite-api-emails-verify): checks syntax, MX and mailbox, or returns a verdict already on file.

## 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.

## Prompt

Use looot to check whether jane.doe@example.com can receive mail, and tell me if the domain accepts every address. 1. Set up https://looot.ai/skill.md. 2. Search the catalog for each step and check its price before you call. 3. Run the cheapest endpoint that fits. 4. Show the results as a table and the total cost.

## Steps and providers

- Verify the address: icypeas, leadmagic, tomba, hunter, zerobounce, findymail, anysite. 1 call per address.

## What comes back

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

## The request and what comes back

Each run is one POST to /v1/runs with an endpoint id and an input. These are illustrative calls with generic values. The run's result holds the provider's own fields.

- Icypeas: {"endpointId":"icypeas-email-verify","input":{"email":"jane.doe@example.com"},"wait":30}
- LeadMagic: {"endpointId":"leadmagic-email-verify","input":{"email":"jane.doe@example.com"},"wait":30}

## How do I verify an email address with an API?

Send the address to a verification endpoint and read the status. Your agent picks the provider, and each one answers in its own fields. The endpoint's page lists the exact input, which is one email field for every provider on this page.

## What does catch-all mean in a verification result?

The domain accepts mail for any name, so the server cannot confirm that this mailbox exists. A catch-all result is not a pass. Keep those rows in a separate group.

## Can I verify a whole list in one go?

Each call checks one address, and your agent loops over the list. The limit you hit first is your balance. Ask the agent to show the total before it starts a large list.

## Does verification tell me if the person still works there?

No. It checks the mailbox, not the person. An address can be deliverable for someone who left. Pair it with a profile lookup when the job title matters.

## Which fields can I expect back?

Most providers return a status. Some add a catch-all flag, a score from 0 to 100, the mail provider, a typo suggestion or company details. Read the endpoint page before you build on one field.

## How much does one address cost?

You pay per call, and the price depends on the provider your agent picks. This page reads the cheapest live price from the catalog and shows no number when the catalog is unreachable.

## Do I pay when a email verification call fails?

No. A call that fails at the provider costs nothing, and your agent can retry it or send it to another provider.

## Do I need an account with each email verification provider?

No. One looot key reaches every provider in the catalog. You top up once, and each call is billed at the price shown before it runs.

## How do I call email verification from code?

Send a POST to /v1/runs with the endpoint id, the input and a new idempotency key, and your looot token in the Authorization header. With wait set to 30, the answer comes back in the response when the run ends within 30 seconds. Otherwise poll GET /v1/runs/<runId>.

## Can I run email verification on a schedule?

That needs scheduled runs, not available yet. Run it by hand whenever you want fresh results.

## Do I pay while my agent is idle?

No. looot bills per call, and nothing runs while your agent is idle.

## Related pages

- /use-cases/find-professional-emails
- /use-cases/find-phone-numbers
- /use-cases/enrich-a-person

## Last reviewed

2026-10-04. The cost per 1,000 address runs is read live from the catalog on the web page.
