Quickstart¶
Five minutes from zero to a run event on your dashboard.
1. Create an API key¶
In LumaTrack, go to Settings, API keys and create a key. It is shown once, at creation; only a hash is stored. Keys are scoped to your organization, so everything you send lands in your org and nowhere else.
export LUMATRACK_URL="https://your-lumatrack-host"
export LUMATRACK_KEY="lmt_..."
2. Create an automation (or pick one)¶
Every run event names the automation it belongs to by slug. List what you already have:
curl -s "$LUMATRACK_URL/api/v1/automations" \
-H "Authorization: Bearer $LUMATRACK_KEY"
Or create one. The numbers are the manual baseline: what the task costs a human, and what the automation costs to build and run.
curl -s -X POST "$LUMATRACK_URL/api/v1/automations" \
-H "Authorization: Bearer $LUMATRACK_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "OS patching",
"status": "active",
"manual_minutes": 45,
"oversight_minutes": 5,
"build_cost": 6000,
"monthly_cost": 50,
"run_cost": 0.02,
"expected_runs_per_month": 120
}'
The response includes the slug (here: os-patching).
3. Send a run¶
curl -s -X POST "$LUMATRACK_URL/api/v1/runs" \
-H "Authorization: Bearer $LUMATRACK_KEY" \
-H "Content-Type: application/json" \
-d '{
"automation": "os-patching",
"status": "success",
"duration_seconds": 142,
"source": "ansible",
"external_id": "tower-job-99412"
}'
A 201 means recorded. Send the same external_id again and you get 200
with "deduplicated": true, which is why you should always pass one: your
retries become harmless.
Report failures too, with "status": "failure". Failed runs cost money and
save nothing, and the ledger prices that honestly. A tracker that only ever
hears about successes is flattering itself.
4. See the value¶
Open the dashboard, or read the same numbers over the API:
curl -s "$LUMATRACK_URL/api/v1/summary" \
-H "Authorization: Bearer $LUMATRACK_KEY"
{
"organization": "Acme Industries",
"hours_saved": 812.5,
"net_savings": 48210.33,
"roi_pct": 341.2,
"fte_years": 0.41,
"cost_per_completed_run": 1.87,
"...": "..."
}
Next steps¶
- Hook your tools up for good: n8n, Python, or anything that speaks HTTP.
- Already have months of history in your automation platform? Backfill it so the trend lines start with the truth.
- Skim Concepts so workspaces, savings classes, and frozen months make sense when you meet them.