Skip to content

Control API

The daemon exposes a localhost control API that the desktop app uses to manage the system. It’s also scriptable, so you can automate Lattis without the GUI. These endpoints live alongside the Public API on 127.0.0.1:5288.

The main endpoints:

Method & pathPurpose
GET /control/statusFull daemon snapshot.
POST /control/local/probeProbe a local server before adding it.
POST /control/remote/orderSet provider/account priority.
POST /control/remote/{provider}/account/{account_id}/keyStore an API key on an account.
POST /control/remote/{provider}/account/{account_id}/connectBegin an OAuth connection for an account.
POST /control/remote/{provider}/completeFinish a paste-code OAuth flow.
POST /control/remote/{provider}/account/{account_id}/disconnectDisconnect an account.
POST /control/shutdownStop the daemon.
Terminal window
# Snapshot of everything: models, providers, usage
curl http://127.0.0.1:5288/control/status
# Stop the daemon
curl -X POST http://127.0.0.1:5288/control/shutdown

{provider} is a provider id such as anthropic or openai. See Cloud Providers for the full connection flows, and Headless & Remote Hosts for driving these endpoints on a machine with no GUI.

The key endpoint also accepts an Anthropic subscription token from claude setup-token (sk-ant-oat…). Lattis recognises the prefix and stores it as a subscription credential rather than an API key, since the two are sent upstream differently.

Like the public API, the control API is unauthenticated on a loopback bind. Keep it bound to 127.0.0.1; a non-loopback bind is refused unless an auth token is configured.