agentic-verify is an open-source email verification adapter for Node.js applications and AI agents, with local syntax checks, MillionVerifier, and ZeroBounce.
npm install agentic-verifyRequires Node.js 18 or later. Includes TypeScript declarations and three direct runtime dependencies.
import { verifyEmail } from "agentic-verify";
const result = await verifyEmail("ada@example.com");
console.log(result.adapter, result.verdict, result.raw);Expect local valid { mode: 'syntax' }. No API key is required.
This result confirms syntax only; it does not confirm a mailbox exists.
- Check one address with
verifyEmail, or a list sequentially withverifyEmails. - Preview checks with
{ dryRun: true }; previews call no adapter and record no cost. - Return
valid,invalid,risky, orunknownverdicts.
| Adapter | Status | Credentials |
|---|---|---|
| Local | Implemented: syntax only | None |
| MillionVerifier | Implemented: HTTP API | MILLIONVERIFIER_API_KEY |
| ZeroBounce | Implemented: HTTP API | ZEROBOUNCE_API_KEY |
The registry contains three adapters. Vendor paths have mocked tests; this rewrite includes no live credential checks.
Export keys in your shell, or pass apiKey to an adapter constructor. The package does not load .env files.
export MILLIONVERIFIER_API_KEY="your key"
npx agentic-verify verify --email "ada@example.com" --adapter millionverifier --dry-run
npx agentic-verify verify --email "ada@example.com" --adapter millionverifierThe CLI supports verify --email, verify --file, costs, and mcp, plus --help and --version.
Files contain one address per line; blank lines are skipped.
The Model Context Protocol (MCP) server exposes two tools: verify_email and get_cost_report.
Start it with npx agentic-verify mcp or agentic-verify-mcp.
The source includes a Worker you deploy, with GET /health and POST /verify routes.
Local checks perform no DNS or mailbox lookup. Vendor verdicts do not guarantee delivery.
Vendor requests default to a 15-second HTTP timeout and have no automatic retries.
A failed batch stops at the first thrown error. Invalid verdicts still return normally.
Each completed check records one usage unit, including local checks; units are not vendor prices.
Costs live in the current process. A separate costs invocation cannot read a previous command's usage.
Version 0.1.0 APIs can change. Public case studies are not yet published.
Run npm run build, npm run typecheck, and npm test before contributing.
MIT.