List Automation Runs
GET /automations/:id/runs — list the runs of an automation, with optional status filtering.
/automations/:id/runsLists the runs of an automation, newest first. Filter by one or more statuses with a comma-separated status query parameter. The list is paginated — at most 20 runs come back unless you raise limit, and has_more tells you whether to keep walking with after.
idstringrequiredThe ID of the automation.
statusstringoptionalFilter to one or more run statuses, comma-separated (e.g. status=running,completed). Possible values: running, completed, failed, skipped.
limitintegeroptionalHow many runs to return. An integer between 1 and 100, defaulting to 20 — this endpoint always applies the limit, so an automation with 500 runs returns 20 with has_more: true.
afterstringoptionalCursor: return the runs that follow this run id. See Pagination.
beforestringoptionalCursor: return the runs that precede this run id. Cannot be combined with after.
import { Mailblastr } from 'mailblastr';
const mb = new Mailblastr('mb_xxxxxxxxx');
const { data, error } = await mb.automations.runs('c9b16d4f-ba6c-4e2e-b044-6bf4404e57fd');
console.log({ data, error });import { Mailblastr } from 'mailblastr';
const mb = new Mailblastr('mb_xxxxxxxxx');
const { data, error } = await mb.automations.runs('c9b16d4f-ba6c-4e2e-b044-6bf4404e57fd', { status: running,completed });
console.log({ data, error });A limit outside 1-100 (or a non-integer), or after and before together, returns 422 validation_error. An unknown cursor returns an empty page rather than an error. See Pagination and Errors.
Response
{
"object": "list",
"has_more": false,
"data": [
{
"object": "automation_run",
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"contact_id": "26e2b838-bf6d-4515-b6a7-17525b12b05a",
"contact_email": "jordan@acme.com",
"status": "completed",
"started_at": "2026-10-01T12:00:00.000Z",
"completed_at": "2026-10-01T12:05:00.000Z",
"created_at": "2026-10-01T12:00:00.000Z"
}
]
}