submit_batch
Submit a list of emails (up to 4096 per call) for bulk verification. Billed per unique valid address, and governed by the plan's batch_max (see get_pricing); omitting checks runs every check the plan allows, SMTP included. Pass api_key to bill and scope this batch against that pm_live_/pm_test_ key's own account instead of the caller's session account; omit it to use the caller's own session account. Requires the email:verify:bulk scope on whichever account ends up authenticating the call. Returns a batch_uuid; poll it with get_batch or get_batch_results. Set final false to keep intake open, then feed further chunks with append_batch_emails.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| final | No | Whether this is the batch's only or final chunk (defaults to true). Set false to keep intake open, then feed further chunks with append_batch_emails. | |
| checks | No | Optional check wire strings (syntax, mx, smtp, disposable, role, free, catchall); defaults to every check the caller's plan allows, smtp included. A check outside the plan is refused. | |
| emails | Yes | Email addresses to verify (up to 4096). Billed per unique valid address and governed by the caller's plan batch_max (see get_pricing). A batch closed by this call (final: true, the default) needs at least batch_min (20) distinct valid addresses; verify fewer with verify_email. | |
| api_key | No | Optional pm_live_ (or pm_test_) API key. When present, this batch is billed and scoped against that key's own account instead of the caller's session account, and the key must carry the email:verify:bulk scope. Omit to use the caller's own session account. | |
| custom_ids | No | Optional per-email client references, index-aligned 1:1 with emails. Echoed back verbatim in get_batch_results so you can map each result to your input row. Do not put the email address or any PII here, use your own row identifier (e.g. a CRM id). |