API Documentation

Simple REST API to detect disposable emails. 100 free requests/day.

Endpoint

GET /check

Base URLs

Choose the endpoint closest to your users for lowest latency:

RegionBase URLBest For
🇪🇺 Europe https://tempmailchecker.com EU, Africa, Middle East
🇺🇸 United States https://us.tempmailchecker.com Americas
🇸🇬 Asia https://asia.tempmailchecker.com Asia-Pacific, Australia, Japan

All endpoints share the same API key and database. Use any interchangeably.

Authentication

Include your API key in the request header:

X-API-Key: your_api_key

Get your free API key on the homepage.

Parameters

ParameterTypeDescription
email string Full email address to check
domain string Or just the domain (alternative)

Use either email or domain. The domain is extracted automatically from emails.

Response

Disposable Email

{ "temp": true }

Legitimate Email

{ "temp": false }

Code Examples

cURL
Python
JavaScript
PHP
curl "https://tempmailchecker.com/check?email=user@tempmail.com" \
  -H "X-API-Key: YOUR_API_KEY"
import requests

resp = requests.get(
    "https://tempmailchecker.com/check",
    params={"email": "user@tempmail.com"},
    headers={"X-API-Key": "YOUR_API_KEY"}
)

if resp.json()["temp"]:
    print("Blocked: disposable email")
const resp = await fetch(
  "https://tempmailchecker.com/check?email=user@tempmail.com",
  { headers: { "X-API-Key": "YOUR_API_KEY" } }
);

const { temp } = await resp.json();

if (temp) console.log("Blocked");
$ch = curl_init("https://tempmailchecker.com/check?email=user@tempmail.com");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["X-API-Key: YOUR_API_KEY"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$data = json_decode(curl_exec($ch), true);

if ($data["temp"]) echo "Blocked";

Check Usage

GET /usage

Check your current daily usage. No authentication header required—just pass your key as a query parameter.

Request

curl "https://tempmailchecker.com/usage?key=YOUR_API_KEY"

Response

{
  "usage_today": 87,
  "limit": 100,
  "reset": "midnight UTC"
}

Rate Limits

Free tier: 100 requests per day. Resets at midnight UTC.

When you exceed your limit, you'll receive a 429 response:

{
  "error": "Rate limit exceeded",
  "message": "You have exceeded your daily limit of 100 requests",
  "limit": 100,
  "used": 100,
  "reset": "midnight UTC"
}

Need more? Reply to your welcome email and we'll upgrade you for free during beta.

Errors

ResponseMeaning
{"error": "Missing email or domain parameter"} No email or domain provided
{"error": "Invalid API key", "temp": null} API key not recognized
429 Rate limit exceeded Daily limit reached (100 requests)