API Documentation

Base URL: https://www.emailverify.se/api/v1

All responses are JSON. All endpoints require an API key. Create an account →

Authentication

Pass your API key in the X-Api-Key header, or as the api_key query/body parameter.

X-Api-Key: ev_your_api_key_here

# OR as query param
GET /api/v1/[email protected]&api_key=ev_your_api_key

Verify Single Email

GET POST /api/v1/verify

Verify a single email address. Costs 1 credit.

Parameters
ParamTypeRequiredDescription
emailstring✓ YesThe email address to verify
smtpbooleanNoEnable SMTP mailbox probe (slower, default: false)
# cURL example
curl "https://www.emailverify.se/api/v1/[email protected]" \
  -H "X-Api-Key: ev_your_api_key"

# With SMTP check
curl "https://www.emailverify.se/api/v1/[email protected]&smtp=true" \
  -H "X-Api-Key: ev_your_api_key"
Response
{
  "success":     true,
  "email":       "[email protected]",
  "result":      "valid",       // valid | invalid | risky | unknown
  "score":       87,            // 0-100 confidence score
  "syntax_ok":   true,
  "mx_found":    true,
  "smtp_ok":     false,         // false if smtp=true not set
  "disposable":  false,
  "catch_all":   false,
  "free_email":  false,
  "role_based":  false,
  "domain":      "example.com",
  "suggestion":  null,          // typo suggestion e.g. "gmail.com"
  "reason":      null,          // reason if invalid
  "duration_ms": 142,
  "credits_remaining": 99
}

Verify Bulk Emails

POST /api/v1/verify/bulk

Verify up to 1,000 emails per request. Costs 1 credit per email.

curl -X POST "https://www.emailverify.se/api/v1/verify/bulk" \
  -H "X-Api-Key: ev_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "emails": ["[email protected]", "[email protected]", "bad@fake"],
    "smtp": false
  }'
Response
{
  "success":           true,
  "total":             3,
  "valid":             2,
  "invalid":           1,
  "risky":             0,
  "credits_used":      3,
  "credits_remaining": 97,
  "results": [
    { "email":"[email protected]", "result":"valid",   "score":90, ... },
    { "email":"[email protected]", "result":"valid",   "score":85, ... },
    { "email":"bad@fake",        "result":"invalid", "score":0,  ... }
  ]
}

Check Usage

GET /api/v1/usage
curl "https://www.emailverify.se/api/v1/usage" \
  -H "X-Api-Key: ev_your_api_key"

// Response
{
  "success":       true,
  "plan":          "starter",
  "plan_name":     "Starter",
  "credits":       9847,
  "credits_used":  153,
  "credits_total": 10000,
  "reset_at":      "2025-02-01 00:00:00"
}

Response Fields

FieldTypeDescription
resultstringvalid | invalid | risky | unknown
scoreint0–100 confidence. ≥70 = valid, 40–69 = risky, <40 = invalid
syntax_okboolPasses RFC 5321 syntax check
mx_foundboolDomain has MX DNS record
smtp_okboolMailbox responded to SMTP probe (only if smtp=true)
disposableboolMatches known throwaway domain list
catch_allboolDomain accepts all addresses (reduces deliverability confidence)
free_emailboolFrom a free provider (Gmail, Yahoo, etc.)
role_basedboolRole address (info@, admin@, support@, etc.)
suggestionstring|nullPossible typo correction (e.g. "gmail.com")
duration_msintTime taken for this verification in milliseconds

Error Codes

HTTPCodeDescription
401missing_keyNo API key provided
401invalid_keyAPI key is invalid or revoked
402no_creditsInsufficient credits
422missing_paramRequired parameter missing
429rate_limitToo many requests

Rate Limits

EndpointLimit
Single verify60 req/min per key
Bulk verify5 req/min per key

Rate limit headers are returned on every response: X-RateLimit-Limit, X-RateLimit-Remaining.

Code Examples

PHP
<?php
$apiKey = 'ev_your_api_key';
$email  = '[email protected]';

$ch = curl_init("https://www.emailverify.se/api/v1/verify?email=" . urlencode($email));
curl_setopt_array($ch, [
    CURLOPT_HTTPHEADER     => ["X-Api-Key: $apiKey"],
    CURLOPT_RETURNTRANSFER => true,
]);
$result = json_decode(curl_exec($ch), true);
curl_close($ch);

echo $result['result'];  // valid | invalid | risky
Python
import requests

api_key = 'ev_your_api_key'
resp = requests.get(
    'https://www.emailverify.se/api/v1/verify',
    params={'email': '[email protected]'},
    headers={'X-Api-Key': api_key}
)
data = resp.json()
print(data['result'], data['score'])
Node.js
const res = await fetch('https://www.emailverify.se/api/v1/[email protected]', {
  headers: { 'X-Api-Key': 'ev_your_api_key' }
});
const data = await res.json();
console.log(data.result, data.score);
JavaScript (Bulk)
const res = await fetch('https://www.emailverify.se/api/v1/verify/bulk', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'ev_your_api_key',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    emails: ['[email protected]', '[email protected]', '[email protected]']
  })
});
const { results } = await res.json();
results.forEach(r => console.log(r.email, r.result));