Email Tools API

Email Tools Verify API

Verify an email address for deliverability: a status verdict (good, risky, or bad) with domain, mailbox, catch-all, disposable, and role signals plus a confidence score. Malformed addresses are rejected by the input schema with no charge; every syntactically valid address returns a billed verdict, including undeliverable ones.

POST/v1/run/email.verify
Uptime
99.88%
30d · 1,621 calls
Requests
1,623
30d · weekly, last 12 wks
Response
5.3s
median · 30d

Try it

Make your first request

requireFieldsarray
Optional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `reason`, and it is served only by a source that returns every one of them. Fields you do not name are still returned whenever the serving source has them. This can raise your price: when the cheapest source cannot return a named field, a dearer source serves, and you are quoted and charged its price. A named field can still be absent on a result that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge.
Open in
Get a free key
Sample response
Free runs return only the first 3 results. Fund a key to get the full response.
{
  "data": {
    "items": [
      {
        "catchAll": true,
        "disposable": true,
        "domain": "example.com",
        "email": "alex@example.com",
        "free": true,
        "reason": "example",
        "role": true,
        "score": 5,
        "status": "active"
      }
    ]
  },
  "found": true
}
Response interface
interface EmailVerifyResponse {
  data: {
    items: {
      catchAll?: boolean;
      disposable?: boolean;
      domain?: string;
      email: string;
      free?: boolean;
      reason?: string;
      role?: boolean;
      score?: number;
      status: string;
    }[];
  } | null;
  found: boolean;
}

Full parameter and response reference - every field, type, and example for this endpoint.

Reference

Request, response, and price

Last verified 2026-09-16 · uptime and latency measured over 30d
POST /v1/run/email.verify
curl -X POST https://api.getanyapi.com/v1/run/email.verify \
  -H "Authorization: Bearer $ANYAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email":"patrick@stripe.com"}'
FieldTypeExample value
Request body
emailstring"patrick@stripe.com"The email address to verify (e.g. jane.doe@acme.com). Exactly one @, a dotted domain, no whitespace or angle brackets. Addresses on reserved, never-deliverable TLDs (.invalid, .test, .example, .localhost, .local, .internal, .blink) and HTML/JSON escape artifacts (a u003e prefix) are rejected locally with no charge.
requireFieldsarrayOptional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `reason`, and it is served only by a source that returns every one of them. Fields you do not name are still returned whenever the serving source has them. This can raise your price: when the cheapest source cannot return a named field, a dearer source serves, and you are quoted and charged its price. A named field can still be absent on a result that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge.
Response
dataobject
data.itemsobject[]Verification records: the email address with its deliverability verdict and the domain, mailbox, and reputation signals behind it. A record is returned for every syntactically valid address, including ones the verdict marks undeliverable. Populated whenever the provider has data for the entity.
data.items[].catchAllcan requirebooleanDomain accepts all addresses.
data.items[].disposablecan requireboolean
data.items[].domaincan requirestring
data.items[].emailstringPopulated whenever the provider has data for the entity.
data.items[].freecan requirebooleanFree email provider.
data.items[].reasoncan requirestringWhy the verdict was reached. Published by only one of the two sources, so it is absent on most calls; never treat it as required.
data.items[].rolecan requirebooleanRole-based address (e.g. info@).
data.items[].scorecan requireintegerConfidence in the verdict, 0-100. Coarse rather than graded on most calls: it tracks the status rather than ranking addresses within one.
data.items[].statusstringDeliverability verdict: good (the mailbox accepted), bad (it was refused), or risky (no source could settle it - usually a catch-all domain that accepts every address, sometimes a receiving server that declined to answer at all). Populated whenever the provider has data for the entity.
foundboolean
Price
Price per requestUSD$0.0066
Price /1k reqUSD$6.60

FAQ

About the Email Tools Verify API

The AnyAPI Email Tools Verify API returns Email Tools verify data as normalized JSON from one POST call to /v1/run/email.verify. Verify an email address for deliverability: a status verdict (good, risky, or bad) with domain, mailbox, catch-all, disposable, and role signals plus a confidence score. Malformed addresses are rejected by the input schema with no charge; every syntactically valid address returns a billed verdict, including undeliverable ones. AnyAPI routes each request across 2 sources and falls back automatically when one fails. It costs from $6.60 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 99.9% of Email Tools verify calls through AnyAPI succeeded, with a median response time of 5.3 seconds across 1,621 measured calls.

It costs from $6.60 per 1,000 requests, in US dollars with no subscription and no monthly minimum. You fund one USD wallet, each call draws it down, and a failed request costs $0.

Verify an email address for deliverability: a status verdict (good, risky, or bad) with domain, mailbox, catch-all, disposable, and role signals plus a confidence score. Malformed addresses are rejected by the input schema with no charge; every syntactically valid address returns a billed verdict, including undeliverable ones. The response is normalized JSON with the same envelope every AnyAPI endpoint returns, so parsing a second endpoint is a change of URL and nothing else.

Over the last 30 days, 99.9% of Email Tools verify calls through AnyAPI succeeded, with a median response time of 5.3 seconds across 1,621 measured calls. These are AnyAPI's own measurements of traffic through the gateway, recomputed continuously, not a published service-level target.
More to call

Other Email Tools endpoints