Endpoint Specification
http
POST /api/v1/verify/single
Host: api.bouncelayer.com
X-API-Key: bl_live_your_api_key_here
Content-Type: application/jsonRequest Parameters
| Parameter | Type | Required? | Description |
|---|---|---|---|
| `email` | string | Required | The recipient email address to verify (e.g. alex@company.com). |
| `timeout_ms` | integer | Optional | Socket 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
}
}