Batch verification
CSV upload format
How to shape a list for batch verification — columns, encoding, limits, and the results file you get back.
Input columns
One required column, three optional. Header row required (case-insensitive).
| Column | Required | Notes |
|---|---|---|
| RFC 5322 valid; max 320 chars. | ||
| first_name | — | Echoed back in results for join. |
| last_name | — | Same. |
| custom_id | — | Your row identifier — passed through untouched. |
Encoding + delimiter
- UTF-8 or UTF-8 with BOM.
- Comma delimiter (RFC 4180). We do NOT auto-detect semicolons — convert first.
- Quoted fields for values containing commas or newlines.
- Unix (LF) or Windows (CRLF) line endings both fine.
Limits
- Rows per file: 100,000. Larger lists — split, or use the streaming API.
- File size: 50 MB uncompressed.
- Duplicates: silently deduplicated within a single upload (we don't charge you twice).
Output columns
The results CSV keeps every input column and appends:
| Column | Values |
|---|---|
| status | valid · invalid · catchall · disposable · role · unknown |
| score | 0–100 integer |
| checks_json | JSON blob with syntax, mx, spf, dmarc, smtp, role, disposable, catch_all |
| probed_at | ISO 8601 UTC |
| receipt_kid | Ed25519 key id used (e.g., v1) |
| receipt_sig | base64url signature over the canonical row |
Sample
email,first_name,last_name,custom_id
[email protected],Sarah,Chen,C-101
[email protected],Mike,Ross,C-102
[email protected],,,C-103