Esigil Logo

Esigil API

v0.1

Complete reference for the Esigil REST API. Authenticate with an API key, call the endpoints below, and receive fast, real-time verification results. Examples include cURL, JavaScript (fetch), and Python.

Secure & Reliable
99% uptime and encrypted requests.
Lightning Fast
Average response time under 900ms.
Global Coverage
Validate addresses from any domain worldwide.
Real-time Results
Get instant verification with detailed insights.
Base URL
All requests use this base endpoint
https://api.esigil.comUse HTTPS and include your API key in Authorization header.
GET

/verify

Verify a single email address (format, MX, mailbox existence, temp mail, risk).
https://api.esigil.com/verify?email=user@example.com

Headers

Authorization — Bearer token
Example Authorization: Bearer evk_live_1234567890abcdef

Query Parameters

  • email (required) — the email address to verify (e.g. user@example.com).
cURL
curl -X GET "https://api.esigil.com/verify?email=user@example.com" \
  -H "Authorization: Bearer YOUR_API_KEY"
JavaScript (fetch)
fetch("https://api.esigil.com/verify?email=user@example.com", {
  headers: { "Authorization": "Bearer YOUR_API_KEY" }
}).then(r => r.json()).then(console.log)
Python (requests)
import requests
r = requests.get("https://api.esigil.com/verify", params={"email":"user@example.com"},
                 headers={"Authorization":"Bearer YOUR_API_KEY"})
print(r.json())

Responses

200 — Successful verification
{
  "success": true,
  "data": {
    "email": "user@example.com",
    "valid": true,
    "valid_format": true,
    "valid_mx": true,
    "mailbox_exists": true,
    "is_catch_all": false,
    "is_risky": false,
    "is_temp": false,
    "host": "gmail-smtp-in.l.google.com",
    "mx_records": [
      "gmail-smtp-in.l.google.com",
      "alt1.gmail-smtp-in.l.google.com"
    ]
  }
}
400 — Bad request
{
  "success": false,
  "error": {
    "code": "INVALID_INPUT",
    "message": "Missing required fields"
  }
}
401 — Unauthorized
{
  "success": false,
  "error": {
    "code": "INVALID_API_KEY",
    "message": "Invalid API key provided"
  }
}
402 — Insufficient credits
{
  "success": false,
  "error": {
    "code": "INSUFFICIENT_BALANCE",
    "message": "You do not have enough balance to perform this action."
  }
}
500 — Server error
{
  "success": false,
  "error": {
    "code": "INTERNAL_ERROR",
    "message": "Unexpected server error"
  }
}
GET

/balance

Retrieve remaining credit balance for your account.
https://api.esigil.com/balance

Headers

Authorization: Bearer token (your API key)
cURL
curl -X GET "https://api.esigil.com/balance" \
  -H "Authorization: Bearer YOUR_API_KEY"
JavaScript (fetch)
fetch("https://api.esigil.com/balance", {
  headers: { "Authorization": "Bearer YOUR_API_KEY" }
}).then(r => r.json()).then(console.log)
Python (requests)
import requests
r = requests.get("https://api.esigil.com/balance", headers={"Authorization":"Bearer YOUR_API_KEY"})
print(r.json())

Responses

200 — Success
{
  "success": true,
  "data": {
    "availableCredits": 98
  }
}
401 — Unauthorized
{
  "success": false,
  "error": {
    "code": "INVALID_API_KEY",
    "message": "Invalid API key provided"
  }
}
404 — Not found
{
  "success": false,
  "error": {
    "code": "NOT_FOUND",
    "message": "User balance not found"
  }
}
500 — Server error
{
  "success": false,
  "error": {
    "code": "INTERNAL_ERROR",
    "message": "Unexpected server error"
  }
}

Notes: Authenticate every request with your live API key in the Authorization header. Keep your keys secret. For client-side use, route requests through your server.