Mailerlite-api-python
Python Wrapper for Mailerlite API v2
| Deployment | |
| Build Status | |
| Metrics |
|
| License | |
| Community |
Getting Started
Installation
This client is hosted at PyPi under the name mailerlite-api-python, to install it, simply run
pip install mailerlite-api-python
or install dev version:
git clone https://github.com/skoudoro/mailerlite-api-python.git
pip install -e .
Method reference
For the complete reference, visit the official MailerLite API reference.
Examples
Initialization
First, Grab YOUR_API_KEY from your Mailerlite account (Profile > Integrations > Developer Api).
>>> from mailerlite import MailerLiteApi
>>> api = MailerLiteApi('YOUR_API_KEY')
A second option is to define an environment variable named MAILERLITE_PYTHON_API_KEY.
Then, you do not need to precise it in your code:
>>> from mailerlite import MailerLiteApi
>>> api = MailerLiteApi()
Campaigns
Get all campaigns or a specific one
>>> all_campaigns = api.campaigns.all()
>>> draft = api.compaings.all(status='draft')
Modify a campaign
>>> one_campaign = all_campaigns[0]
>>> html = '<head></head><body><h1>Title</h1><p>Content</p><p><small><a href=\"{$unsubscribe}\">Unsubscribe</a></small></p></body>'
>>> plain = "Your email client does not support HTML emails. "
>>> plain += "Open newsletter here: {$url}. If you do not want"
>>> plain += " to receive emails from us, click here: {$unsubscribe}"
>>> api.campaigns.update(one_campaign.id, html=html, plain=plain)
Create / Delete a campaign
>>> data = {"subject": "Regular campaign subject",
"name": "Regular campaign name",
"groups": [2984475, 3237221],
"type": "regular"}
>>> api.campaign.create(data)
>>> api.campaign.delete(campaign_id=3971635)
Send a campaign
>>> data = {"subject": "Regular campaign subject",
"name": "Regular campaign name",
"groups": [2984475, 3237221],
"type": "regular"}
>>>
>>> _, res = api.campaign.create(data)
>>> campaign_id = res['id']
>>>
>>> html = '<head></head><body><h1>Your Title</h1><p>Your Content</p><p><small>'
>>> html += '<a href=\"{$unsubscribe}\">Unsubscribe</a></small></p></body>'
>>> plain = "Your email client does not support HTML emails. "
>>> plain += "Open newsletter here: {$url}. If you do not want"
>>> plain += " to receive emails from us, click here: {$unsubscribe}"
>>>
>>> api.campaign.update(campaign_id, html=html, plain=plain)
>>> api.campaign.send(campaign_id)
Cancel a scheduled campaign
>>> outbox_campaigns = campaign_obj.all(status='outbox', limit=5)
>>> selected_campaign = outbox_campaigns[0]
>>>
>>> api.campaign.cancel(selected_campaign.id)
count campaign
>>> api.campaign.count()
>>> api.campaign.count(status='draft')
Subscribers
Get all subscribers
>>> api.subscribers.all()
>>> api.subscribers.all(stype='active')
>>> api.subscribers.active()
>>> api.subscribers.unsubscribed()
>>> api.subscribers.bounced()
>>> api.subscribers.junk()
>>> api.subscribers.unconfirmed()
Get one subscriber
>>> api.subscribers.get(email='demo@mailerlite.com')
>>> api.subscribers.get(id=1343965485)
search
>>> api.subscribers.search(search='demo@mailerlite.com')
subscribers groups
>>> api.subscribers.groups(id=1343965485)
subscribers activity
>>> api.subscribers.activity(id='1343965485')
>>> api.subscribers.activity(id='1343965485', limit=50, offset=1, atype='clicks')
Create subscriber
>>> data = {'name': 'John',
'email': 'demo-678@mailerlite.com',
'fields': {'company': 'MailerLite'}
}
>>> api.subscribers.create(data)
Update subscriber
>>> data = {'name': 'John',
'fields': {'company': 'MailerLite'}
}
>>> api.subscribers.update(data, id='1343965485')
Count subscribers
Get the total count of all subscribers in a single call.
Please, be aware that this is not a documented feature in the official API.
>>> api.subscribers.count()
Groups
Get all Groups
>>> api.groups.all()
>>> api.groups.all(limit=50)
>>> api.groups.all(offset=10)
>>> api.groups.all(gfilters='My Group')
>>> api.groups.all(group_id=12345)
Create a Group
>>> api.groups.create(group_id=12345, name='My New Group')
Rename a Group
>>> api.groups.update(group_id=12345, name='New Name')
Get a Group
>>> api.groups.get(group_id=12345)
Delete a Group
>>> api.groups.delete()
>>> api.groups.delete(group_id=12345)
Get all subscribers in a Group
>>> api.groups.subscribers(group_id=12345)
>>> api.groups.subscribers(group_id=12345, limit=50, offset=1)
>>> api.groups.subscribers(group_id=12345, stype='active')
Get one subscriber from a Group
>>> api.groups.subscriber(group_id=12345, subscriber_id=54321)
Add list of subscribers to a Group
This method calls the import endpoint https://developers.mailerlite.com/reference#add-many-subscribers
>>> api.groups.add_subscribers(group_id=12345, subscribers_data=[{"email": "john@wick.com", "name": "John Wick"}], autoresponders=False, resubscribe=False, as_json=False)
subscriber_data argument accepts a list of dictionaries or just one dictionary containing the subscriber name and email
Add a single subscriber to a Group
This method calls the add single subscriber endpoint https://developers.mailerlite.com/reference#add-single-subscriber
>>> api.groups.add_single_subscriber(group_id=12345, subscribers_data={"email": "john@wick.com", "name": "John Wick" ...}, autoresponders=False, resubscribe=False, as_json=False)
Unlike the method above, this adds only one subscriber to a group. The subscriber_data argument accepts all subscriber attributes.
Check available attributes on https://developers.mailerlite.com/reference#create-a-subscriber
Delete one subscriber from a Group
>>> api.groups.delete_subscriber(group_id=12345, subscriber_id=54321)
Segments
Get list of Segments
>>> api.segments.all()
Get count of Segments
>>> api.segments.count()
Fields
Get list of Fields
>>> api.fields.all()
Get one Field
>>> api.fields.get(field_id=123456)
Create / update / delete one Field
>>> api.fields.create(title="my custom title")
>>> api.fields.update(field_id=123456, title="my new title 2")
>>> api.fields.delete(field_id=123456)
Webhooks
Get list of Webhooks
>>> api.webhooks.all()
Get one webhook
>>> api.webhooks.get(webhook_id=123456)
Create/update/delete one webhook
>>> api.webhooks.create(url="https://yoursite/script-is-here",
... event="subscriber.create")
>>> api.webhooks.update(webhook_id=123456,
... url="https://yoursite/script-is-here",
... event="subscriber.create")
>>> api.webhooks.delete(webhook_id=123456)
Account
# Get some info or stats
>>> api.account.info()
>>> api.account.stats()
>>> api.account.double_optin()
# Set up the double_optin
>>> api.account.set_double_optin(True)
Batch
>>> batch_requests = {"requests": [{"method":"GET",
... "path": "/api/v2/groups"
... },
... {"method":"POST",
... "path": "/api/v2/groups",
... "body": {"name": "New group"}
... }
... ]
... }
>>> api.batch(batch_requests)
Tests
- Step 1: Install pytest
pip install pytest
- Step 2: Run the tests
pytest -svv mailerlite
Contribute
We love contributions!
You've discovered a bug or something else you want to change - excellent! Create an issue!
You've worked out a way to fix it – even better! Submit a Pull Request!
Start with the contributing guide!
License
Project under 3-clause BSD license, more informations here
Metadata
Release files for mailerlite-api-python 0.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| mailerlite-api-python-0.10.0.tar.gz | 44.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mailerlite_api_python-0.10.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 76.4 kB
Release files / mailerlite-api-python-0.10.0.tar.gz
| Download URL | mailerlite-api-python-0.10.0.tar.gz |
|---|---|
| Size | 44.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
46d02a26c5f627e04541014cf88744a62e0d9b9d0c88b5e2a4cc19acb4c2f6bd
|
|
BLAKE2b-256 checksum How to use checksums |
2b7078c106c1315441a5467491b3b66f0f031c6adf5d58e8cb9c55e9cc97ab95
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10
|
Release files / mailerlite_api_python-0.10.0-py3-none-any.whl
| Download URL | mailerlite_api_python-0.10.0-py3-none-any.whl |
|---|---|
| Size | 31.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a475516fed42753c9131086dac012d14a2f3db5c32018f4690d08e9d1802443e
|
|
BLAKE2b-256 checksum How to use checksums |
739c8fa7ed48a768e7bbe5a0d45a7b609c58e382614755c7763fd08919db12d4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10
|
Security for mailerlite-api-python 0.10.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.