Docs/Quick Start

Quick Start

Get from zero to verified email in under 5 minutes.

1. Create your account

Sign up at verimails.com/register — no credit card required. You'll get 25 free verifications per day immediately.

2. Get your API key

After signing in, go to your Dashboard and copy your API key. It looks like:

text
ev_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
â„šī¸
Keep your API key secret. Never expose it in client-side code or public repositories.

3. Make your first request

Send a POST request to /api/verify/single with an email address:

bash
curl -X POST https://verimails.com/api/verify/single \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email": "user@example.com"}'
python
import requests

response = requests.post(
    "https://verimails.com/api/verify/single",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
    },
    json={"email": "user@example.com"}
)

data = response.json()
print(data["status"])         # valid
print(data["safe_to_send"])  # True
javascript
const response = await fetch("https://verimails.com/api/verify/single", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({ email: "user@example.com" })
});

const data = await response.json();
console.log(data.status);        // valid
console.log(data.safe_to_send);  // true
php
$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => "https://verimails.com/api/verify/single",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer YOUR_API_KEY",
        "Content-Type: application/json"
    ],
    CURLOPT_POSTFIELDS => json_encode(["email" => "user@example.com"])
]);

$response = json_decode(curl_exec($ch), true);
echo $response["status"];        // valid
echo $response["safe_to_send"];  // 1

4. Understand the response

A successful response looks like this:

json
{
  "email": "user@example.com",
  "status": "valid",
  "safe_to_send": true,
  "details": {
    "mx_found": true,
    "smtp_check": true,
    "is_catchall": false,
    "catchall_score": null,
    "is_disposable": false,
    "is_role_account": false,
    "is_free_provider": true
  }
}

The most important fields are status and safe_to_send. Use safe_to_send: true as your primary filter for deciding whether to contact an address.

Next steps