Skip to content

LumaTrack developer documentation

LumaTrack is the system of record for what your automation is actually worth. You tell it what each automation replaces (the manual baseline) and report every execution; it prices the runs, subtracts the costs, and turns the result into dashboards, analytics, and CFO-ready reports.

Integrating means one thing: send a small JSON event every time an automation runs. Everything else (value math, freshness tracking, period close, reporting) happens on our side.

curl -X POST https://your-lumatrack-host/api/v1/runs \
  -H "Authorization: Bearer lmt_..." \
  -H "Content-Type: application/json" \
  -d '{"automation": "os-patching", "status": "success", "duration_seconds": 142}'

Where to start

If you want to... Read
Send your first run event in five minutes Quickstart
Understand automations, runs, workspaces, and periods Concepts
Wire up n8n workflows n8n integration
Instrument Python scripts, agents, or LangChain Python integration
Report from Ansible, GitHub Actions, PowerShell, Go, C#, or Java Any platform over HTTP
Import months of historical runs Backfill
Browse every endpoint API reference
Manage clients as an MSP MSP guide

The API in one paragraph

Base URL https://your-lumatrack-host/api/v1/, JSON in and out, authenticated with an organization-scoped bearer key from Settings, API keys. The OpenAPI spec is generated from the code, so it is always current: interactive Swagger UI at /api/docs/, raw spec at /api/openapi.yaml.

Three promises the ingest API keeps

  1. Nothing is silently dropped. Events over your plan's monthly cap are stored and flagged held, excluded from value math until you upgrade or the month resets. Only past 3x the cap are requests refused, loudly, with a durable record.
  2. Retries are safe. Pass external_id (your system's run id) and a replay returns the original run with deduplicated: true.
  3. Closed months stay closed. Once a month is frozen, its numbers never move. Late evidence lands in the current period instead.