API Documentation

Email Verification API

Simple, fast, and accurate email verification for your applications

Overview

Email Verifier is an API built to help businesses and developers identify and prevent disposable (temporary) email addresses and domains in real time. By ensuring only legitimate users can register or engage with your platform, Email Verifier safeguards your business from fraud, enhances data integrity, and lowers operational expenses.

What Can Email Verifier Do?

  • Validate Emails & Domains – Instantly verify if an email address or domain is valid, active, and trustworthy.
  • Detect Disposable & Spam Sources – Block temporary, throwaway, or known spam email addresses before they enter your system.
  • Check Domain Reputation – Identify public email providers, relays, and suspicious domains.
  • Real-Time Verification – Get instant results during user registration or form submission.

Why Use Email Verifier?

  • Prevent Platform Abuse – Stop free trial exploitation, reduce spam, and maintain authentic user communities.
  • Improve Data Quality – Ensure your marketing, analytics, and support efforts reach real users, not fake accounts.
  • Reduce Costs – Save resources by preventing fake signups, improve email deliverability, and minimize fraud.
  • Easy Integration – Simple REST API, clear documentation, and straightforward setup make integration fast and developer-friendly.
  • Scalable & Reliable – Built on modern infrastructure for high performance, reliability, and global reach.

Quick Start

Ready to protect your platform and improve your data quality? Follow these steps to get your API key and make your first API call:

Step 1: Create an Account

  1. Visit the Email Verifier Console.
  2. Fill in your details and complete the registration process.

Once you've created your account, you'll be automatically directed to the Email Verifier Console.

Step 2: Access Your API Keys

  1. In the Console, navigate to the left-hand menu and select Getting Started → API Keys.
  2. Copy your API key from the displayed list or generate a new one if required.

⚠️ Important: Keep your API key secure! It grants access to your Email Verifier account and should not be shared publicly.

Authentication

All API requests require authentication using a Bearer token. Include your API key in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Base URL

https://api.getemailverifier.com

API Endpoints

Email Verifier provides two main endpoints for checking emails and domains.

Check Email

Checks if an email address is from a disposable email service. Returns comprehensive analysis including disposable status, role account detection, public domain identification, and alias detection.

POST /v1/email/check

Request Headers

HeaderValueRequired
AuthorizationBearer YOUR_API_KEYYes
Content-Typeapplication/jsonYes

Request Body

ParameterTypeRequiredDescription
valuestringYesThe email address to check

Example Request

curl --request POST \
  --url https://api.getemailverifier.com/v1/email/check \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "value": "user@example.com"
  }'

Response Fields

FieldTypeDescription
timestringTimestamp in ISO 8601 format
successbooleanWhether the request was successful
data.blockbooleanRecommended action: true if email should be blocked
data.disposablebooleanTrue if from a disposable email service
data.validbooleanTrue if email format is valid
data.role_accountbooleanTrue if role account (admin, support, etc.)
data.public_domainbooleanTrue if public provider (Gmail, Yahoo, etc.)
data.aliasbooleanTrue if aliasing detected (Gmail dots, plus addressing)
data.details.inputstringOriginal input provided
data.details.normalizedstring | nullNormalized/canonical form of email
data.details.handlestring | nullNormalized handle/local part (before @)
data.details.domainstring | nullDomain part (after @)
data.warningstring | nullAdditional information or warnings
processing_durationinteger | nullProcessing time in milliseconds
errorobject | nullError information if request failed

Example Response

{
  "time": "2025-12-09T10:01:07.550234Z",
  "success": true,
  "data": {
    "block": false,
    "disposable": false,
    "valid": true,
    "role_account": false,
    "public_domain": true,
    "alias": false,
    "details": {
      "input": "user@example.com",
      "normalized": "user@example.com",
      "handle": "user",
      "domain": "example.com"
    },
    "warning": null
  },
  "processing_duration": 7,
  "error": null
}

Check Domain

Checks if a domain is from a disposable email service. Returns disposable status and public domain identification.

POST /v1/domain/check

Request Body

ParameterTypeRequiredDescription
valuestringYesThe domain name to check

Example Request

curl --request POST \
  --url https://api.getemailverifier.com/v1/domain/check \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "value": "example.com"
  }'

Example Response

The response structure is identical to the email check endpoint. For domain checks, the normalized and handle fields in details will be null.

{
  "time": "2025-12-09T10:01:07.550234Z",
  "success": true,
  "data": {
    "block": false,
    "disposable": false,
    "valid": true,
    "role_account": false,
    "public_domain": false,
    "alias": false,
    "details": {
      "input": "example.com",
      "normalized": null,
      "handle": null,
      "domain": "example.com"
    },
    "warning": null
  },
  "processing_duration": 5,
  "error": null
}

Error Responses

The API uses standard HTTP status codes to indicate success or failure. All error responses include an error object with a code and description.

400 Bad Request

Invalid request - value must be provided and valid.

{
  "time": "2025-12-09T10:01:07.550234Z",
  "success": false,
  "data": null,
  "processing_duration": null,
  "error": {
    "code": "BAD_REQUEST",
    "description": "Invalid request - email must be provided and valid"
  }
}

401 Unauthorized

Missing or invalid API key authentication.

{
  "time": "2025-12-09T10:01:07.550234Z",
  "success": false,
  "data": null,
  "processing_duration": null,
  "error": {
    "code": "UNAUTHORIZED",
    "description": "Missing or invalid API key authentication"
  }
}

429 Too Many Requests

Rate limit exceeded. Please try again later.

{
  "time": "2025-12-09T10:01:07.550234Z",
  "success": false,
  "data": null,
  "processing_duration": null,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "description": "Rate limit exceeded. Please try again later."
  }
}

500 Internal Server Error

Internal server error occurred during processing.

{
  "time": "2025-12-09T10:01:07.550234Z",
  "success": false,
  "data": null,
  "processing_duration": null,
  "error": {
    "code": "INTERNAL_ERROR",
    "description": "Internal server error occurred"
  }
}

Code Examples

Here are examples of how to use the Email Verifier API in different programming languages.

JavaScript / Node.js

const response = await fetch('https://api.getemailverifier.com/v1/email/check', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    value: 'user@example.com'
  })
});

const data = await response.json();
console.log(data);

Python

import requests

url = "https://api.getemailverifier.com/v1/email/check"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
}
data = {
    "value": "user@example.com"
}

response = requests.post(url, headers=headers, json=data)
print(response.json())

PHP

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.getemailverifier.com/v1/email/check",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer YOUR_API_KEY",
    "Content-Type: application/json"
  ],
  CURLOPT_POSTFIELDS => json_encode([
    "value" => "user@example.com"
  ])
]);

$response = curl_exec($curl);
curl_close($curl);

$data = json_decode($response, true);
print_r($data);

Go

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    url := "https://api.getemailverifier.com/v1/email/check"

    payload := map[string]string{
        "value": "user@example.com",
    }
    jsonData, _ := json.Marshal(payload)

    req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
    req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}

Support

Need help? We're here to assist you.