Disposable Email Detection API Documentation

Reference documentation for checking an email address or domain with one authenticated REST request. The API returns a simple temp boolean for signup protection, with 100 free lifetime checks to test your integration.

🤖
Using an AI agent? Point Cursor, Claude, ChatGPT, or any coding agent at tempmailchecker.com/agent-setup — these docs as a single markdown file, ready for LLMs.

Endpoint: GET /check

GET /check

Base URL

https://tempmailchecker.com

The legacy us.tempmailchecker.com and asia.tempmailchecker.com hostnames remain fully supported as aliases of the main endpoint — existing integrations keep working without changes.

Authentication

Include your API key in the request header:

X-API-Key: your_api_key

Get your free API key on the signup page. Keep the key on your backend; never expose it in browser JavaScript, mobile binaries, or public repositories.

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 schema

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 usage. No authentication header required—just pass your key as a query parameter.

Request

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

Response (free plan)

{
  "usage": 18,
  "limit": 100,
  "reset": null
}

Response (paid plans)

Paid plans have a monthly quota instead of a daily limit. reset is the date your quota renews.

{
  "usage_this_month": 1204,
  "limit": 3000,
  "reset": "2026-08-09"
}

Rate Limits

Free trial: 100 lifetime requests. This quota does not reset.

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

{
  "error": "Rate limit exceeded",
  "message": "Your free trial is exhausted. Please upgrade to a paid plan: https://tempmailchecker.com/",
  "upgrade": "https://tempmailchecker.com/",
  "limit": 100,
  "used": 100
}

Need more? Paid plans start at $12/month for 3,000 requests — see pricing.

Custom Blacklist & Whitelist

Paid plans can override the global database with per-account domain lists, managed in the dashboard:

ListEffect on /check
Whitelist Domain always returns {"temp": false}, even if it's in our database
Blacklist Domain always returns {"temp": true}, even if we consider it legitimate

Evaluation order: your whitelist → your blacklist → global database. Changes take effect immediately. Domains can be added individually or bulk-imported. Lists are currently managed through the dashboard; key-authenticated list endpoints are on the roadmap.

Status Codes & Errors

StatusResponseMeaning
200 {"temp": true|false} Success
400 {"error": "Missing email or domain parameter"} No email or domain provided
401 {"error": "API key required", "temp": null} Missing X-API-Key header
401 {"error": "Invalid API key", "temp": null} API key not recognized
429 {"error": "Rate limit exceeded", ...} Plan quota reached — upgrade or wait for reset

Tip: decide whether your signup flow should fail open (allow the signup) or fail closed (block it) when the API returns an error — most integrations fail open.

Detection scope and limitations

The temp field answers one question: does the submitted email or domain match a known disposable or temporary-mail provider in the current database? A false result does not prove that a mailbox exists, that it will accept mail, or that the user is trustworthy.

Keep disposable detection separate from rules for free providers, privacy relays, plus-addressing, role accounts, IP reputation, and SMTP mailbox verification. See the signup-blocking guide for false-positive handling, testing, and fallback policy.