Skip to main content
POST
/
api
/
v1
/
email-verification
/
single
Verify Email
curl --request POST \
  --url https://api.example.com/api/v1/email-verification/single \
  --header 'Content-Type: application/json' \
  --data '
{
  "email": "<string>"
}
'
{
  "email": "<string>",
  "status": "<string>"
}

Documentation Index

Fetch the complete documentation index at: https://docs.mailbreeze.com/llms.txt

Use this file to discover all available pages before exploring further.

Verify a single email address synchronously. Results are returned immediately and cached for 24 hours.

Request Body

email
string
required
The email address to verify.

Examples

import { MailBreeze } from "mailbreeze";

const mailbreeze = new MailBreeze({ apiKey: "sk_live_xxx" });

const result = await mailbreeze.verification.verify({ email: "user@example.com" });

if (result.isValid) {
  console.log("Email is valid - safe to send");
} else {
  console.log(`Invalid: ${result.reason}`);
}

// Check detailed information
console.log(`Result: ${result.result}`);       // "valid", "invalid", "risky", "unknown"
console.log(`Risk score: ${result.riskScore}`); // 0-100
console.log(`Cached: ${result.cached}`);        // true if previously verified

if (result.details) {
  console.log(`Disposable: ${result.details.isDisposable}`);
  console.log(`Free provider: ${result.details.isFreeProvider}`);
  console.log(`Role account: ${result.details.isRoleAccount}`);
}

Response

email
string
The email address that was verified.
status
string
Verification result status:
  • clean - Email is valid and safe to send to
  • dirty - Email is invalid or risky
  • unknown - Could not determine validity
Example Response
{
  "success": true,
  "data": {
    "email": "user@example.com",
    "status": "clean"
  },
  "meta": {
    "timestamp": "2025-12-27T13:39:24.882Z",
    "requestId": "1bd79156-a875-430c-b8c7-75e9204267ea",
    "path": "/api/v1/email-verification/single"
  }
}
The response is wrapped in an envelope with success, data, and meta fields. SDKs automatically extract the data object, so you access fields directly (e.g., result.isValid).

Result Categories

ResultisValidDescriptionRecommendation
validtrueEmail exists and accepts mailSafe to send
invalidfalseMailbox doesn’t existDo not send
riskyfalseMay exist but has risk factorsReview manually
unknownfalseCould not verifyProceed with caution

Risk Factors

Emails may be marked as risky for:
  • Disposable email - Temporary addresses that expire
  • Role accounts - Generic addresses like admin@, support@
  • Catch-all domains - Accept any address, can’t verify mailbox
  • High spam complaint domain - Domain has poor reputation

Credits

  • New verification: 1 credit deducted
  • Cached result: 0 credits (results cached 24 hours)

Errors

CodeHTTP StatusDescription
INVALID_EMAIL400Email format is invalid
INSUFFICIENT_CREDITS402Not enough verification credits