Official Python client for the Verifly email verification API.
pip install veriflyfrom verifly import Verifly
client = Verifly("vf_your_api_key")
# Verify a single email
result = client.verify("user@example.com")
print(result["result"]) # ok, invalid, disposable, catch_all, unknown
print(result["quality_score"]) # 0.0 - 1.0- Single verification - real-time SMTP check
- Batch verification - up to 100 emails per request
- Bulk verification - async processing for up to 1M emails
- List cleaning - free syntax/format validation
- Credit management - check your balance
result = client.verify("john@company.com")
if result["result"] == "ok":
print("Valid email!")
elif result["result"] == "invalid":
print("Bad email, don't send")
elif result["disposable"]:
print("Disposable email detected")results = client.verify_batch([
"alice@company.com",
"bob@startup.io",
"fake@mailinator.com",
])
for r in results["results"]:
print(f"{r['email']}: {r['result']}")import time
# Start the job
job = client.verify_bulk(big_email_list)
job_id = job["job_id"]
# Poll for completion
while True:
status = client.job_status(job_id)
if status["status"] == "completed":
break
print(f"Progress: {status['progress']}%")
time.sleep(10)
# Get results
results = client.job_results(job_id)balance = client.credits()
print(f"Remaining: {balance['remaining']}")from verifly import Verifly, VeriflyError
try:
result = client.verify("test@example.com")
except VeriflyError as e:
print(f"API error: {e.message} (HTTP {e.status_code})")| Plan | Credits | Price |
|---|---|---|
| Starter | 5,000 | $10 |
| Pro | 25,000 | $40 |
| Business | 100,000 | $120 |
No monthly fees. Credits never expire.
MIT