MIX-Basic
8,000 IPs · 500–900 threads
from $50 a month
A one-off list cleanup and an inbox check. Take it when you have tens of thousands of addresses and run once a month.
Before a campaign you clean the list and see where the mail lands. Both hit the same IP: a mail server throttles frequent hits from one address. A MIX pool up to 25,000 IPs spreads the checks across thousands of addresses, so validating a million-row list runs in thousands of threads. A test hour costs $1.

Pick a package, then move the period and thread sliders. A thread is one SMTP connection open at this moment: a validator with 2,100 threads checks 2,100 addresses at once. That is what the slider is set to.
MIX-Basic covers a one-off cleanup of a list up to a hundred thousand addresses and an inbox check on a couple of mailboxes. 8,000 addresses are enough that the SMTP check does not hit mail-server limits and captchas on web validators stay out of the way. 500 threads, sold in steps of 50 on periods from a week.
MIX-Business is built for an address-verification service and for regular list work: a million addresses per run, deliverability checks across several domains and regions. 16,000 addresses hold the rate at which Gmail and Outlook do not return a temporary failure. A thousand threads to start, up to 1,400 with add-ons.
MIX-Elite is made for industrial validation and deliverability monitoring: lists of tens of millions of addresses, inbox checks from different countries, scheduled runs. The widest pool at 25,000 addresses and threads up to 9,900. SMTP checking needs many threads, so the widget opens at 2,100 — the recommended start.
A thread is one simultaneous connection. More threads — more done in the same time.
$50 for a monthno extra charge for threads
save $250 vs. dailyA thread is one simultaneous connection. More threads — more done in the same time.
$100 for a monthno extra charge for threads
save $350 vs. dailyA thread is one simultaneous connection. More threads — more done in the same time.
$150 for a month+ $60 for threads
save $630 vs. dailyThe whitelist opens access to the server itself, the validator has no login or password to enter. Up to ten addresses on the list.
The response is plain text: address and port, one proxy per line. The same URL ending in .csv adds an uptime column, handy for picking the most stable addresses.
MailList Verify, BriteVerify and home-grown checkers take a list by URL and re-read it on their own. A Python script of your own starts from the example below.
500 on Basic, 1,000 on Business, 1,500 on Elite without add-ons, up to 9,900 with them. One SMTP connection goes through one port, and on a big list the threads decide the run time.
The validator greets the domain's mail server and asks about the address with the RCPT command; a 250 means the mailbox exists. No mail goes out, and the domain reputation stays untouched.
This is how a list is validated from Python. The script reads addresses from emails.txt, finds the domain's MX for each, opens SMTP through a random proxy from the list and writes valid, invalid or unknown to checked.csv from the RCPT reply. Replace PROXY_LIST_URL_FROM_DASHBOARD with the URL from your dashboard.
# pip install requests dnspython PySocks
import random, smtplib, socks, requests
import dns.resolver
from concurrent.futures import ThreadPoolExecutor
PROXY_LIST_URL = "PROXY_LIST_URL_FROM_DASHBOARD"
THREADS = 2100
HELO_DOMAIN = "yourdomain.com"
FROM_ADDR = "check@yourdomain.com"
proxies = [line.strip() for line in requests.get(PROXY_LIST_URL, timeout=15).text.splitlines() if ":" in line]
class ProxySMTP(smtplib.SMTP):
def __init__(self, proxy, host, port=25, timeout=15):
self.proxy = proxy
super().__init__(host, port, timeout=timeout)
def _get_socket(self, host, port, timeout):
proxy_host, proxy_port = self.proxy.split(":")
sock = socks.socksocket()
sock.set_proxy(socks.SOCKS5, proxy_host, int(proxy_port))
sock.settimeout(timeout)
sock.connect((host, port))
return sock
def mx(domain):
records = dns.resolver.resolve(domain, "MX")
return str(min(records, key=lambda r: r.preference).exchange).rstrip(".")
def check(email):
try:
smtp = ProxySMTP(random.choice(proxies), mx(email.split("@")[1]))
smtp.ehlo(HELO_DOMAIN)
smtp.mail(FROM_ADDR)
code, _ = smtp.rcpt(email)
smtp.quit()
return email, "valid" if code == 250 else "invalid"
except Exception:
return email, "unknown"
emails = [line.strip() for line in open("emails.txt") if "@" in line]
with ThreadPoolExecutor(THREADS) as pool, open("checked.csv", "w") as out:
for email, status in pool.map(check, emails):
out.write(f"{email};{status}\n")
print(email, status)
8,000 IPs · 500–900 threads
from $50 a month
A one-off list cleanup and an inbox check. Take it when you have tens of thousands of addresses and run once a month.
16,000 IPs · 1,000–1,400 threads
from $100 a month
A package for services and regular work: a million addresses per run, deliverability checks across domains.
25,000 IPs · 1,500–9,900 threads
from $150 a month
A package for industrial validation: tens of millions of addresses, threads up to 9,900, scheduled runs.
import csv, io, requests
CSV_URL = "PROXY_LIST_URL_FROM_DASHBOARD.csv"
TAKE = 2100
OUT_FILE = "proxies_stable.txt"
text = requests.get(CSV_URL, timeout=15).text
rows = list(csv.DictReader(io.StringIO(text), delimiter=";"))
rows.sort(key=lambda r: int(r["uptime"]), reverse=True)
picked = [f"{r['ip']}:{r['port']}" for r in rows[:TAKE]]
with open(OUT_FILE, "w") as f:
f.write("\n".join(picked) + "\n")
print(f"{len(picked)} proxies saved to {OUT_FILE}")
General questions about the service are answered in the general FAQ, the full plan grid is on the home page.
Run part of the list on the pool for an hour, watch how the mail servers answer, then pick a period. On packages from 3 days the remainder goes back to your balance.
Test proxies for $1