Real-time email verification API with DNS, SMTP & syntax checks. Detect disposable emails, role accounts, and free providers โ one API call, instant JSON response.
$ curl -X POST https://mailprobe.cc/api/v1/verify \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "john@gmail.com"}'
# Response (850ms)
{
"email": "john@gmail.com",
"valid": true,
"risk": "low",
"checks": { "syntax": true, "dns_mx": true, "smtp_verify": true }
}
Every email goes through comprehensive validation โ from syntax to SMTP handshake
RFC 5322 compliant syntax check. Catches typos, missing @, invalid characters, and malformed addresses instantly.
Verifies the domain exists and has valid MX records configured to receive emails. No more dead domains.
Connects to the mail server and verifies the mailbox actually exists โ without sending a single email.
Identifies temporary/throwaway email providers like Guerrilla Mail, Temp Mail, and 10,000+ disposable domains.
Flags role-based addresses like info@, admin@, support@ โ emails that typically don't belong to a real person.
Combines all checks into a single risk score โ low, medium, or high โ so you can make informed decisions.
Three steps to clean, verified email lists
POST a single email or a batch of up to 100 emails to our API endpoint with your API key.
Syntax validation โ DNS/MX lookup โ SMTP handshake โ disposable check โ role account detection โ provider identification. All in under 1 second.
Receive a structured JSON response with individual check results, risk level, provider info, and processing time.
Enter any email address and see the verification result instantly
Everything you need to make informed decisions about email quality
{
"email": "john@gmail.com",
"valid": true,
"checks": {
"syntax": true,
"dns_mx": true,
"smtp_verify": true,
"disposable": false,
"role_account": false,
"free_provider": true
},
"risk": "low",
"provider": "Google",
"processing_ms": 850
}
Copy-paste examples for your favorite language
# Verify a single email
curl -X POST https://mailprobe.cc/api/v1/verify \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "john@gmail.com"}'
# Batch verify (up to 100 emails)
curl -X POST https://mailprobe.cc/api/v1/verify/batch \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"emails": ["john@gmail.com", "jane@yahoo.com"]}'
import requests
# Single verification
response = requests.post(
"https://mailprobe.cc/api/v1/verify",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"email": "john@gmail.com"}
)
result = response.json()
print(f"Valid: {result['valid']}, Risk: {result['risk']}")
# Batch verification (up to 100)
response = requests.post(
"https://mailprobe.cc/api/v1/verify/batch",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"emails": ["john@gmail.com", "jane@yahoo.com"]}
)
results = response.json()
for r in results:
print(f"{r['email']}: {r['risk']} risk")
// Single verification
const response = await fetch('https://mailprobe.cc/api/v1/verify', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({ email: 'john@gmail.com' })
});
const result = await response.json();
console.log(`Valid: ${result.valid}, Risk: ${result.risk}`);
// Batch verification (up to 100)
const batch = await fetch('https://mailprobe.cc/api/v1/verify/batch', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({ emails: ['john@gmail.com', 'jane@yahoo.com'] })
});
const results = await batch.json();
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
body, _ := json.Marshal(map[string]string{
"email": "john@gmail.com",
})
req, _ := http.NewRequest("POST",
"https://mailprobe.cc/api/v1/verify",
bytes.NewBuffer(body))
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Printf("Valid: %v, Risk: %v\n", result["valid"], result["risk"])
}
Simple RESTful API ยท Base URL: https://mailprobe.cc/api/v1
/verify
Single email verification
Verify a single email address. Returns detailed check results with risk assessment.
// Request body
{ "email": "john@gmail.com" }
/verify/batch
Batch verification (up to 100)
Verify up to 100 email addresses in a single request. Returns an array of results.
// Request body
{ "emails": ["john@gmail.com", "jane@yahoo.com", "..."] }
/health
Service health check
Returns service status and uptime. Use for monitoring and integration checks.
/usage
API usage statistics
Returns your current usage stats โ total verifications, remaining quota, and billing period.
Up to 3x cheaper than ZeroBounce ยท No hidden fees ยท Pay as you grow
For testing & prototypes
For small projects
$0.002/email
For growing teams
$0.0012/email
For high-volume needs
$0.0008/email
From signup forms to marketing campaigns โ keep your lists clean
Verify emails at signup to reduce fake accounts, prevent typos, and block disposable addresses in real-time.
Clean your lists before campaigns. Reduce bounce rates, protect sender reputation, and improve deliverability.
Validate leads as they come in. Only pay for outreach to real, deliverable addresses. Boost conversion rates.
Free tier includes 100 verifications/month. No credit card required. Full API access in under 2 minutes.