Instantly Detect Disposable Emails
A simple, lightweight, and free API to prevent spam, fake sign-ups, and abuse by blocking temporary email addresses.
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
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