Official Metigan SDK for Python - Email, Forms, Contacts, and Audiences management
Project description
Metigan Python SDK
Official Metigan SDK for Python. Send emails, manage forms, contacts, and audiences with ease.
📦 Installation
pip install metigan
# or
pip3 install metigan
🚀 Quick Start
from metigan import MetiganClient
# Initialize the client
client = MetiganClient(api_key="your-api-key")
# Send email
result = client.email.send_email(
from_address="Sender <sender@example.com>",
recipients=["customer@email.com"],
subject="Welcome!",
content="<h1>Hello!</h1><p>Thank you for signing up.</p>"
)
if result["success"]:
print("Email sent successfully!")
print(f"Emails remaining: {result.get('emailsRemaining', 'N/A')}")
📧 Email Module
Basic Send
result = client.email.send_email(
from_address="sender@example.com",
recipients=["recipient@example.com"],
subject="Email Subject",
content="<h1>HTML Content</h1>"
)
With Attachments
with open("document.pdf", "rb") as f:
file_data = f.read()
result = client.email.send_email(
from_address="company@email.com",
recipients=["customer@email.com"],
subject="Important Document",
content="Please find the document attached.",
attachments=[
{
"content": file_data,
"filename": "document.pdf",
"content_type": "application/pdf"
}
]
)
With CC and BCC
result = client.email.send_email(
from_address="company@email.com",
recipients=["main@email.com"],
subject="Meeting",
content="Email content",
cc=["copy@email.com"],
bcc=["hidden-copy@email.com"],
reply_to="reply-here@email.com"
)
With Template
result = client.email.send_email_with_template(
template_id="template-123",
variables={
"name": "John Doe",
"company": "Acme Inc"
},
from_address="sender@example.com",
recipients=["recipient@example.com"]
)
👥 Contacts Module
Create Contact
contact = client.contacts.create(
email="new@email.com",
first_name="Jane",
last_name="Doe",
audience_id="audience-123",
tags=["customer", "newsletter"]
)
List Contacts
result = client.contacts.list(
audience_id="audience-123",
status="subscribed",
page=1,
limit=50
)
for contact in result["contacts"]:
print(f"{contact['email']}: {contact['first_name']}")
Update Contact
updated = client.contacts.update(
contact_id="contact-456",
first_name="Jane Marie",
tags=["customer", "vip"]
)
📊 Audiences Module
Create Audience
audience = client.audiences.create(
name="Main Newsletter",
description="Main subscriber list"
)
List Audiences
result = client.audiences.list(page=1, limit=10)
for audience in result["audiences"]:
print(f"{audience['name']}: {audience['count']} contacts")
Get Statistics
stats = client.audiences.get_stats("audience-123")
print(f"Total: {stats['total']}")
print(f"Subscribed: {stats['subscribed']}")
⚙️ Configuration
from metigan import MetiganClient
client = MetiganClient(
api_key="your-api-key",
timeout=30, # Optional, defaults to 30 seconds
retry_count=3, # Optional, defaults to 3
retry_delay=2, # Optional, defaults to 2 seconds
debug=False # Optional, defaults to False
)
🔒 Error Handling
from metigan import MetiganClient, ApiError, ValidationError
try:
result = client.email.send_email(options)
except ValidationError as e:
print(f"Validation Error: {e.message}")
if e.field:
print(f"Field: {e.field}")
except ApiError as e:
print(f"API Error: {e.status_code} - {e.message}")
except Exception as e:
print(f"Unknown error: {e}")
📝 Examples
See the examples directory for more complete examples.
📄 License
MIT © Metigan
🔗 Links
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
metigan-1.0.5.tar.gz
(10.2 kB
view details)
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
metigan-1.0.5-py3-none-any.whl
(11.4 kB
view details)
File details
Details for the file metigan-1.0.5.tar.gz.
File metadata
- Download URL: metigan-1.0.5.tar.gz
- Upload date:
- Size: 10.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e10293f7250947d134945ecc1e9d0e22a69a310cdef7f0a4509bf52b6b1f9b92
|
|
| MD5 |
cf3c24588e6dbd069b2409fa3c2be359
|
|
| BLAKE2b-256 |
b179f4432116d7da6beb02459fc5e1c5c0cec44160b2fff3c798b94e2fc9b55a
|
File details
Details for the file metigan-1.0.5-py3-none-any.whl.
File metadata
- Download URL: metigan-1.0.5-py3-none-any.whl
- Upload date:
- Size: 11.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b6653e74aecbfea75ba3738bad64b3516607c8c5c86b95a300d3b4a72e494e0
|
|
| MD5 |
9bbeb14f4f6e629a161bc1ffeebeb9b1
|
|
| BLAKE2b-256 |
8283a105ddf2ea9461fdfcc0804ed13e54b4add5cd5311697cfb31c42253f0d8
|