Skip to main content

Python Wrapper for Mailerlite API

Project description


Python Wrapper for Mailerlite API v2

Deployment pypi mailerlite
Build Status
Metrics codacy mailerlite python codecov mailerlite python
License bsd

Getting Started


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
pip install -e .

Method reference

For complete reference, visit the official MailerLite API reference.



First, Grab YOUR_API_KEY from your Mailerlite account (Profile > Integrations > Developer Api).

>>> from mailerlite import MailerLiteApi
>>> api = MailerLiteApi('YOUR_API_KEY')


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 = '<h1>Title</h1><p>Content</p><p><small><a href=\"{$unsubscribe}\">Unsubscribe</a></small></p>'
>>> 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(, html=html, plain=plain)

Create / Delete a campaign

>>> data = {"subject": "Regular campaign subject",
                       "groups": [2984475, 3237221],
                       "type": "regular"}
>>> api.campaign.create(data)
>>> api.campaign.delete(campaign_id=3971635)

count campaign

>>> api.campaign.count()
>>> api.campaign.count(status='draft')


Get all subscribers

>>> api.subscribers.all()
>>> api.subscribers.all(stype='active')
>>> api.subscribers.unsubscribed()
>>> api.subscribers.bounced()
>>> api.subscribers.junk()
>>> api.subscribers.unconfirmed()

Get one subscriber

>>> api.subscribers.get(email='')
>>> api.subscribers.get(id=1343965485)



subscribers groups

>>> api.subscribers.groups(id=1343965485)

subscribers activity

>>> api.subscribers.activity(id='1343965485')

Create subscriber

>>> data = {'name': 'John',
            'email': '',
            '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 is not documented in the official API.

>>> api.subscribers.count()


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

>>> api.groups.add_subscribers(group_id=12345, subscribers_data=[{"email": "", "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

>>> api.groups.add_single_subscriber(group_id=12345, subscriber_data={"email": "", "name": "John Wick" ...}, autoresponders=False, resubscribe=False, as_json=False)

Unlike the method above, this add only one subscriber to a group. The subscriber_data argument accepts all subscriber attributes. Check available attributes on

Delete one subscriber from a Group

>>> api.groups.delete_subscriber(group_id=12345, subscriber_id=54321)


Get list of Segments

>>> api.segments.all()

Get count of Segments

>>> api.segments.count()


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)


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)


# Get some info or stats
>>> api.account.stats()
>>> api.account.double_optin()
# Set up the double_optin
>>> api.account.set_double_optin(True)


>>> batch_requests = {"requests": [{"method":"GET",
...                                 "path": "/api/v2/groups"
...                                 },
...                                 {"method":"POST",
...                                  "path": "/api/v2/groups",
...                                  "body": {"name": "New group"}
...                                 }
...                                 ]
...                    }
>>> api.batch(batch_requests)


  • Step 1: Install pytest
  pip install pytest
  • Step 2: Run the tests
  pytest -svv mailerlite


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!


Project under 3-clause BSD license, more informations here

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for mailerlite-api-python, version 0.5.0
Filename, size File type Python version Upload date Hashes
Filename, size mailerlite_api_python-0.5.0-py3-none-any.whl (29.4 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size mailerlite-api-python-0.5.0.tar.gz (43.4 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page