Guide · email verification
Verify email addresses from your AI agent
Before your agent sends outreach, imports a lead list or accepts a sign-up, check that the address really exists. email-verify asks the receiving mail server whether the mailbox exists (an SMTP check, no email is sent) on top of syntax, MX, disposable and role checks. $0.0025 per address.
What you get
deliverable: the mailbox exists.undeliverable: the mailbox does not exist; remove the address.catch_all: the domain accepts every address, so the mailbox cannot be confirmed.risky: disposable address or full mailbox.unknown: the server refused the check or uses greylisting; try again later.
Try it free
curl -X POST https://agentsvc.io/api/v1/try/email-verify -H "Content-Type: application/json" -d '{}'JavaScript
npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.EVM_PRIVATE_KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://agentsvc.io/api/v1/proxy/email-verify", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ email: "jane@example.com" }),
});
console.log(await res.json());Python
pip install "x402[httpx]" eth_account
from eth_account import Account
from x402 import x402Client
from x402.http.clients import x402HttpxClient
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client
client = x402Client()
register_exact_evm_client(client, EthAccountSigner(Account.from_key(PRIVATE_KEY)))
async with x402HttpxClient(client) as http:
r = await http.post("https://agentsvc.io/api/v1/proxy/email-verify", json={"email": "jane@example.com"})
await r.aread()
print(r.json())Cleaning a list
Send one call per address. Results are cached for 6 hours, so a repeated address answers instantly. With a credit token a list runs without signing a payment for each call:
while read email; do
curl -s -X POST https://agentsvc.io/api/v1/proxy/email-verify \
-H "Authorization: Bearer asvc_cr_..." -H "Content-Type: application/json" \
-d "{\"email\":\"$email\"}" | jq -r '[.data.email, .data.status] | @tsv'
done < leads.txtOnly need syntax, MX and disposable checks without asking the mail server? email-validate costs $0.0035.
Paying
No account and no API key. Two ways to pay, both only for calls that succeed:
- Wallet (x402): a separate wallet with a few dollars of USDC on Base, Solana, Polygon or Arbitrum. The x402 client pays the price from the 402 answer and retries; you pay no gas.
- Credit token: buy one at /credits from $0.10 (card or USDC, +10% bonus) and send it as
Authorization: Bearer. Good for a script that runs through a long list.
Details for every client, MCP and frameworks: docs, LangChain, Vercel AI SDK.