Official Python SDK for the Email Deliverability Intelligence API
Project description
Email Deliverability Intelligence - Python SDK
Official Python SDK for the Email Deliverability Intelligence API. Verify emails, analyze domain health, predict deliverability, and more -- all without sending test emails.
Installation
pip install emailintel
Quick Start
Synchronous
from emailintel import EmailIntelClient
client = EmailIntelClient(api_key="edi_live_your_key_here")
# Verify an email
result = client.verify_email("john@example.com", deep_scan=True)
print(f"Result: {result.result}, Confidence: {result.confidence}")
# Get domain intelligence
intel = client.get_domain_intelligence("example.com")
print(f"Provider: {intel.provider}, Risk: {intel.risk_level}")
# Find someone's email
found = client.find_email("example.com", "John", "Doe")
print(f"Email: {found.email}, Confidence: {found.confidence}")
client.close()
Asynchronous
import asyncio
from emailintel import AsyncEmailIntelClient
async def main():
async with AsyncEmailIntelClient(api_key="edi_live_your_key_here") as client:
result = await client.verify_email("john@example.com")
print(f"Result: {result.result}, Confidence: {result.confidence}")
asyncio.run(main())
Context Manager
from emailintel import EmailIntelClient
with EmailIntelClient(api_key="edi_live_your_key_here") as client:
result = client.verify_email("john@example.com")
Available Methods
Email Verification
verify_email(email, deep_scan=False, include_signals=False)-- Verify a single emailverify_batch(emails, webhook_url=None)-- Submit batch verificationget_batch_status(job_id)-- Check batch job status
Domain Intelligence
get_domain_intelligence(domain)-- Full domain intelligenceget_domain_pattern(domain)-- Email naming pattern detectionget_domain_compliance(domain)-- Bulk sender compliance checkget_domain_blacklist(domain, refresh=False)-- DNSBL blacklist checkget_domain_report(domain, format="json")-- Comprehensive domain reportcompare_domains(domains)-- Compare 2-5 domains side-by-sideget_domain_reputation(domain)-- Sender reputation score (0-100)get_reputation_history(domain, limit=30)-- Reputation score timelineget_domain_advisor(domain)-- AI infrastructure recommendations
Email Finder
find_email(domain, first_name, last_name)-- Predict email address
Content Analysis
analyze_content(subject, body, sender_domain)-- Spam risk analysis
Predictions
predict_engagement(email, content_snippet=None)-- Engagement likelihoodpredict_deliverability(sender_domain, recipient_email)-- Inbox placement prediction
Domain Monitoring
register_monitored_domains(domains, webhook_url, interval_seconds=21600)-- Register monitoringlist_monitored_domains()-- List monitored domainsunregister_monitored_domain(domain)-- Remove monitoring
Postmaster Tools
get_postmaster_data(domain)-- Combined Google + Microsoft datasync_postmaster_data(domain)-- Trigger manual data sync
Error Handling
The SDK throws typed exceptions for different error conditions:
from emailintel import (
EmailIntelClient,
AuthenticationError,
RateLimitError,
InsufficientCreditsError,
ValidationError,
NotFoundError,
ServerError,
)
client = EmailIntelClient(api_key="edi_live_your_key_here")
try:
result = client.verify_email("john@example.com")
except AuthenticationError:
print("Invalid API key")
except RateLimitError as e:
print(f"Rate limited. Retry after {e.retry_after}s")
except InsufficientCreditsError:
print("No credits remaining")
except ValidationError as e:
print(f"Bad request: {e.details}")
except ServerError:
print("Server error - will auto-retry")
Configuration
client = EmailIntelClient(
api_key="edi_live_your_key_here",
base_url="https://api.emailintel.dev", # Custom base URL
max_retries=3, # Retry transient failures
timeout=30.0, # Request timeout in seconds
)
Auto-Retry
The SDK automatically retries on transient failures:
- 429 (Rate Limited): Respects
retry_afterfrom the response - 5xx (Server Errors): Exponential backoff with jitter
- 400, 401, 402, 404: Never retried (client errors)
Requirements
- Python 3.9+
- httpx >= 0.25.0
- pydantic >= 2.0.0
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file emailintel-0.1.0.tar.gz.
File metadata
- Download URL: emailintel-0.1.0.tar.gz
- Upload date:
- Size: 11.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c0603e3162ddf20c98bb82faacc38046d258c185019d6a4168b439195624a5c
|
|
| MD5 |
39b7c50de12c888df4b1cf62ced438e6
|
|
| BLAKE2b-256 |
dd0b48e9ab1800ce7808a00cba3d1c8e71adc065f7d6c54e620938f75a82579d
|
File details
Details for the file emailintel-0.1.0-py3-none-any.whl.
File metadata
- Download URL: emailintel-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18a972d3bd10cfd47d777381f133a09545baabe4a387782b665443e81eb45982
|
|
| MD5 |
7be8849ed13e085f3626426efccc4db1
|
|
| BLAKE2b-256 |
347256aa052ce64fdd23c5eabc5629ed91743eee0734d5582a7e7d54d29c575e
|