Mailbox-level verification
Go beyond regex. We probe mail servers where possible and classify valid, invalid, and unknown — so you can automate the next step. Country is extra metadata, not a requirement for valid. How country billing works.
Email verification API + bulk list cleaning
CSV · REST API · signup forms — one engine
Pay as you go. Credits never expire. You only pay for valid or invalid — unknown, error, and risky stay free.
Live check
No account. A few free checks per hour. Unknown results are not billed.
Product
One engine for a pasted list, a CSV, or a signup form — then a report you can actually explain.
Go beyond regex. We probe mail servers where possible and classify valid, invalid, and unknown — so you can automate the next step. Country is extra metadata, not a requirement for valid. How country billing works.
Every job ends with a cost breakdown. Unknown, error, and risky stay free. Pay as you go packs.
Optional add-on. When a country comes back, that check is 2 credits. The job map shows the top countries with flags. Mailbox country.
Validate at signup, in forms, or inside your enrichment pipeline. Same credits as bulk. Verification API.
Split results into Valid, Invalid, Errors, Risky, and Valid + country — ready for your ESP. Bulk list cleaning.
Get your API key and 100 welcome credits instantly.
Drop a CSV in the dashboard or call the REST API from your app.
Download segments, see credits charged, and optionally the country map.
REST v1
Bearer token, JSON in, verdict out. Turn on include_country when you need a region code.
curl -X POST "https://mbox.run/api/v1/verify" \
-H "Authorization: Bearer ev_live_…" \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","include_country":true}'
const res = await fetch("https://mbox.run/api/v1/verify", {
method: "POST",
headers: {
Authorization: `Bearer ${API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
email: "[email protected]",
include_country: true,
}),
});
const { result, credits_charged } = await res.json();
import requests
r = requests.post(
f"https://mbox.run/api/v1/verify",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"email": "[email protected]", "include_country": True},
)
print(r.json()["result"], r.json()["credits_charged"])
Pricing
You only pay for valid or invalid. Country is ×2 only when we return one. Credits never expire.
List size
100,000emails
100 free credits on signup. No card. Bigger packs, lower per 1k.
FAQ
One credit covers a valid or invalid result. Turn on Detect mailbox country to also receive a country code when we have one — that result costs 2 credits. Unknown, error, and risky stay free.
No. Unknown, error, and risky results are not billed. After a bulk job the dashboard shows the exact split: 1-credit checks, 2-credit country checks, and free results.
Yes. The same credits work in the dashboard and programmatically. See the developer docs for endpoints, response fields, and examples.
Throughput depends on list composition and network conditions. Live stats in the dashboard show progress, speed, outcome counts, and credits charged.
Product pages
Short pages for the queries people actually search — not a blog.