Checks syntax and deliverability signals for one address. Permission: `emails`.

A rejected address is still HTTP 200 with `{ "valid": false, "error", "code" }`. Transport / auth failures use `{ name, message, statusCode }`.

## Body Parameters

| Name | Type | Description |
| ---- | ---- | ----------- |
| `email` | string | **Required.** Address to check. |

## Response Fields

Valid:

| Field | Type | Description |
| ----- | ---- | ----------- |
| `valid` | `true` | Address passed checks. |
| `warnings` | string[] | Soft warnings when present. |

Invalid (`valid: false`, still 200):

| Field | Type | Description |
| ----- | ---- | ----------- |
| `valid` | `false` | Address failed checks. |
| `error` | string | Human-readable reason. |
| `code` | string | `invalid_format`, `disposable_email`, `spam_domain`, `invalid_domain`, `test_email`, or `internal_error`. |
| `suggestion` | string | Suggested correction when present. |
| `warnings` | string[] | Extra signals when present. |

## Errors

| Status | `name` | When |
| ------ | ------ | ---- |
| 401 | `missing_api_key` | Missing or invalid bearer token |
| 403 | `missing_permission` | Token lacks the `emails` permission |
| 422 | `validation_error` | Missing `email` |

## Related

- [Send Email](/docs/api-reference/v2/emails-send)
- [SDK: lumail.emails.verify](/docs/sdk/v2/emails-verify)


## API Reference
**Method:** POST
**Endpoint:** /api/v2/emails/verify

### SDK
```ts
import { Lumail } from "lumail";

const lumail = new Lumail({ apiKey: process.env.LUMAIL_API_KEY });
const { data, error } = await lumail.emails.verify({
  email: "user@example.com",
});
if (error) {
  throw error;
}
console.log(data.valid);
```

### cURL
```bash
curl -X POST https://lumail.io/api/v2/emails/verify \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"email":"user@example.com"}'
```

### JavaScript
```javascript
const response = await fetch("https://lumail.io/api/v2/emails/verify", {
  method: "POST",
  headers: {
    Authorization: "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ email: "user@example.com" }),
});
const data = await response.json();
```

### Success Response
```json
{
  "valid": true
}
```

### Error Response
```json
{
  "name": "validation_error",
  "message": "Email is required",
  "statusCode": 422
}
```
