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:1234.
Endpoints
Section titled “Endpoints”| Method & path | Purpose |
|---|---|
GET /control/status | Full daemon snapshot. |
POST /control/download/{id} | Start a catalogue download. |
POST /control/download/{id}/cancel | Cancel a download. |
POST /control/models | Add a custom model. |
DELETE /control/models/{id} | Delete a downloaded model. |
POST /control/load | Load a model into the router. |
POST /control/unload | Unload a model. |
POST /control/remote/{provider}/key | Set / clear a provider API key. |
POST /control/remote/{provider}/enabled | Toggle the provider’s manual switch. |
POST /control/remote/{provider}/connect | Begin an OAuth connection. |
POST /control/remote/{provider}/complete | Finish a paste-code OAuth flow. |
POST /control/remote/{provider}/disconnect | Disconnect a provider. |
POST /control/shutdown | Stop the daemon. |
Examples
Section titled “Examples”# Snapshot of everything: models, downloads, providers, usagecurl http://127.0.0.1:1234/control/status
# Start and cancel a downloadcurl -X POST http://127.0.0.1:1234/control/download/qwen3-4b-instruct-2507curl -X POST http://127.0.0.1:1234/control/download/qwen3-4b-instruct-2507/cancel
# Load / unload a model into the routercurl -X POST http://127.0.0.1:1234/control/load \ -H 'Content-Type: application/json' -d '{"id":"qwen3-4b-instruct-2507"}'curl -X POST http://127.0.0.1:1234/control/unload \ -H 'Content-Type: application/json' -d '{"id":"qwen3-4b-instruct-2507"}'
# Stop the daemoncurl -X POST http://127.0.0.1:1234/control/shutdown{provider} is anthropic or openai. See Cloud Providers
for the full connection flows.
Like the public API, the control API assumes a loopback bind and is unauthenticated. Keep it bound to
127.0.0.1.