Quickstart

Verify your first email address in under five minutes.

On this page

Prerequisites

You need an API key. Keys start with ev_. To test without spending credits, use a ev_test_ key — see Test mode.

Verify with curl

curl -X POST https://api.emailvalidator.ai/api/v1/verify \
  -H "X-Api-Key: ev_your_key" \
  -H "Content-Type: application/json" \
  -d '{"email": "alice@example.com", "timeout": 15}'

A successful response:

{
  "object": "verification",
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "created_at": "2025-06-10T14:02:09.180Z",
  "livemode": true,
  "status": "complete",
  "email": "alice@example.com",
  "result": {
    "outcome": "deliverable",
    "sub_status": "",
    "risk": "none",
    "free_email": false,
    "account": "alice",
    "domain": "example.com",
    "details": {
      "role": false,
      "disposable": false,
      "catch_all": false,
      "mx_found": true,
      "mx_record": "aspmx.l.google.com",
      "smtp_provider": "Google",
      "smtp_code": 250
    }
  },
  "recovery": null,
  "completed_at": "2025-06-10T14:02:11.432Z",
  "credits_remaining": 4819
}

status is the lifecycle (pending or complete); the verdict is result.outcome. Keep the id — or don't: GET /api/v1/verify lists your verifications, in-flight ones included.

Verify with JavaScript

const response = await fetch('https://api.emailvalidator.ai/api/v1/verify', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'ev_your_key',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ email: 'alice@example.com', timeout: 15 }),
});

const result = await response.json();
console.log(result.status); // "deliverable"

What happens next?

  • If validation completes within the timeout, you get 200 OK with the full result.
  • If the timeout elapses before validation finishes, you get 202 Accepted with a result_url you can poll. See Verify single address.
  • To validate a list, upload a CSV instead. See Verify batch.