A reference guide for building AI agents: every method, how to authenticate, and the permissions each one needs.
The MailerLite API is how an app or AI agent works with a MailerLite account: adding or updating subscribers, sorting them into groups, building segments, and creating and scheduling email campaigns. Access is granted through an account-level API token, which carries no per-endpoint scopes, so one token can reach every subscriber, campaign, and webhook in the account. A state change, like a subscriber being created or a campaign being sent, can be pushed to a registered webhook.
How an app or AI agent connects to MailerLite determines what it can reach. There is a route for making calls, a route for receiving events, and a hosted server that exposes MailerLite tools to agents, and each is governed by the credential behind it.
The REST API takes and returns JSON, with Content-Type and Accept set to application/json, at https://connect.mailerlite.com/api. A call authenticates with an account-level API token sent as a Bearer token. Lists page with a cursor and a limit, and an X-Version header can pin a dated snapshot of the API.
A hosted Model Context Protocol server at https://mcp.mailerlite.com/mcp exposes MailerLite tools to AI agents and LLM clients, in beta since July 2025. It is cloud-based with no API key handling on the client side, authenticating through an OAuth login when a client connects. Tools cover subscribers, campaigns, groups, segments, automations, forms, and webhooks.
MailerLite POSTs an event payload to an HTTPS URL registered through the webhooks API or the dashboard, for events like subscriber.created or campaign.sent. Delivery is only attempted for active accounts, and a non-2XX response is retried three more times with 10, 100, and 1000 second delays.
MailerLite authenticates with a single account-level API token, generated in the dashboard under Integrations and shown only once at creation. It is sent as a Bearer token in the Authorization header. The token carries no granular per-endpoint scopes, so it can call every method and reach every subscriber in the account. The token is bound to the user who created it and stops working if that user is removed.
The hosted MCP server connects through an OAuth login in the AI client, rather than a pasted API token. The login authorizes the client to act on the connected MailerLite account. As with the token, this is account-level access, not a per-tool scope set.
The MailerLite API is split into areas an agent can act on, like subscribers, groups, fields, segments, campaigns, automations, and forms. Each area has its own methods, and writes in some areas send email to real contacts or remove subscriber data.
Methods for working with subscribers, the contacts on a mailing list.
Methods for working with groups and group membership.
Methods for working with custom fields on subscribers.
Methods for working with segments, the saved filters over subscribers.
Methods for working with email campaigns.
Methods for viewing automations and the subscribers flowing through them.
Methods for working with signup forms and their subscribers.
Methods for registering and managing event subscriptions.
Filter by method, access, or permission, or search any path. Select a row for version detail, rate limits, the related webhook event, and the source.
| Method | Endpoint | What it does | Access | Permission | Version | |
|---|---|---|---|---|---|---|
SubscribersMethods for working with subscribers, the contacts on a mailing list.8 | ||||||
| GET | /api/subscribers | List subscribers in the account, optionally filtered by status. | read | API token | Current | |
Read-only. The token is account-level, so it returns every subscriber in the account. Acts onsubscriber Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /api/subscribers/:id | Retrieve a single subscriber by id or by email address. | read | API token | Current | |
Read-only. Acts onsubscriber Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /api/subscribers | Create a subscriber, or update one if the email already exists (upsert). | write | API token | Current | |
Creates a new subscriber or updates an existing one matched by email. A batch of only these calls counts against the tighter import limit. Acts onsubscriber Permission (capability) API tokenVersionAvailable since the API’s base version Webhook event subscriber.createdRate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| PUT | /api/subscribers/:id | Update an existing subscriber's fields, groups, or status. | write | API token | Current | |
A core write to one subscriber. Acts onsubscriber Permission (capability) API tokenVersionAvailable since the API’s base version Webhook event subscriber.updatedRate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| DELETE | /api/subscribers/:id | Remove a subscriber from the account, keeping their data for possible re-add. | write | API token | Current | |
Deletes the subscriber record but retains the underlying data, unlike forget. Acts onsubscriber Permission (capability) API tokenVersionAvailable since the API’s base version Webhook event subscriber.deletedRate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /api/subscribers/:id/forget | Start permanent deletion of a subscriber and all their data (GDPR forget). | write | API token | Current | |
Irreversible. All of the subscriber's information is completely deleted after 30 days. Acts onsubscriber Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /api/subscribers/:id/activity-log | Retrieve a subscriber's engagement history (opens, clicks, and more). | read | API token | Current | |
Read-only. Acts onsubscriber Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /api/subscribers/import | Bulk import subscribers asynchronously, returning an import job to poll. | write | API token | Current | |
Counts against the import limit of 5 requests per minute, separate from the general limit. Acts onsubscriber Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limit5 requests/min (import limit) SourceOfficial documentation ↗ | ||||||
GroupsMethods for working with groups and group membership.7 | ||||||
| GET | /api/groups | List all groups in the account. | read | API token | Current | |
Read-only. Acts ongroup Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /api/groups | Create a new group. | write | API token | Current | |
A core write. Acts ongroup Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| PUT | /api/groups/:id | Rename or update a group. | write | API token | Current | |
A core write. Acts ongroup Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| DELETE | /api/groups/:id | Delete a group (subscribers themselves are not deleted). | write | API token | Current | |
Removes the group but leaves its subscribers in the account. Acts ongroup Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /api/groups/:id/subscribers | List the subscribers that belong to a group. | read | API token | Current | |
Read-only. Acts onsubscriber Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /api/subscribers/:id/groups/:group_id | Assign a subscriber to a group. | write | API token | Current | |
Adds membership; the subscriber starts receiving anything sent to that group. Acts ongroup Permission (capability) API tokenVersionAvailable since the API’s base version Webhook event subscriber.added_to_groupRate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| DELETE | /api/subscribers/:id/groups/:group_id | Remove a subscriber from a group. | write | API token | Current | |
Removes membership; the subscriber is not deleted. Acts ongroup Permission (capability) API tokenVersionAvailable since the API’s base version Webhook event subscriber.removed_from_groupRate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
FieldsMethods for working with custom fields on subscribers.4 | ||||||
| GET | /api/fields | List all custom fields defined in the account. | read | API token | Current | |
Read-only. Acts onfield Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /api/fields | Create a custom field of type text, number, or date. | write | API token | Current | |
A field is shared across all subscribers in the account. Acts onfield Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| PUT | /api/fields/:id | Rename or update a custom field. | write | API token | Current | |
A core write affecting the field across the account. Acts onfield Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| DELETE | /api/fields/:id | Delete a custom field. | write | API token | Current | |
Removes the field and its values from every subscriber. Acts onfield Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
SegmentsMethods for working with segments, the saved filters over subscribers.4 | ||||||
| GET | /api/segments | List all segments in the account. | read | API token | Current | |
Read-only. An account holds at most 250 segments. Acts onsegment Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /api/segments/:id/subscribers | List the subscribers that match a segment. | read | API token | Current | |
Read-only; supports filtering by status and cursor-based pagination. Acts onsubscriber Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| PUT | /api/segments/:id | Rename or update a segment. | write | API token | Current | |
A core write. Acts onsegment Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| DELETE | /api/segments/:id | Delete a segment (its subscribers are not deleted). | write | API token | Current | |
Removes the saved filter, not the underlying subscribers. Acts onsegment Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
CampaignsMethods for working with email campaigns.8 | ||||||
| GET | /api/campaigns | List campaigns in the account, filterable by status. | read | API token | Current | |
Read-only. Acts oncampaign Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /api/campaigns/:id | Retrieve a single campaign. | read | API token | Current | |
Read-only. Acts oncampaign Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /api/campaigns | Create a draft campaign. | write | API token | Current | |
Creates a draft; no email is sent until the campaign is scheduled. Acts oncampaign Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| PUT | /api/campaigns/:id | Update a draft campaign's content or settings. | write | API token | Current | |
A core write to a draft campaign. Acts oncampaign Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /api/campaigns/:id/schedule | Schedule a campaign to send immediately or at a set time. | write | API token | Current | |
This sends email to the campaign's recipients at the scheduled time. Acts oncampaign Permission (capability) API tokenVersionAvailable since the API’s base version Webhook event campaign.sentRate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /api/campaigns/:id/cancel | Cancel a scheduled campaign before it sends. | write | API token | Current | |
Returns the campaign to draft; only works before it has sent. Acts oncampaign Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| DELETE | /api/campaigns/:id | Delete a campaign. | write | API token | Current | |
A core write removing the campaign. Acts oncampaign Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /api/campaigns/:id/reports/subscriber-activity | Retrieve per-subscriber activity for a campaign (opens, clicks). | read | API token | Current | |
Read-only. Acts oncampaign Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
AutomationsMethods for viewing automations and the subscribers flowing through them.3 | ||||||
| GET | /api/automations | List automations and their stats. | read | API token | Current | |
Read-only; the API does not create or edit automations. Acts onautomation Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /api/automations/:id | Retrieve a single automation. | read | API token | Current | |
Read-only. Acts onautomation Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /api/automations/:id/activity | List the subscriber activity flowing through an automation. | read | API token | Current | |
Read-only. Acts onautomation Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
FormsMethods for working with signup forms and their subscribers.5 | ||||||
| GET | /api/forms/:type | List forms of a given type: popup, embedded, or promotion. | read | API token | Current | |
Read-only. Type must be popup, embedded, or promotion. Acts onform Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /api/forms/:id | Retrieve a single form. | read | API token | Current | |
Read-only. Acts onform Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| PUT | /api/forms/:id | Rename or update a form. | write | API token | Current | |
A core write. Acts onform Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| DELETE | /api/forms/:id | Delete a form. | write | API token | Current | |
Removes the form; its past signups remain as subscribers. Acts onform Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /api/forms/:id/subscribers | List the subscribers who signed up through a form. | read | API token | Current | |
Read-only; supports filtering by status and cursor-based pagination. Acts onsubscriber Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
WebhooksMethods for registering and managing event subscriptions.5 | ||||||
| GET | /api/webhooks | List the webhooks registered for the account. | read | API token | Current | |
Read-only. Acts onwebhook Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /api/webhooks/:id | Retrieve a single webhook. | read | API token | Current | |
Read-only. Acts onwebhook Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /api/webhooks | Register a webhook for one or more account events. | write | API token | Current | |
Sets where chosen events, like subscriber.created, are delivered. Acts onwebhook Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| PUT | /api/webhooks/:id | Update a webhook's events, target URL, or enabled state. | write | API token | Current | |
A core write. Acts onwebhook Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| DELETE | /api/webhooks/:id | Delete a webhook so its events stop being delivered. | write | API token | Current | |
A core write. Acts onwebhook Permission (capability) API tokenVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
MailerLite can notify an app when something happens in an account, like a subscriber being created or a campaign being sent. It POSTs a payload describing what changed, so an integration learns about activity without polling.
| Event | What it signals | Triggered by |
|---|---|---|
subscriber.created | A new subscriber was added to the account. | /api/subscribers |
subscriber.updated | An existing subscriber's details changed. | /api/subscribers/:id |
subscriber.unsubscribed | A subscriber unsubscribed from the account. | /api/subscribers/:id |
subscriber.added_to_group | A subscriber was assigned to a group. | /api/subscribers/:id/groups/:group_id |
subscriber.removed_from_group | A subscriber was removed from a group. | /api/subscribers/:id/groups/:group_id |
subscriber.bounced | A message to a subscriber bounced. | /api/campaigns/:id/schedule |
subscriber.deleted | A subscriber was removed from the account. | /api/subscribers/:id |
campaign.sent | A campaign finished sending to its recipients. | /api/campaigns/:id/schedule |
MailerLite limits how fast an app can call, by a request rate measured per minute across the account, with a separate, tighter limit on subscriber imports.
MailerLite meters requests by a per-minute rate across the account, not by a per-method cost. The general limit is 120 requests per minute. Subscriber imports are limited more tightly, to 5 requests per minute, and this also covers a batch made up only of subscriber create calls. Going over either limit returns HTTP 429 with the message Too Many Attempts and a Retry-After header. The response also carries X-RateLimit-Limit and X-RateLimit-Remaining headers so a caller can pace itself.
List endpoints page with a cursor. A limit parameter sets the page size, defaulting to 25, and the response body returns next_cursor and prev_cursor values to move forward and back. Some list endpoints, like segments, also accept page and limit parameters.
An account holds at most 250 segments. The subscriber list and other large collections are walked through the cursor rather than fetched at once. The import endpoint is the supported path for adding subscribers in bulk.
The status codes an agent should handle, and what to do about each.
| Status | Code | Meaning | What to do |
|---|---|---|---|
| 401 | Unauthenticated | No valid API token was provided. The body reads "Unauthenticated." | Send a valid token in the Authorization header as Bearer, and rotate it if it has been removed or compromised. |
| 404 | Not Found | The requested resource does not exist, or is not in this account. | Verify the id and that it belongs to the account behind the token. |
| 422 | Unprocessable Entity | Validation failed. The body carries a message and an errors object mapping each field to its error messages. | Read the errors object, fix the named fields, and resend. |
| 429 | Too Many Attempts | The rate limit was exceeded, either the 120 per minute general limit or the tighter 5 per minute import limit. | Back off until the Retry-After header's window passes, then retry, and smooth the request rate. |
MailerLite runs a single, continuously updated API for accounts created from March 2022 onward, with no version segment in the path. A request can pin a dated snapshot with a version header.
Accounts created from March 2022 onward use a single, continuously updated API with no version segment in the path, at https://connect.mailerlite.com/api. A request can pin a dated snapshot with the X-Version header. The older v1 and v2 APIs serve only legacy MailerLite Classic accounts and will eventually be retired.
MailerLite Labs released a hosted Model Context Protocol server in beta, at https://mcp.mailerlite.com/mcp, letting AI tools connect to a MailerLite account through an OAuth login with no API key handling on the client side.
MailerLite released the new version of MailerLite and its new API, at developers.mailerlite.com, alongside the redesigned product. API v1 and v2 were left to serve only Classic accounts created before this date.
Pin a dated snapshot with the X-Version header, or track the current API.
MailerLite API docs ↗Bollard AI sits between a team's AI agents and MailerLite. Grant each agent exactly the access it needs, read or write, area by area, and every call is checked and logged.