Analytics API
Automation stats
Attributed revenue, cost and engagement of one automation, step by step.
GET /api/v1/stats/automations/{automation_id}Path
| Param | Notes |
|---|---|
automation_id | Automation id, from GET /api/v1/automations or the top.automations of the overview. |
Query
time_range, start_date, end_date, compared_to — see Period.
Request
curl "https://api.getkanal.com/api/v1/stats/automations/77?time_range=month_to_date" \
-H "Authorization: Bearer 8fK2pX9mWq4Ld7Vb3Nc6Ts1Z"Response 200 OK
Same shape as the campaign stats,
plus nodes: one entry per step of the automation.
{
"period": { "from": "2026-11-01", "to": "2026-11-09", "timezone": "Europe/Paris" },
"compared_period": null,
"attribution": { "basis": "delivered", "window_seconds": 432000 },
"performances": { "revenue": { "value": 3020.4, "previous": null, "changePercent": null } },
"engagement": { "delivered": { "value": 940, "previous": null, "percent": 100, "changePercent": null, "urlClicks": null, "replies": null } },
"nodes": [
{
"node_id": "msg-1",
"revenue": 2210.4,
"orders": 31,
"roas": 44.1,
"revenue_per_recipient": 3.4,
"sent": 662,
"delivered": 650,
"read": 512,
"clicked": 140,
"contacts_entered": 671
}
]
}(performances and engagement shortened here.) In nodes, node_id is the
step id in the automation builder; steps that send nothing (waits, conditions)
come back with zeros, and null for roas / revenue_per_recipient. nodes and its figures do not depend on compared_to.
Errors
404 { "error": "Not found" } when the id doesn't exist or belongs to another
account. See Errors for the others.