Synchronous EnginePOST/api/v1/verify/single

Single Email Verification API

Execute real-time sub-140ms RFC 5321 SMTP handshakes against any recipient email address without ever delivering a message body.

Endpoint Specification

http
POST /api/v1/verify/single
Host: api.bouncelayer.com
X-API-Key: bl_live_your_api_key_here
Content-Type: application/json

Request Parameters

ParameterTypeRequired?Description
`email`stringRequiredThe recipient email address to verify (e.g. alex@company.com).
`timeout_ms`integerOptionalSocket handshake timeout in milliseconds. Defaults to 4500 (4.5s). Max 10000 (10s).

Response Scenarios

1. Valid Email (Deliverable 250 OK)

json
{
  "success": true,
  "credits_used": 1,
  "result": {
    "email": "alex@company.com",
    "status": "valid",
    "is_valid": true,
    "syntax_valid": true,
    "domain": "company.com",
    "domain_valid": true,
    "has_mx": true,
    "mx_records": [
      { "priority": 10, "host": "aspmx.l.google.com" }
    ],
    "smtp_checked": true,
    "smtp_response_code": 250,
    "is_disposable": false,
    "is_role_based": false,
    "is_catch_all": false,
    "is_free_provider": false,
    "confidence_score": 98,
    "status_reason": "mailbox_confirmed",
    "provider": "google",
    "verification_time_ms": 118,
    "cached": false
  }
}

2. Invalid Email (550 Mailbox Not Found)

json
{
  "success": true,
  "credits_used": 1,
  "result": {
    "email": "nonexistent@company.com",
    "status": "invalid",
    "is_valid": false,
    "syntax_valid": true,
    "domain": "company.com",
    "domain_valid": true,
    "has_mx": true,
    "smtp_checked": true,
    "smtp_response_code": 550,
    "is_disposable": false,
    "is_catch_all": false,
    "confidence_score": 0,
    "status_reason": "mailbox_not_found",
    "verification_time_ms": 122
  }
}

3. Disposable / Burner Domain

json
{
  "success": true,
  "credits_used": 1,
  "result": {
    "email": "burner99@10minutemail.com",
    "status": "disposable",
    "is_valid": false,
    "is_disposable": true,
    "confidence_score": 10,
    "status_reason": "disposable",
    "provider": "disposable_firewall",
    "verification_time_ms": 14
  }
}

4. Catch-All Domain (Accept All)

json
{
  "success": true,
  "credits_used": 1,
  "result": {
    "email": "contact@megacorp.io",
    "status": "catch_all",
    "is_valid": false,
    "is_catch_all": true,
    "confidence_score": 65,
    "status_reason": "accept_all",
    "verification_time_ms": 134
  }
}

5. Indeterminate (Antispam / Greylisted — 0 Credits Charged)

json
{
  "success": true,
  "credits_used": 0,
  "note": "Indeterminate check — zero credits deducted per BounceLayer guarantee",
  "result": {
    "email": "cfo@private-bank.ch",
    "status": "unknown",
    "is_valid": false,
    "smtp_response_code": 421,
    "confidence_score": 50,
    "status_reason": "antispam_system",
    "verification_time_ms": 850
  }
}