agentsvc.io

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.txt

Only 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.