> ## Documentation Index
> Fetch the complete documentation index at: https://docs.waterfall.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Verify email addresses before outreach

> Check business and personal email addresses with Waterfall Email Verifier and use valid, invalid, risky, or unknown results in your sending rules.

Check the email addresses you already have before adding them to an outreach workflow. Waterfall Email Verifier returns a deliverability status for a business or personal email in a single request.

Use it when importing a contact list, reviewing signup addresses, or checking an address before sending. Your application decides which statuses to accept, hold, or suppress.

## Verify one address

This request uses an illustrative email and contact ID:

```bash theme={null}
curl --request POST 'https://api.waterfall.io/v1/verify/email' \
  --header "x-api-key: $WATERFALL_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
    "email": "jordan.lee@example.com",
    "custom_fields": {
      "crm_contact_id": "contact_582"
    }
  }'
```

The verification result is returned immediately. Read `output.email.email_status`; you do not need to poll a Finder endpoint.

## Choose what happens next

| Verification result | How to use it |
| - | - |
| `valid` | The address passed verification. Apply your normal sending rules. |
| `invalid` | Suppress the address from the send. |
| `risky` | Review or hold the address according to your risk policy. |
| `unknown` | Keep the outcome unresolved; a later check may return a result. `unknown` results are not billed. |

The top-level job `status: SUCCEEDED` means the verification request completed. It does not mean the address is valid: a completed check can return any of the four email statuses.

Keep the verification result alongside the address and the time your application checked it. Verification is a point-in-time signal, and an address can become unusable later.

## Can I verify a whole list?

The endpoint accepts one email per request. Your integration can process a list through individual calls within the [rate limits](https://docs.waterfall.io/v1/rate-limit.md), then separate valid addresses from the records that need attention. Use `custom_fields` to keep each result linked to its source record.

## Does verification find a person's email or guarantee delivery?

Verification checks an address you provide. To find an address for a person, use [Contact Enrichment](https://docs.waterfall.io/v1/contact-enrichment-launcher.md). To find contacts at a target company, use [Prospector](https://docs.waterfall.io/v1/prospector-launcher.md).

A valid result does not guarantee delivery or inbox placement. Sender reputation and the receiving system also affect what happens when you send.

## Are verification statuses the same across all APIs?

Email Verifier uses `valid`, `invalid`, `risky`, and `unknown`. Person records from other APIs use a different `email_verified_status` set, which includes `safe` and `provider_error`. Read the status field for the endpoint you called instead of sharing one enum across both workflows.

[Open the Email Verifier reference](https://docs.waterfall.io/v1/email-verifier.md) or [review usage costs](https://docs.waterfall.io/v1/inline-usage.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.