API
There is no public REST API today — no API keys, no personal access tokens, no versioned endpoints to build a client against. This page exists so that’s a fact you learn here, in one sentence, rather than three days into a project.
What to build against instead
The two supported programmatic surfaces cover the most common reasons teams reach for an API:
“I want to start an agent from my systems.” That’s a webhook trigger — an authenticated, per-agent endpoint that starts a run, accepts a JSON payload, and returns the run’s ID and URL.
“I want agents to use my systems.” That’s a custom MCP server — you expose your tools over MCP, Lunen governs and audits the calls. This is the deeper integration of the two: your code defines the tools, their inputs, and their auth, and Lunen’s policy layer decides who may call them and which calls need a human.
About the service API you may have noticed
The dashboard is driven by Lunen’s own service APIs. They are internal: unversioned, authenticated by short-lived session identities rather than issuable keys, and changeable without notice. Nothing prevents you from watching the network tab, but nothing about what you see there is a contract.
When a public API ships, it will be announced in the changelog with its authentication model and versioning policy — that page is the one to watch.