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['emails_remaining']}")
📧 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.2.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.2-py3-none-any.whl
(11.4 kB
view details)
File details
Details for the file metigan-1.0.2.tar.gz.
File metadata
- Download URL: metigan-1.0.2.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 |
ff107ebd23fbfb748c20e943b2992017db4a7fda2b5fc5ec49d81e113644fa28
|
|
| MD5 |
024d05b3b808c2af6e34b45f5b877ef1
|
|
| BLAKE2b-256 |
3bf9ccf678a3c2d794789c2e7fdebeb034846a2ce88576bb78586a0d2074fcfb
|
File details
Details for the file metigan-1.0.2-py3-none-any.whl.
File metadata
- Download URL: metigan-1.0.2-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 |
ada786800f9d5237654fe7d330f51f935624ea50c700f032decf716f5a04fb83
|
|
| MD5 |
760dafb8bfbe9c7e66013e52a2a5dc60
|
|
| BLAKE2b-256 |
155487d1029ed7788da312022a7d48e7c1ab5a65be95b563047a3db978e6c330
|