Instantly Detect Disposable Emails

A simple, lightweight, and free API to prevent spam, fake sign-ups, and abuse by blocking temporary email addresses.

Validating...

                        
Enter an email address to see the API response

Why Use This API?

Disposable Domain Check

Validates against a comprehensive list of known disposable email domains to prevent fake registrations.

Simple JSON Response

Clear, concise, and easy-to-parse responses that integrate seamlessly into your application.

Lightweight & Fast

Built for high performance with minimal latency to keep your applications running smoothly.

Completely Free

Free to use with a generous rate limit, perfect for both development and production environments.

API Documentation

Endpoint

POST https://email-validator-api-uk66.onrender.com/v1/verify

Code Examples

curl -X POST \
  https://email-validator-api-uk66.onrender.com/v1/verify \
  -H "Content-Type: application/json" \
  -d '{"email": "test@mailinator.com"}'
async function validateEmail(emailAddress) {
  const url = 'https://email-validator-api-uk66.onrender.com/v1/verify';
  const options = {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ email: emailAddress })
  };

  try {
    const response = await fetch(url, options);
    const data = await response.json();
    console.log(data);
    return data;
  } catch (error) {
    console.error('Error:', error);
  }
}
import requests
import json

url = "https://email-validator-api-uk66.onrender.com/v1/verify"

payload = json.dumps({
  "email": "test@mailinator.com"
})

headers = {
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.json())
<?php

$curl = curl_init();
$payload = json_encode(['email' => 'test@mailinator.com']);

curl_setopt_array($curl, [
  CURLOPT_URL => 'https://email-validator-api-uk66.onrender.com/v1/verify',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => $payload,
  CURLOPT_HTTPHEADER => [
    'Content-Type: application/json'
  ],
]);

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

echo $response;
require 'uri'
require 'net/http'
require 'json'

url = URI("https://email-validator-api-uk66.onrender.com/v1/verify")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = JSON.dump({ "email" => "test@mailinator.com" })

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io/ioutil"
)

func main() {
	url := "https://email-validator-api-uk66.onrender.com/v1/verify"
	method := "POST"

	payload := strings.NewReader(`{"email": "test@mailinator.com"}`)

	client := &http.Client {}
	req, _ := http.NewRequest(method, url, payload)
	req.Header.Add("Content-Type", "application/json")

	res, _ := client.Do(req)
	defer res.Body.Close()

	body, _ := ioutil.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class ApiClient {
    public static void main(String[] args) throws Exception {
        var client = HttpClient.newHttpClient();
        String jsonPayload = "{\"email\": \"test@mailinator.com\"}";

        var request = HttpRequest.newBuilder()
            .uri(URI.create("https://email-validator-api-uk66.onrender.com/v1/verify"))
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
            .build();

        HttpResponse response = client.send(request, 
            HttpResponse.BodyHandlers.ofString());

        System.out.println(response.body());
    }
}
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        using (var client = new HttpClient())
        {
            var jsonPayload = "{\"email\": \"test@mailinator.com\"}";
            var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");

            var response = await client.PostAsync(
                "https://email-validator-api-uk66.onrender.com/v1/verify", 
                content
            );

            string responseString = await response.Content.ReadAsStringAsync();
            Console.WriteLine(responseString);
        }
    }
}

Request Body

The request body must be in JSON format:

{
    "email": "test@example.com"
}

Response Payloads

✅ Valid Domain (200 OK)

{
    "status": "valid",
    "message": "Email domain appears to be valid.",
    "email": "hello@gmail.com",
    "domain": "gmail.com",
    "is_disposable": false
}

❌ Disposable Domain (200 OK)

{
    "status": "invalid",
    "message": "Disposable or temporary email domain found.",
    "email": "test@mailinator.com",
    "domain": "mailinator.com",
    "is_disposable": true
}

⚠️ Bad Request (400)

{
    "status": "error",
    "message": "Invalid input. Please provide an email in the request body."
}

⏱️ Rate Limit Exceeded (429)

{
    "status": "error",
    "message": "Too many requests. Please try again after 24 hours."
}

About

Built with Node.js and Express.js, hosted on Render for reliable performance and uptime.

Developed with ❤ by Elvish Patel

View on GitHub