Automation reports
Read run counts, A/B test stats, subscriber lists, orders and monthly totals for an automation.
These endpoints report on how an automation is performing: totals for the whole automation, counts per step and per trigger, A/B test results, and the individual subscribers and orders behind them.
If the automation was deleted, these endpoints return 410 Gone.
Totals
The monthly-totals endpoints add up every email an automation sends. email gives engagement and deliverability (sends, opens, clicks, unsubscribes, spam complaints, bounces and their rates), while ecommerce gives orders, revenue, conversion rate and the automation's best performing email. Both cover the automation's whole history unless you send start_date and end_date together, as YYYY-MM-DD; both days are included.
Run counts
The run-count endpoints answer "where is everybody?". For each step, or each trigger, they return how many subscribers are queued and how many have been through. Request one step or trigger by ID, or all of them at once.
Subscribers on a step or trigger
The subscriber endpoints list the people behind those counts. status is required:
status | Returns |
|---|---|
queued | Subscribers still waiting at that step, or in a run the trigger started |
completed | Subscribers that have been through |
Results are newest first. Sort with sort=date or sort=email, prefixed with - to reverse. filter[search] matches one exact email address, and filter[date_from] / filter[date_to] narrow by day, as YYYY-MM-DD.
Orders
The order-activity endpoint lists the individual orders attributed to an automation's emails. time_frame is required. Use custom together with time_frame_start and time_frame_end for your own dates, and ecommerce_shop_id to narrow it to one connected shop.
Get automation step run counts
If you want to get the run counts for every step of an automation use this GET request
GET https://connect.mailerlite.com/api/automations/{automation_id}/steps/run-countsReturns, for each step, how many subscribers are queued at it (in_queue_step_runs) and how many have been through it (completed_step_runs).
Response
Response code: 200 OK{
"data": [
{
"step_id": "203114224673622808",
"completed_step_runs": 0,
"in_queue_step_runs": 0
},
{
"step_id": "203114227995511577",
"completed_step_runs": 0,
"in_queue_step_runs": 0
},
{
"step_id": "203114243556379418",
"completed_step_runs": 0,
"in_queue_step_runs": 0
},
{
"step_id": "203114244338617115",
"completed_step_runs": 0,
"in_queue_step_runs": 0
},
{
"step_id": "203114245168040732",
"completed_step_runs": 0,
"in_queue_step_runs": 0
}
]
}Get run counts for an automation step
If you want to get the run counts for one step of an automation use this GET request
GET https://connect.mailerlite.com/api/automations/{automation_id}/steps/run-counts/{step_id}Returns how many subscribers are queued at a single step and how many have been through it.
Response
Response code: 200 OK{
"data": {
"step_id": "203114224673622808",
"completed_step_runs": 0,
"in_queue_step_runs": 0
}
}Get automation trigger run counts
If you want to get the run counts for every trigger of an automation use this GET request
GET https://connect.mailerlite.com/api/automations/{automation_id}/triggers/run-countsReturns, for each trigger, how many subscribers it currently has queued and how many it has taken all the way through the workflow. manual_runs counts the runs of subscribers added to the automation by hand, and is null if nobody was ever added that way. The counts can lag a few minutes behind.
Response
Response code: 200 OK{
"data": {
"triggers": [
{
"id": "203114222968636621",
"completed_runs": 0,
"queued_runs": 0
}
],
"manual_runs": {
"in_progress_runs": 0,
"completed_runs": 0
}
}
}Get run counts for an automation trigger
If you want to get the run counts for one trigger of an automation use this GET request
GET https://connect.mailerlite.com/api/automations/{automation_id}/triggers/run-counts/{trigger_id}Returns how many subscribers a single trigger currently has queued and how many it has taken all the way through the workflow.
Response
Response code: 200 OK{
"data": {
"completed_runs": 0,
"queued_runs": 0
}
}List automation A/B test stats
If you want to get the results of every A/B test step in an automation use this GET request
GET https://connect.mailerlite.com/api/automations/{automation_id}/ab-steps-statsReturns every abtest step with its per-path results: how much traffic each path took, how its email performed, and which path was declared the winner.
Response
Response code: 200 OK{
"data": [
{
"step_id": "203114243556379418",
"name": "Subject test",
"ab_test_winner": null,
"parent_id": "203114227995511577",
"can_select_winner": false,
"a_path_step_id": "203114244338617115",
"b_path_step_id": "203114245168040732",
"c_path_step_id": null,
"split_percentages": [
{
"label": "A",
"path": "a_path",
"value": 50
},
{
"label": "B",
"path": "b_path",
"value": 50
}
],
"stats": {
"a_path": {
"subscribers": 0,
"sent": 0,
"opens": 0,
"clicks": 0,
"open_rate": {
"float": 0,
"string": "0%"
},
"click_rate": {
"float": 0,
"string": "0%"
},
"click_to_open_rate": {
"float": 0,
"string": "0%"
}
},
"b_path": {
"subscribers": 0,
"sent": 0,
"opens": 0,
"clicks": 0,
"open_rate": {
"float": 0,
"string": "0%"
},
"click_rate": {
"float": 0,
"string": "0%"
},
"click_to_open_rate": {
"float": 0,
"string": "0%"
}
}
}
}
]
}Get automation A/B test stats
If you want to get the results of one A/B test step use this GET request
GET https://connect.mailerlite.com/api/automations/{automation_id}/ab-steps-stats/{step_id}Returns the per-path results of a single abtest step: how much traffic each path took, how its email performed, and which path was declared the winner.
Response
Response code: 200 OK{
"data": {
"step_id": "203114243556379418",
"name": "Subject test",
"ab_test_winner": null,
"parent_id": "203114227995511577",
"can_select_winner": false,
"a_path_step_id": "203114244338617115",
"b_path_step_id": "203114245168040732",
"c_path_step_id": null,
"split_percentages": [
{
"label": "A",
"path": "a_path",
"value": 50
},
{
"label": "B",
"path": "b_path",
"value": 50
}
],
"stats": {
"a_path": {
"subscribers": 0,
"sent": 0,
"opens": 0,
"clicks": 0,
"open_rate": {
"float": 0,
"string": "0%"
},
"click_rate": {
"float": 0,
"string": "0%"
},
"click_to_open_rate": {
"float": 0,
"string": "0%"
}
},
"b_path": {
"subscribers": 0,
"sent": 0,
"opens": 0,
"clicks": 0,
"open_rate": {
"float": 0,
"string": "0%"
},
"click_rate": {
"float": 0,
"string": "0%"
},
"click_to_open_rate": {
"float": 0,
"string": "0%"
}
}
}
}
}List subscribers on an automation step
If you want to list the subscribers at one step of an automation use this GET request
GET https://connect.mailerlite.com/api/automations/{automation_id}/activity/steps/{step_id}/subscribersReturns a paginated list of the subscribers at one step, with the date each of them reached it. status chooses between subscribers queued at the step and those who have completed it.
Request parameters
| Parameter | Type | Required | Limitations |
|---|---|---|---|
| status | string | yes | Must be one of queued (still waiting) or completed (have been through) |
| limit | integer | no | Number of subscribers per page. Between 1 and 1000. Defaults to 15 |
| page | integer | no | Page number to return. Counting starts from 1 |
| sort | string | no | date or email, prefixed with - to reverse it. Defaults to -date |
| filter[date_from] | string | no | Only subscribers dated on or after this day, as YYYY-MM-DD |
| filter[date_to] | string | no | Only subscribers dated on or before this day, as YYYY-MM-DD |
| filter[search] | string | no | Only the subscriber with this exact email address |
| filter[id] | string | no | Only these rows, by the id field this endpoint returns. Accepts an array or a comma-separated list |
Response
Response code: 200 OK{
"data": [
{
"id": "203114372457827102",
"subscriber": {
"id": "203114218006776582",
"email": "ana@example.com"
},
"date": "2026-11-03 11:22:40"
},
{
"id": "203114372636085026",
"subscriber": {
"id": "203114219056401164",
"email": "ben@example.com"
},
"date": "2026-11-03 11:22:40"
}
],
"links": {
"first": "https://connect.mailerlite.com/api/automations/203114220633457868/activity/steps/203114224673622808/subscribers?page=1",
"last": "https://connect.mailerlite.com/api/automations/203114220633457868/activity/steps/203114224673622808/subscribers?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "https://connect.mailerlite.com/api/automations/203114220633457868/activity/steps/203114224673622808/subscribers?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "https://connect.mailerlite.com/api/automations/203114220633457868/activity/steps/203114224673622808/subscribers",
"per_page": 15,
"to": 2,
"total": 2
}
}List subscribers on an automation trigger
If you want to list the subscribers a trigger brought into an automation use this GET request
GET https://connect.mailerlite.com/api/automations/{automation_id}/activity/triggers/{trigger_id}/subscribersReturns a paginated list of the subscribers a single trigger brought into the automation. queued returns the runs it started that are still in progress, dated by when they entered. completed returns the runs that have finished, dated by when they finished.
Request parameters
| Parameter | Type | Required | Limitations |
|---|---|---|---|
| status | string | yes | Must be one of queued (still waiting) or completed (have been through) |
| limit | integer | no | Number of subscribers per page. Between 1 and 1000. Defaults to 15 |
| page | integer | no | Page number to return. Counting starts from 1 |
| sort | string | no | date or email, prefixed with - to reverse it. Defaults to -date |
| filter[date_from] | string | no | Only subscribers dated on or after this day, as YYYY-MM-DD |
| filter[date_to] | string | no | Only subscribers dated on or before this day, as YYYY-MM-DD |
| filter[search] | string | no | Only the subscriber with this exact email address |
| filter[id] | string | no | Only these rows, by the id field this endpoint returns. Accepts an array or a comma-separated list |
Response
Response code: 200 OK{
"data": [
{
"id": "203114372457827102",
"subscriber": {
"id": "203114218006776582",
"email": "ana@example.com"
},
"date": "2026-11-03 11:22:40"
}
],
"links": {
"first": "https://connect.mailerlite.com/api/automations/203114220633457868/activity/triggers/203114222968636621/subscribers?page=1",
"last": "https://connect.mailerlite.com/api/automations/203114220633457868/activity/triggers/203114222968636621/subscribers?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": null,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "https://connect.mailerlite.com/api/automations/203114220633457868/activity/triggers/203114222968636621/subscribers?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "https://connect.mailerlite.com/api/automations/203114220633457868/activity/triggers/203114222968636621/subscribers",
"per_page": 15,
"to": null,
"total": 0
}
}List automation orders
If you want to list the orders attributed to an automation's emails use this GET request
GET https://connect.mailerlite.com/api/automations/{automation_id}/order-activityReturns a paginated list of orders, with the subscriber, the order total, the items ordered and the email that earned it.
Request parameters
| Parameter | Type | Required | Limitations |
|---|---|---|---|
| time_frame | string | yes | Must be one of week, month, two_months, three_months, six_months, year, last_year, all_time or custom |
| time_frame_start | string | no | First day of the period. Required when time_frame is custom |
| time_frame_end | string | no | Last day of the period. Required when time_frame is custom |
| ecommerce_shop_id | integer | no | Only orders from this shop, by e-commerce shop ID |
| limit | integer | no | Number of orders per page. Defaults to 10, maximum 100 |
| page | integer | no | Page number to return. Counting starts from 1 |
Response
Response code: 200 OK{
"data": [
{
"subscriber": {
"email": "ana@example.com",
"id": "203114218006776582"
},
"total": 59.9,
"updated_at": "2026-11-03 11:22:40",
"order": "2 X Running socks, 1 X Water bottle",
"email": {
"id": "203114224708224206",
"account_id": "1",
"emailable_id": "203114220633457868",
"emailable_type": "automations",
"type": "builder_html",
"from": "dummy@example.com",
"from_name": "Dummy Testerson",
"reply_to": "dummy@example.com",
"name": "Welcome email",
"subject": "Welcome to the newsletter, {$name}",
"content": "<!DOCTYPE html>\n<html>\n <head>\n <!--{$head_top}--><!--{$head_bottom}-->\n <title>Welcome to the newsletter, {$name}</title>\n </head>\n ...",
"plain_text": "Hello,\n\nYou have received a newsletter from {$account}.\n\n...",
"screenshot_url": null,
"uses_new_builder": false,
"uses_landscape_screenshot": true,
"generate_screenshot_timestamp": "2026-11-03 11:20:56",
"is_building_content": false,
"preview_url": "https://preview.mailerlite.io/emails/1234567890/preview",
"report_preview_url": "https://preview.mailerlite.io/emails/1234567890/preview",
"created_at": "2026-11-03 11:20:19",
"updated_at": "2026-11-03 11:20:56",
"is_designed": true,
"language_id": null,
"language": {
"id": "4",
"shortcode": "en",
"iso639": "en-US",
"name": "English",
"direction": "ltr"
},
"is_winner": false,
"stats": {
"sent": 0,
"opens_count": 0,
"open_rate": {
"float": 0,
"string": "0%"
},
"clicks_count": 0,
"click_rate": {
"float": 0,
"string": "0%"
},
"unsubscribes_count": 0,
"unsubscribe_rate": {
"float": 0,
"string": "0%"
},
"spam_count": 0,
"spam_rate": {
"float": 0,
"string": "0%"
},
"hard_bounces_count": 0,
"hard_bounce_rate": {
"float": 0,
"string": "0%"
},
"soft_bounces_count": 0,
"soft_bounce_rate": {
"float": 0,
"string": "0%"
},
"deliveries_count": 0,
"delivery_rate": {
"float": 0,
"string": "0%"
},
"forwards_count": 0,
"forward_rate": {
"float": 0,
"string": "0%"
},
"social_interactions_count": 0,
"social_interaction_rate": {
"float": 0,
"string": "0%"
},
"click_to_open_rate": {
"float": 0,
"string": "0%"
}
},
"send_after": null,
"track_opens": true,
"uses_survey": false,
"uses_quiz": false,
"preheader": null
}
}
],
"links": {
"first": "https://connect.mailerlite.com/api/automations/203114220633457868/order-activity?page=1",
"last": "https://connect.mailerlite.com/api/automations/203114220633457868/order-activity?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": null,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "https://connect.mailerlite.com/api/automations/203114220633457868/order-activity?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "https://connect.mailerlite.com/api/automations/203114220633457868/order-activity",
"per_page": 10,
"to": null,
"total": 0
}
}Get automation email totals
If you want to get the email totals of an automation use this GET request
GET https://connect.mailerlite.com/api/automations/{automation_id}/monthly-totals/emailReturns engagement and deliverability figures for the automation as a whole, adding up every email it sends. Covers the automation's whole history by default.
Request parameters
| Parameter | Type | Required | Limitations |
|---|---|---|---|
| start_date | string | no | First day to report on, as YYYY-MM-DD. Required together with end_date. Omit both to report on the automation's whole history |
| end_date | string | no | Last day to report on, as YYYY-MM-DD. Included in the period. Required together with start_date |
| shop_id | string | no | Report only on orders from this connected shop, by e-commerce shop ID. Applies to e-commerce figures only |
Response
Response code: 200 OK{
"data": {
"engagement": {
"sent": 0,
"opens_count": 0,
"clicks_count": 0,
"total_opens_count": 0,
"total_clicks_count": 0,
"open_rate": {
"string": "0%"
},
"click_rate": {
"string": "0%"
},
"click_to_open_rate": {
"string": "0%"
},
"forwards_count": 0,
"forward_rate": {
"string": "0%"
},
"social_interactions_count": 0,
"social_interaction_rate": {
"string": "0%"
}
},
"deliverability": {
"sent": 0,
"delivered_count": 0,
"delivered_rate": {
"string": "0%"
},
"hard_bounce_rate": {
"string": "0%"
},
"hard_bounces_count": 0,
"soft_bounces_count": 0,
"soft_bounce_rate": {
"string": "0%"
},
"spam_count": 0,
"spam_rate": {
"string": "0%"
},
"unsubscribes_count": 0,
"unsubscribe_rate": {
"string": "0%"
}
}
}
}Get automation e-commerce totals
If you want to get the e-commerce totals of an automation use this GET request
GET https://connect.mailerlite.com/api/automations/{automation_id}/monthly-totals/ecommerceReturns the orders attributed to the automation as a whole (order count, revenue and conversion rate) together with its best performing email. Covers the automation's whole history by default. Automations that do not track e-commerce return zeros.
Request parameters
| Parameter | Type | Required | Limitations |
|---|---|---|---|
| start_date | string | no | First day to report on, as YYYY-MM-DD. Required together with end_date. Omit both to report on the automation's whole history |
| end_date | string | no | Last day to report on, as YYYY-MM-DD. Included in the period. Required together with start_date |
| shop_id | string | no | Report only on orders from this connected shop, by e-commerce shop ID |
Response
Response code: 200 OK{
"data": {
"ecommerce": {
"orders_count": 0,
"revenue": 0,
"average_order_value": 0,
"conversion_rate": "0%"
},
"best_performing_email": null
}
}