tasks
Submit and drive autonomous agent tasks
Introduction
Host driving contract for the Apollia OS sovereign agent runtime. Stable under /api/v1; breaking changes ship under /api/v2.
a2a
a2a
`POST /api/v1/connections/folders`: add a folder of this machine.
`POST /api/v1/connections/folders`: add a folder of this machine.
`POST /api/v1/connectors/imap/accounts`: verify a mailbox, then store it.
`POST /api/v1/connectors/imap/accounts`: verify a mailbox, then store it.
`POST /api/v1/permissions/rules`: adds a prefix rule for every agent.
`POST /api/v1/permissions/rules`: adds a prefix rule for every agent.
`POST /api/v1/mcp/servers`, Add a new MCP server and persist it to `mcp.db`.
The addition is first submitted to the connection admission; a refusal
`POST /api/v1/onboarding/phase`: moves to the next phase.
`POST /api/v1/onboarding/phase`: moves to the next phase.
agents
agents
Handler for `POST /api/v1/user-inputs/{id}/answer`.
Handler for `POST /api/v1/user-inputs/{id}/answer`.
`POST /api/v1/permissions/proposals/{index}/apply`: stores the proposal as a rule and removes it from the list.
`POST /api/v1/permissions/proposals/{index}/apply`: stores the proposal as
Handler for `POST /api/v1/sessions/:id/plan/approve`.
Handler for `POST /api/v1/sessions/:id/plan/approve`.
artifacts
artifacts
assists
assists
audit
audit
Handler for `POST /api/v1/sessions/:id/authorize`, resolve tool approval.
Handler for `POST /api/v1/sessions/:id/authorize`, resolve tool approval.
`GET /api/v1/batches/accesses`: the sensitive accesses of an agent, those a launch may grant for the duration of a batch.
Reading is never listed: it runs without asking. An access that is not
batches
batches
`POST /api/v1/mcp/bridge/call`: run an exposed item to its end.
`POST /api/v1/mcp/bridge/call`: run an exposed item to its end.
Handler for `DELETE /api/v1/tasks/{id}`.
Cancels a running task. Returns 404 if the task does not exist.
`POST /api/v1/workflow-runs/{id}/cancel`: stop a run.
The step in progress is interrupted; the answer comes once the run has
chat
chat
`POST /api/v1/agent-drafts`: check a proposed sheet, write nothing.
`POST /api/v1/agent-drafts`: check a proposed sheet, write nothing.
check_engines
check_engines
`GET /api/v1/onboarding/finalized`: whether the onboarding agent recorded its completion.
`GET /api/v1/onboarding/finalized`: whether the onboarding agent recorded
`DELETE /api/v1/llm/agents/{agent}/model`: remove the assignment; the agent goes back to the model its package declares, or to the default.
`DELETE /api/v1/llm/agents/{agent}/model`: remove the assignment; the agent
`POST /api/v1/memory/wipe`: removes every memory database of the daemon.
`POST /api/v1/memory/wipe`: removes every memory database of the daemon.
`POST /api/v1/logs/clear`: removes the daemon's logs directory.
`POST /api/v1/logs/clear`: removes the daemon's logs directory.
`POST /api/v1/memory/namespaces/{namespace}/clear`: removes every entry of one kind, or of all kinds.
`POST /api/v1/memory/namespaces/{namespace}/clear`: removes every entry of
`POST /api/v1/plan-cache/clear`, remove all cached plans.
Returns the number of entries that were removed. Returns `503` when
`DELETE /api/v1/server/logs`: empties the logs of the compatible server. The audit journal is not touched.
`DELETE /api/v1/server/logs`: empties the logs of the compatible server.
Handler for `DELETE /api/v1/sessions/:id`, close session.
Handler for `DELETE /api/v1/sessions/:id`, close session.
`POST /api/v1/assists/coaching`: examples to try a connector just added.
`POST /api/v1/assists/coaching`: examples to try a connector just added.
companion
companion
`POST /api/v1/connectors/oauth/complete`: exchange the code the provider returned and store the account's token.
`POST /api/v1/connectors/oauth/complete`: exchange the code the provider
config
config
connections
connections
connectors
connectors
Handler for `POST /api/v1/sessions/{id}/messages/{message_id}/continue`.
`message_id` is the last answer of the session. Its turn runs again with
`POST /api/v1/agent-definitions`: create an agent without code.
`POST /api/v1/agent-definitions`: create an agent without code.
`POST /api/v1/notifications/channels`, create a notification channel.
Validates the channel, inserts it into `notifications.db`, then reloads the
Handler for `POST /api/v1/sessions/folders`, create a folder, placed after the existing ones.
Handler for `POST /api/v1/sessions/folders`, create a folder, placed
`POST /api/v1/companion/sessions`: opens a session on the guide.
`POST /api/v1/companion/sessions`: opens a session on the guide.
Handler for `POST /api/v1/llm/backends`.
Creates a new backend. Returns 201 on success, 409 if a default already exists
`POST /api/v1/llm/presets`: create a preset for a model.
`POST /api/v1/llm/presets`: create a preset for a model.
`POST /api/v1/llm/servers`: declare (or replace) a server. The key goes to the secret store; the server's models become routable at once.
`POST /api/v1/llm/servers`: declare (or replace) a server. The key goes to
`POST /api/v1/profiles`: creates a profile with empty fields.
`POST /api/v1/profiles`: creates a profile with empty fields.
`POST /api/v1/server/tokens`: creates a named token and answers its value, the only time it is given.
`POST /api/v1/server/tokens`: creates a named token and answers its value,
Handler for `POST /api/v1/sessions`, create a new chat session.
Handler for `POST /api/v1/sessions`, create a new chat session.
`POST /api/v1/sources`: add a source.
`POST /api/v1/sources`: add a source.
`POST /api/v1/triggers`, create a new trigger definition.
Validates the definition, inserts it into `triggers.db`, reloads the engine,
`POST /api/v1/pending-decisions/decide`: answer one waiting decision.
The answer goes through the call that answers the item where it was born,
`GET /api/v1/config/default`: the default text of the file, the keys the policy fixes written at their value.
`GET /api/v1/config/default`: the default text of the file, the keys the
Handler for `POST /api/v1/a2a/delegate`.
Resolves `skill_id` to an active Worker Agent, submits the task, waits for
`DELETE /api/v1/artifacts/{id}`: removes an artifact; one already gone answers the same.
`DELETE /api/v1/artifacts/{id}`: removes an artifact; one already gone
`DELETE /api/v1/batches/{id}`: removes a batch and its items.
Refused while the batch is active: `running` or `paused`, or stopped or
`DELETE /api/v1/notifications/channels/:id`, delete a channel.
Deletes the channel from `notifications.db`, then reloads the
Handler for `DELETE /api/v1/sessions/folders/{id}`, remove a folder. Its conversations are kept and go back out of any folder.
Handler for `DELETE /api/v1/sessions/folders/{id}`, remove a folder. Its
`DELETE /api/v1/llm/installed-models?path=...`
`DELETE /api/v1/llm/installed-models?path=...`
Handler for `DELETE /api/v1/llm/backends/:name`.
Deletes a backend. Returns 409 if the backend is the current default, 404 if not found.
`DELETE /api/v1/llm/presets/{id}`: delete a preset. An agent that had chosen it goes back to its model's default preset.
`DELETE /api/v1/llm/presets/{id}`: delete a preset. An agent that had
`DELETE /api/v1/llm/servers/{name}`: forget a server and its key.
`DELETE /api/v1/llm/servers/{name}`: forget a server and its key.
`DELETE /api/v1/mcp/servers/:name/secrets/:key`: remove the secret. Removing one that is absent succeeds.
`DELETE /api/v1/mcp/servers/:name/secrets/:key`: remove the secret.
`DELETE /api/v1/memory/namespaces/{namespace}/entries/{entry_id}`: removes one entry, whatever its kind.
`DELETE /api/v1/memory/namespaces/{namespace}/entries/{entry_id}`: removes
Handler for `DELETE /api/v1/sessions/{id}/messages/{message_id}`: remove a message and, for an answer, the tool messages of its turn.
Handler for `DELETE /api/v1/sessions/{id}/messages/{message_id}`: remove a
`DELETE /api/v1/profile/entries/{key}`: removes one entry.
`DELETE /api/v1/profile/entries/{key}`: removes one entry.
`DELETE /api/v1/profiles/{id}/facts/{key}`: forgets a fact of a profile.
`DELETE /api/v1/profiles/{id}/facts/{key}`: forgets a fact of a profile.
`DELETE /api/v1/profiles/{id}`: deletes a profile and its facts.
The conversations that designated it return to the default profile.
`DELETE /api/v1/sources/{id}`: remove a source.
`DELETE /api/v1/sources/{id}`: remove a source.
Handler for `DELETE /api/v1/tasks/{id}/record`.
Handler for `DELETE /api/v1/tasks/{id}/record`.
`DELETE /api/v1/tool-credentials/{tool_name}/{key_name}`: removes one credential. Removing one that is not there is not an error.
`DELETE /api/v1/tool-credentials/{tool_name}/{key_name}`: removes one
`DELETE /api/v1/stt/transcriptions/:id`, delete a transcription by ID.
Returns `204 No Content` on success (even if the ID did not exist).
`DELETE /api/v1/triggers/:id`, delete a trigger definition.
Removes it from `triggers.db`, reloads the engine, and returns `200`.
`GET /api/v1/tools/:name`, return the descriptor for a specific tool.
Returns `200 OK` with the descriptor, `404 Not Found` if the tool is not registered,
`POST /api/v1/triggers/:id/disable`, disable an active trigger.
`POST /api/v1/triggers/:id/disable`, disable an active trigger.
`DELETE /api/v1/connectors/accounts/:provider/:account_id`: forget the account's token. The provider is not notified.
`DELETE /api/v1/connectors/accounts/:provider/:account_id`: forget the
dismiss_engine_installation
dismiss_engine_installation
`POST /api/v1/onboarding/dismiss`: marks the onboarding as skipped.
`POST /api/v1/onboarding/dismiss`: marks the onboarding as skipped.
`DELETE /api/v1/permissions/proposals/{index}`: removes the proposal without storing a rule.
`DELETE /api/v1/permissions/proposals/{index}`: removes the proposal
Handler for `PUT /api/v1/sessions/{id}/messages/{message_id}`: replace the text of an answer, marked edited. No turn is played again.
Handler for `PUT /api/v1/sessions/{id}/messages/{message_id}`: replace the
`POST /api/v1/triggers/:id/enable`, enable a disabled trigger.
`POST /api/v1/triggers/:id/enable`, enable a disabled trigger.
engine_installation_state
engine_installation_state
engines
engines
ensure_node_runtime
ensure_node_runtime
Handler for `POST /api/v1/sessions/{id}/erase`, delete the session and every message it holds.
Handler for `POST /api/v1/sessions/{id}/erase`, delete the session and
Handler for `POST /api/v1/llm/loaded-models/estimate`.
Handler for `POST /api/v1/llm/loaded-models/estimate`.
events
events
`POST /api/v1/agent-definitions/{name}/export`: the agent as a `.apo` package, signed on request.
`POST /api/v1/agent-definitions/{name}/export`: the agent as a `.apo`
`GET /api/v1/audit/export`: the journal as a file, narrowed by the filters of `GET /api/v1/audit/journal`.
Every entry that passes the filters is in the file, newest first: the
`GET /api/v1/batches/{id}/export`: the result of a batch as a file.
One row per item, in source order: the input columns of the item, then
`GET /api/v1/memory/namespaces/{namespace}/export`: every entry of the namespace, in the export format.
`GET /api/v1/memory/namespaces/{namespace}/export`: every entry of the
`POST /api/v1/factory-reset`: removes the daemon's whole data directory.
`POST /api/v1/factory-reset`: removes the daemon's whole data directory.
`POST /api/v1/onboarding/finalize`: records the completion of the conversation without a model turn.
`POST /api/v1/onboarding/finalize`: records the completion of the
`POST /api/v1/triggers/:id/fire`, immediate firing.
`POST /api/v1/triggers/:id/fire`, immediate firing.
`GET /api/v1/sources/folder-kinds`: the kinds offered for a source made on a folder connection.
The code folder is offered only when the developer mode is on. This is
Handler for `POST /api/v1/sessions/:id/fork`, fork a session.
Creates a new child session that copies the parent history up to `up_to_index`
`POST /api/v1/assists/next-steps`: up to three next steps cards, drawn by the daemon's default model or by the heuristic.
`POST /api/v1/assists/next-steps`: up to three next steps cards, drawn by
Handler for `POST /api/v1/sessions/{id}/title/generate`, name the session from its first message with the configured model.
Handler for `POST /api/v1/sessions/{id}/title/generate`, name the session
`GET /api/v1/agent-definitions/{name}`: one agent, resolved.
`GET /api/v1/agent-definitions/{name}`: one agent, resolved.
`GET /api/v1/agent-drafts/offer`: what the draft of an agent may hold.
`GET /api/v1/agent-drafts/offer`: what the draft of an agent may hold.
`GET /api/v1/llm/agents/{agent}/model/fallback`: the last time the agent's model was not available since the runtime started, for its sheet.
`GET /api/v1/llm/agents/{agent}/model/fallback`: the last time the agent's
`GET /api/v1/llm/agents/{agent}/model`: the model the user assigned to an agent.
`GET /api/v1/llm/agents/{agent}/model`: the model the user assigned to an agent.
`GET /api/v1/agent-packages/installed/{name}`: one installed package, its manifest as recorded, its publisher, what it installed by kind, and the automations that would go with it.
`GET /api/v1/agent-packages/installed/{name}`: one installed package, its
Handler for `GET /api/v1/agents/{id}`.
Returns the detail of a single agent including its manifest.
`GET /api/v1/audit/anchor`, the exportable head anchor of the global chain.
Storing this off-machine is the only defense against truncation of the
`GET /api/v1/batches/{id}`: a batch with its items.
`GET /api/v1/batches/{id}`: a batch with its items.
`GET /api/v1/resilience/status/:tool`, single-tool snapshot.
`GET /api/v1/resilience/status/:tool`, single-tool snapshot.
`GET /api/v1/companion/enabled`: whether the companion is on.
`GET /api/v1/companion/enabled`: whether the companion is on.
Handler for `GET /api/v1/sessions/{id}/continuation`: whether the last answer can be continued on the model the next turn runs on, and why not.
Handler for `GET /api/v1/sessions/{id}/continuation`: whether the last
`GET /api/v1/sessions/{id}/stats`: the statistics of one chat conversation.
`GET /api/v1/sessions/{id}/stats`: the statistics of one chat
`GET /api/v1/llm/default-model`: the default model of the machine.
`GET /api/v1/llm/default-model`: the default model of the machine.
Handler for `GET /api/v1/tasks/{id}/delegation-tree`.
A task with no recorded delegation answers its root with no children.
`GET /api/v1/llm/embeddings/default`
`GET /api/v1/llm/embeddings/default`
get_engine_settings
get_engine_settings
`GET /api/v1/notifications/events`, list global events.
`GET /api/v1/notifications/events`, list global events.
`GET /api/v1/observability/timeline`: the global timeline of a window.
`GET /api/v1/observability/timeline`: the global timeline of a window.
`GET /api/v1/governance/state`: whether governance fails closed, and why, and what degrades the journal without refusing anything.
`GET /api/v1/governance/state`: whether governance fails closed, and why,
`GET /api/v1/governance/tools/{name}/config`: the configuration of one tool.
`GET /api/v1/governance/tools/{name}/config`: the configuration of one tool.
`GET /api/v1/llm/hardware`, detect and return the hardware profile.
`GET /api/v1/llm/hardware`, detect and return the hardware profile.
`GET /api/v1/memory/injections/{turn_id}`: the entries an agent recalled during one turn.
`GET /api/v1/memory/injections/{turn_id}`: the entries an agent recalled
Handler for `GET /api/v1/llm/loaded-models/last`.
Handler for `GET /api/v1/llm/loaded-models/last`.
Handler for `GET /api/v1/llm/backends/:name`.
Returns the backend with the given name or 404 if not found.
Handler for `GET /api/v1/llm/costs`.
Aggregates LLM call costs and token usage from `llm_calls.db` over the
Handler for `GET /api/v1/llm/costs/daily`.
Returns LLM costs broken down by day and backend for the requested
Handler for `GET /api/v1/llm/status`.
Returns the list of all configured backends with their availability state.
`GET /api/v1/local-ai/system`: memory, system and accelerator of the machine the daemon runs on.
`GET /api/v1/local-ai/system`: memory, system and accelerator of the
`GET /api/v1/llm/registry/card?id=...&lang=...`
`GET /api/v1/llm/registry/card?id=...&lang=...`
`GET /api/v1/llm/registry/readme?repo=...`
`GET /api/v1/llm/registry/readme?repo=...`
`GET /api/v1/onboarding`: the full state, `welcome` on first launch.
`GET /api/v1/onboarding`: the full state, `welcome` on first launch.
`GET /api/v1/plan-cache/stats`, return aggregate cache statistics.
Returns zeroed counters when the cache is empty. Returns `503` when
Handler for `GET /api/v1/sessions/plan-mode-default`.
Handler for `GET /api/v1/sessions/plan-mode-default`.
`GET /api/v1/profiles/{id}`: one profile, its fields and its facts.
`GET /api/v1/profiles/{id}`: one profile, its fields and its facts.
`GET /api/v1/profile`: every entry of the profile.
`GET /api/v1/profile`: every entry of the profile.
`GET /api/v1/llm/recommendations?limit=...&n_ctx=...&fits_only=...`
The recommendation as the desktop shows it: the ranked list, or the
`GET /api/v1/llm/registry/model/:org/:repo?hf_token=...`
`GET /api/v1/llm/registry/model/:org/:repo?hf_token=...`
`GET /api/v1/mcp/registry/server?name=`: one registry entry, its latest version, read from the same catalogue as the listing.
`GET /api/v1/mcp/registry/server?name=`: one registry entry, its latest
`GET /api/v1/llm/hardware/usage`, measure the machine once.
`GET /api/v1/llm/hardware/usage`, measure the machine once.
`GET /api/v1/mcp/servers/:name`, Get detailed info for a specific MCP server.
Returns `404 Not Found` when no server with the given name is connected.
`GET /api/v1/mcp/servers/:name/raw_config`, Return the persisted launch configuration of a server (command, args, env, transport, …) as stored in `mcp.db`.
The `env` map contains either literal values for non-secret variables or
Handler for `GET /api/v1/sessions/{id}/images/{file}`, an image a user message of the session carries, as its metadata names it.
Handler for `GET /api/v1/sessions/{id}/images/{file}`, an image a user
Handler for `GET /api/v1/sessions/{id}/metrics`, the metrics of a session.
Zero-filled when no exchange has completed yet, as in the embedded desktop.
Handler for `GET /api/v1/sessions/{id}/model-capabilities`, what the model of a session can do.
The model is the one the next message of the session would run on: the
Handler for `GET /api/v1/sessions/{id}/notes`.
Handler for `GET /api/v1/sessions/{id}/notes`.
Handler for `GET /api/v1/sessions/:id/plan`.
Handler for `GET /api/v1/sessions/:id/plan`.
Handler for `GET /api/v1/sessions/{id}/prompt-template`, the prompt template the model of a session receives.
The template of the preset the session chose when that preset carries
Handler for `GET /api/v1/sessions/{id}/settings`.
Handler for `GET /api/v1/sessions/{id}/settings`.
Handler for `GET /api/v1/sessions/:id/todo`, read the session todo list.
Returns 200 with the items (an empty array when the session exists but has
Handler for `GET /api/v1/sessions/{id}/workspace`, the working directory of a session.
Handler for `GET /api/v1/sessions/{id}/workspace`, the working directory of
Handler for `GET /api/v1/sessions/:id`, session detail.
Handler for `GET /api/v1/sessions/:id`, session detail.
`GET /api/v1/stt/config`, return the persisted STT configuration.
Returns `200 OK` with the current [`SttConfigRow`] from `system.db`.
Handler for `GET /api/v1/tasks/{task_id}/sidechains`.
Returns all A2A delegations recorded for the parent task.
`GET /api/v1/tasks/{id}/timeline`: full timeline for a task.
Aggregates data from 4 SQLite sources (hitl.db, plans.db, llm.db, audit_journal.db)
Handler for `GET /api/v1/tasks/{id}/trace`.
200: `TraceResponse` (may be empty if the task has not yet produced any
Handler for `GET /api/v1/tasks/{id}`.
Returns the current status of a task. Returns 404 if the task does not exist.
`GET /api/v1/triggers/:id`, full definition plus runtime status.
`GET /api/v1/triggers/:id`, full definition plus runtime status.
`GET /api/v1/triggers/:id/logs`, firing history from SQLite.
The `?last=N` query parameter controls the number of entries (default: 20).
Handler for `GET /api/v1/sessions/{id}/turns/{turn_id}/llm-calls`.
Handler for `GET /api/v1/sessions/{id}/turns/{turn_id}/llm-calls`.
`GET /api/v1/workflow-runs/{id}`: a run with its steps.
`GET /api/v1/workflow-runs/{id}`: a run with its steps.
`GET /api/v1/workflows/{package}/{workflow}`: a workflow, its steps and the fields of its inputs.
`GET /api/v1/workflows/{package}/{workflow}`: a workflow, its steps and
governance
governance
Axum handler for `POST /webhooks/:id`.
Verifies the request HMAC-SHA256 signature before forwarding the event to
Handler for `GET /api/v1/health`.
Handler for `GET /api/v1/health`.
health
health
import_engines
import_engines
`POST /api/v1/memory/namespaces/{namespace}/import`: writes an export into the namespace.
`POST /api/v1/memory/namespaces/{namespace}/import`: writes an export into
`POST /api/v1/oauth/clients/{provider}/import`: writes the client id and secret of a Google console export.
`POST /api/v1/oauth/clients/{provider}/import`: writes the client id and
`POST /api/v1/agents/:name/messages`, inject a message from the host.
The host deposits a message into an agent's durable inbox. The recipient is
install_engine
install_engine
`POST /api/v1/packages/examples/{name}/install`: install the example.
The example is assembled into a package archive and installed like any
`POST /api/v1/packages/install`: install a package, or update it.
The preview is computed again and its refusal applies: an invalid
Handler for `POST /api/v1/a2a/invoke`.
Invokes a Worker Agent by skill ID via the [`A2AInvoker`], or an agent
`POST /api/v1/batches`: launch an agent on every item of a source.
The items are read and recorded before the answer; they run in the
`POST /api/v1/workflows/{package}/{workflow}/runs`: run a workflow.
The inputs are checked and the run recorded, with its declared steps,
lifecycle
lifecycle
Handler for `GET /api/v1/a2a/agents`.
Returns all agents with `supports_a2a = true` in active or degraded state,
Handler for `GET /api/v1/a2a/skills`.
Returns the flat list of all available A2A skills via the [`A2AInvoker`],
`GET /api/v1/agent-definitions`: every stored agent, resolved.
`GET /api/v1/agent-definitions`: every stored agent, resolved.
`GET /api/v1/agents/:name/messages`, list messages for an agent.
Returns messages from the in-memory mailbox, sorted by `sent_at` descending.
`GET /api/v1/agent-packages/installed`: the installed packages, each with its publisher, the state of its signature and how much it holds.
`GET /api/v1/agent-packages/installed`: the installed packages, each with
Handler for `GET /api/v1/agents`.
Lists registered agents. When `?supports_a2a=true` is present, only agents
Handler for `GET /api/v1/sessions/approval-history`.
Handler for `GET /api/v1/sessions/approval-history`.
`GET /api/v1/sessions/{id}/artifacts`: the artifacts of a session, most recent first.
`GET /api/v1/sessions/{id}/artifacts`: the artifacts of a session, most
`GET /api/v1/audit/journal?limit=N&offset=M`, a page of the chained journal across every run, each entry with its summary.
This is the only read of the journal that does not need a run id up front:
`GET /api/v1/batches`: the batches, newest first.
`GET /api/v1/batches`: the batches, newest first.
`GET /api/v1/resilience/status`, list all known circuit breakers.
`GET /api/v1/resilience/status`, list all known circuit breakers.
`GET /api/v1/mcp/bridge/tools`: the exposed items, as MCP tools.
`GET /api/v1/mcp/bridge/tools`: the exposed items, as MCP tools.
`GET /api/v1/notifications/channels`, list configured channels.
Reads from the SQLite repository. Falls back to `notification_config`
Handler for `GET /api/v1/sessions/folders`, the folders in the order of the list, each with the conversations it holds.
Handler for `GET /api/v1/sessions/folders`, the folders in the order of
`GET /api/v1/connections`: every connection, whatever its kind, with its provenance, its remote attribute and its tools.
`GET /api/v1/connections`: every connection, whatever its kind, with its
`GET /api/v1/connectors/accounts`: every connected account, all providers.
`GET /api/v1/connectors/accounts`: every connected account, all providers.
`GET /api/v1/llm/dictation?language_model_bytes=...`
`GET /api/v1/llm/dictation?language_model_bytes=...`
`GET /api/v1/connectors/drive-folders`: the Drive folder of every connected Google account.
`GET /api/v1/connectors/drive-folders`: the Drive folder of every
`GET /api/v1/llm/embeddings?language_model_bytes=...`
`GET /api/v1/llm/embeddings?language_model_bytes=...`
list_engines
list_engines
`GET /api/v1/packages/examples`: the example packages the binary carries, each with its agents and their mission, the connections it requires (present or missing on this machine) and the installed version when the user installed it. None of them is installed until the user chooses it.
`GET /api/v1/packages/examples`: the example packages the binary carries,
`GET /api/v1/mcp/exposed`: the agents and workflows marked exposed.
`GET /api/v1/mcp/exposed`: the agents and workflows marked exposed.
`GET /api/v1/governance/rules`: the `agent` and `global` permission rules.
`GET /api/v1/governance/rules`: the `agent` and `global` permission rules.
`GET /api/v1/governance/tools`: every native tool with its flag, configuration, credential names and active backend.
`GET /api/v1/governance/tools`: every native tool with its flag,
`GET /api/v1/hooks`, list every registered lifecycle hook handler.
The response is a JSON array of [`HookHandlerSummary`] in declaration order.
`GET /api/v1/connectors/imap/providers`: the providers whose server and port are filled from the address. Reads a table compiled into the runtime; nothing is reached, nothing is stored.
`GET /api/v1/connectors/imap/providers`: the providers whose server and
Handler for `GET /api/v1/agents/installed`.
Handler for `GET /api/v1/agents/installed`.
`GET /api/v1/llm/installed-models`
The installed models, from the model index, each marked when an LLM
Handler for `GET /api/v1/llm/backends`.
Lists all configured backends from `system.db`.
`GET /api/v1/llm/presets`: every preset, or those of one model.
`GET /api/v1/llm/presets`: every preset, or those of one model.
`GET /api/v1/llm/servers/{name}/models`: the models of a declared server, each with the name it routes by.
`GET /api/v1/llm/servers/{name}/models`: the models of a declared server,
`GET /api/v1/llm/servers`: every declared server, without its key.
`GET /api/v1/llm/servers`: every declared server, without its key.
Handler for `GET /api/v1/llm/loaded-models`.
Handler for `GET /api/v1/llm/loaded-models`.
`GET /api/v1/mailbox/messages`: the most recent inter-agent messages.
`GET /api/v1/mailbox/messages`: the most recent inter-agent messages.
`GET /api/v1/memory/namespaces/{namespace}/entries`: every entry of one namespace, newest first.
`GET /api/v1/memory/namespaces/{namespace}/entries`: every entry of one
`GET /api/v1/memory/namespaces`: the memory namespaces, one per file.
`GET /api/v1/memory/namespaces`: the memory namespaces, one per file.
`GET /api/v1/llm/registry/cards?lang=...`
`GET /api/v1/llm/registry/cards?lang=...`
Handler for `GET /api/v1/llm/pins`.
Handler for `GET /api/v1/llm/pins`.
`GET /api/v1/stt/models`, list available model files.
Scans `~/.apollia/models/` for the extensions in
`GET /api/v1/oauth/clients`: the OAuth client of every provider and where each value came from, never a secret.
`GET /api/v1/oauth/clients`: the OAuth client of every provider and where
Handler for `GET /api/v1/approvals/pending`.
Returns all tasks currently waiting for human approval, enriched with
`GET /api/v1/pending-decisions`: every decision waiting for the user.
`GET /api/v1/pending-decisions`: every decision waiting for the user.
Handler for `GET /api/v1/user-inputs`.
Handler for `GET /api/v1/user-inputs`.
Handler for `GET /api/v1/sessions/:id/plan/mutations`, oldest first.
Handler for `GET /api/v1/sessions/:id/plan/mutations`, oldest first.
`GET /api/v1/profiles`: every profile, the default first.
`GET /api/v1/profiles`: every profile, the default first.
`GET /api/v1/permissions/proposals`: the rules the onboarding agent proposed and the user has not answered yet.
`GET /api/v1/permissions/proposals`: the rules the onboarding agent
Handler for `GET /api/v1/sessions/recent`, list recent sessions with first message.
Query param `?limit=N` (default 10, max 50).
`GET /api/v1/mcp/registry`: the servers the MCP registry lists, the latest version of each, in the registry's own shape.
`GET /api/v1/mcp/registry`: the servers the MCP registry lists, the latest
`GET /api/v1/mcp/resources`, List MCP resources aggregated across servers.
Returns the same data as the agent-facing `mcp_resources_list` tool: one
`GET /api/v1/server/tokens`: every token, in use and revoked, oldest first.
`GET /api/v1/server/tokens`: every token, in use and revoked, oldest first.
`GET /api/v1/mcp/servers`, List all connected MCP servers with their status.
Returns an empty array when no MCP configuration is active.
Handler for `GET /api/v1/sessions/:id/children`, list fork children of a session.
Returns a JSON array of [`SessionInfo`] objects, ordered by creation time ascending.
Handler for `GET /api/v1/sessions`, list sessions.
Handler for `GET /api/v1/sessions`, list sessions.
`GET /api/v1/sources`: every source, oldest first.
`GET /api/v1/sources`: every source, oldest first.
Handler for `GET /api/v1/tasks/summaries`.
Handler for `GET /api/v1/tasks/summaries`.
Handler for `GET /api/v1/tasks`.
Returns all known tasks with their agent and status.
`GET /api/v1/tool-credentials`: the stored credentials, values left out.
`GET /api/v1/tool-credentials`: the stored credentials, values left out.
`GET /api/v1/tools`, return all registered tool descriptors.
Returns `200 OK` with the list, even when empty.
`GET /api/v1/stt/transcriptions`, list transcription history.
Supports `?limit=N&offset=N` query parameters for pagination.
Handler for `GET /api/v1/sessions/trash`, the conversations in the trash, the last removed first.
Handler for `GET /api/v1/sessions/trash`, the conversations in the trash,
`GET /api/v1/triggers`, list all triggers with their status.
`GET /api/v1/triggers`, list all triggers with their status.
`GET /api/v1/packages/trusted-keys`: the publisher keys the user trusts, and those the organisation policy trusts, of origin `policy`.
`GET /api/v1/packages/trusted-keys`: the publisher keys the user trusts,
`GET /api/v1/workflows/{package}/{workflow}/runs`: the history of a workflow, newest first.
`GET /api/v1/workflows/{package}/{workflow}/runs`: the history of a
Handler for `POST /api/v1/llm/chat`.
Builds a single-turn `CompletionRequest` from the prompt and dispatches it
Handler for `POST /api/v1/llm/complete`.
Accepts a multi-turn conversation history and dispatches it through
llm
llm
Handler for `POST /api/v1/llm/loaded-models`.
Loads the model under the settings given, for this instance alone, over
local_ai
local_ai
`POST /api/v1/onboarding/complete`: writes the flag that says the onboarding is complete.
`POST /api/v1/onboarding/complete`: writes the flag that says the
mcp
mcp
memory
memory
model_hub
model_hub
node_runtime_state
node_runtime_state
`GET /api/v1/notifications/logs?last=N`, notification history.
Reads from `notifications.db` via the repository.
notifications
notifications
onboarding
onboarding
Handler for `POST /api/v1/llm/leases`.
A conversation moved to another model releases its lease on the previous
packages
packages
`POST /api/v1/assists/automation`: parses an automation described in words into a schedule, an agent and a payload, with its ambiguities.
`POST /api/v1/assists/automation`: parses an automation described in
`POST /api/v1/batches/{id}/pause`: no further item starts; those running end on their own. A paused batch stays paused across a restart.
`POST /api/v1/batches/{id}/pause`: no further item starts; those running
Handler for `POST /api/v1/sessions/:id/pause`, pause the turn in flight.
Handler for `POST /api/v1/sessions/:id/pause`, pause the turn in flight.
Handler for `POST /api/v1/llm/ping`.
Sends a trivial completion request (`'ping'`) to the specified backend (or the
`POST /api/v1/audit/replay/:run_id`, check that the captured trace of a run is complete and consistent.
Resolves the run id (full or unambiguous prefix), then steps through the
Handler for `POST /api/v1/tasks/{id}/review`.
Starts an `apollia-review` task for the given task ID, waits synchronously
`POST /api/v1/packages/examples/{name}/preview`: what the example contains, what it asks for and which connections it requires, as the preview of a package file says it. Nothing is written.
`POST /api/v1/packages/examples/{name}/preview`: what the example
`POST /api/v1/packages/preview`: what the package contains, who signed it, what it asks for, which connections it requires and brings, and what an update adds. Nothing is written.
`POST /api/v1/packages/preview`: what the package contains, who signed
`POST /api/v1/sources/preview`: the preview of a workbook or a CSV file.
`POST /api/v1/sources/preview`: the preview of a workbook or a CSV file.
profile
profile
`GET /api/v1/sources/project-migration`: what the migration of the former projects carried over, and what it listed instead.
`GET /api/v1/sources/project-migration`: what the migration of the former
`POST /api/v1/memory/namespaces/{namespace}/purge`: removes the entries older than a number of days.
`POST /api/v1/memory/namespaces/{namespace}/purge`: removes the entries
`PUT /api/v1/mcp/servers/:name/secrets/:key`: set the secret a `${APOLLIA_SECRET:KEY}` placeholder of server `name` resolves to.
The server need not exist yet. A running server reads the new value at its
Handler for `PUT /api/v1/sessions/{id}/notes`.
Handler for `PUT /api/v1/sessions/{id}/notes`.
Handler for `PUT /api/v1/sessions/{id}/settings`.
Handler for `PUT /api/v1/sessions/{id}/settings`.
`GET /api/v1/config`: the text of `apollia.toml`, its fingerprint, its faults, the keys the policy fixes and the keys waiting for a restart.
`GET /api/v1/config`: the text of `apollia.toml`, its fingerprint, its
`GET /api/v1/config/observability`: the capture and retention policy.
`GET /api/v1/config/observability`: the capture and retention policy.
`GET /api/v1/governance/policy`: the policy read at startup.
`GET /api/v1/governance/policy`: the policy read at startup.
`GET /api/v1/config/python-interpreter`: the chosen interpreter and the one this runtime ships.
`GET /api/v1/config/python-interpreter`: the chosen interpreter and the
`GET /api/v1/llm/recommend?limit=...&n_ctx=...`
Ranks the models this machine should run: plans against the embedded
Handler for `POST /api/v1/sessions/{id}/messages/{message_id}/regenerate`.
`message_id` is the assistant message to regenerate: it and every later
Handler for `POST /api/v1/sessions/:id/plan/reject`.
Handler for `POST /api/v1/sessions/:id/plan/reject`.
Handler for `POST /api/v1/user-inputs/{id}/reject`.
Handler for `POST /api/v1/user-inputs/{id}/reject`.
Handler for `POST /api/v1/llm/leases/release`.
Releasing the last lease on a model unloads it at once, unless it is
Handler for `POST /api/v1/llm/loaded-models/last/reload`.
Loads the last model loaded by hand again, under the settings it was
Handler for `POST /api/v1/llm/reload`.
Rebuilds the active `LlmRouter` from `system.db` and swaps it into the
`POST /api/v1/stt/reload`, rebuild the STT engine from persisted config.
Reads the current `stt_config` row from `system.db`, rebuilds the engine
Axum handler for `POST /api/v1/triggers/reload`.
Re-reads definitions from the SQLite repository (no longer TOML),
`DELETE /api/v1/agent-definitions/{name}/overrides/{field}`: remove the user's value of a field; the package default applies again.
`DELETE /api/v1/agent-definitions/{name}/overrides/{field}`: remove the
`DELETE /api/v1/connections/folders/{id}`: remove a folder connection.
`DELETE /api/v1/connections/folders/{id}`: remove a folder connection.
`DELETE /api/v1/mcp/servers/:name`, Remove an MCP server and delete it from `mcp.db`.
Shuts down the session, unregisters the server, removes its database entry,
`DELETE /api/v1/packages/trusted-keys/{fingerprint}`: stop trusting a publisher key.
`DELETE /api/v1/packages/trusted-keys/{fingerprint}`: stop trusting a
Handler for `PUT /api/v1/sessions/folders/{id}`, rename a folder.
Handler for `PUT /api/v1/sessions/folders/{id}`, rename a folder.
Handler for `PUT /api/v1/sessions/{id}/title`, rename.
Handler for `PUT /api/v1/sessions/{id}/title`, rename.
Handler for `POST /api/v1/sessions/{id}/messages/{message_id}/resend`.
`message_id` is the user message to edit: it and every later message are
`DELETE /api/v1/agent-definitions/{name}/overrides`: back to defaults, every override of the agent removed.
`DELETE /api/v1/agent-definitions/{name}/overrides`: back to defaults,
`POST /api/v1/resilience/reset/:tool`, force-close a breaker.
`POST /api/v1/resilience/reset/:tool`, force-close a breaker.
`DELETE /api/v1/connectors/drive-folders/{account_id}`: forget the Drive folder of one Google account, so the default applies again.
`DELETE /api/v1/connectors/drive-folders/{account_id}`: forget the Drive
`POST /api/v1/onboarding/reset`: removes the flag, the onboarding markers, the visible profile and the onboarding agent's memory.
`POST /api/v1/onboarding/reset`: removes the flag, the onboarding markers,
`POST /api/v1/profiles/{id}/reset`: empties a profile and deletes its facts.
`POST /api/v1/profiles/{id}/reset`: empties a profile and deletes its
`POST /api/v1/profile/reset`: removes every entry the user sees, keeping the onboarding markers.
`POST /api/v1/profile/reset`: removes every entry the user sees, keeping
resilience
resilience
`POST /api/v1/mcp/servers/:name/restart`, Restart a specific MCP server session.
Restarts an existing session or first-time-connects one declared in `mcp.db`.
Handler for `POST /api/v1/sessions/{id}/restore`, take the session out of the trash, back into the list with its messages.
Handler for `POST /api/v1/sessions/{id}/restore`, take the session out of
`POST /api/v1/batches/{id}/resume`: a paused batch starts its items again.
`POST /api/v1/batches/{id}/resume`: a paused batch starts its items again.
`POST /api/v1/onboarding/resume`: resumes the enrichment of the profile, keeping what the agent already learnt.
`POST /api/v1/onboarding/resume`: resumes the enrichment of the profile,
Handler for `POST /api/v1/sessions/:id/resume`, resume an existing session.
Loads the session from SQLite if not already in memory, resets any stale
Handler for `POST /api/v1/tasks/{id}/resume`.
Validates that the task is in `input_required` status, persists the human
`POST /api/v1/batches/{id}/retry`: the failed items, and those waiting for an access, run again from their input as read at launch. `grants` adds accesses granted for the rest of the batch.
`POST /api/v1/batches/{id}/retry`: the failed items, and those waiting for
`POST /api/v1/governance/rules/revoke-all`: revokes every rule of one scope, `global` when none is named.
`POST /api/v1/governance/rules/revoke-all`: revokes every rule of one
`DELETE /api/v1/governance/rules/{id}`: revokes one rule.
`DELETE /api/v1/governance/rules/{id}`: revokes one rule.
`DELETE /api/v1/server/tokens/{token}`: revokes a token by identifier or by name. The row stays listed, marked revoked.
`DELETE /api/v1/server/tokens/{token}`: revokes a token by identifier or
`POST /api/v1/assists/rewrite`: rewrites a terse prompt with the daemon's default model, or returns it unchanged with the reason.
`POST /api/v1/assists/rewrite`: rewrites a terse prompt with the daemon's
`POST /api/v1/artifacts`: stores a new artifact, or returns the one its source message already has.
`POST /api/v1/artifacts`: stores a new artifact, or returns the one its
`PUT /api/v1/config`: saves a whole text through the writer.
The change is written to the signed journal under the origin the caller
`PUT /api/v1/config/observability`: writes the policy, applied at the next start of the runtime.
`PUT /api/v1/config/observability`: writes the policy, applied at the next
`PUT /api/v1/config/python-interpreter`: chooses an interpreter, checked before it is written (it exists, starts, and has the minor version of the bundled standard library), or returns to the bundled one. Applies to the agents started after it.
`PUT /api/v1/config/python-interpreter`: chooses an interpreter, checked
`GET /api/v1/local-ai/models/gguf`: the GGUF models already on disk, largest first, each graded for this machine.
`GET /api/v1/local-ai/models/gguf`: the GGUF models already on disk,
`GET /api/v1/local-ai/models/whisper`: the Whisper models already on disk, each graded for this machine.
`GET /api/v1/local-ai/models/whisper`: the Whisper models already on disk,
Handler for `GET /api/v1/sessions/search`, the conversations whose messages contain every word of `q`, the best match first, each with an excerpt. A word is matched from its start, and a conversation in the trash is never answered.
Handler for `GET /api/v1/sessions/search`, the conversations whose
`GET /api/v1/memory/namespaces/{namespace}/search?q=`: full-text search in one namespace, best score first.
`GET /api/v1/memory/namespaces/{namespace}/search?q=`: full-text search in
`GET /api/v1/llm/registry/search?q=...&format=...&sort=...&fits_only=...`
Asks each organisation of the two publisher lists, by its `author=`, and
`GET /api/v1/security-posture`: the confinement of native tools and the trust model of agent code where this runtime runs them.
`GET /api/v1/security-posture`: the confinement of native tools and the
Handler for `POST /api/v1/sessions/:id/messages`, send message.
Handler for `POST /api/v1/sessions/:id/messages`, send message.
`GET /api/v1/server`: whether the compatible server listens, its port, why its last start failed, and how many of its tokens are in use.
`GET /api/v1/server`: whether the compatible server listens, its port, why
server
server
`PUT /api/v1/llm/agents/{agent}/model`: assign a model, and optionally a preset of it, to an agent. Kept apart from the installed package.
`PUT /api/v1/llm/agents/{agent}/model`: assign a model, and optionally a
`PUT /api/v1/agent-definitions/{name}/overrides/{field}`: set the user's value of a field. Kept through every update of the package.
`PUT /api/v1/agent-definitions/{name}/overrides/{field}`: set the user's
`PUT /api/v1/companion/enabled`: turns the companion on or off.
`PUT /api/v1/companion/enabled`: turns the companion on or off.
Handler for `POST /api/v1/llm/backends/:name/set-default`.
Marks the given backend as the default. Returns 404 if not found.
`PUT /api/v1/llm/default-model`: make a local model or a model of a declared server the single default of the machine.
`PUT /api/v1/llm/default-model`: make a local model or a model of a
`POST /api/v1/profiles/{id}/default`: makes a profile the default.
`POST /api/v1/profiles/{id}/default`: makes a profile the default.
`PUT /api/v1/connectors/drive-folders/{account_id}`: record the Drive folder of one Google account.
`PUT /api/v1/connectors/drive-folders/{account_id}`: record the Drive
`PUT /api/v1/llm/embeddings/default`
`PUT /api/v1/llm/embeddings/default`
set_engine_settings
set_engine_settings
`PUT /api/v1/notifications/events`, replace the global events.
Validates each event against the known event set (`KNOWN_EVENTS`),
`PUT /api/v1/mcp/exposed`: mark an agent or a workflow exposed, or not.
Exposing an item checks that it exists; withdrawing one does not, so an
`PUT /api/v1/governance/tools/{name}/config`: stores the configuration of one tool.
`PUT /api/v1/governance/tools/{name}/config`: stores the configuration of
`PUT /api/v1/governance/tools/{name}/enabled`: enables or disables one tool.
`PUT /api/v1/governance/tools/{name}/enabled`: enables or disables one tool.
Handler for `PUT /api/v1/llm/pins`.
A pinned model is never unloaded on its own. Unpinning a model that nothing
`PUT /api/v1/oauth/clients/{provider}/api-key`: writes the public API key Google Picker uses, empty to clear it.
`PUT /api/v1/oauth/clients/{provider}/api-key`: writes the public API key
`PUT /api/v1/oauth/clients/{provider}/client-id`: writes the client id override, empty to clear it.
`PUT /api/v1/oauth/clients/{provider}/client-id`: writes the client id
`PUT /api/v1/oauth/clients/{provider}/client-secret`: writes the client secret override, empty to clear it. The secret is never answered back.
`PUT /api/v1/oauth/clients/{provider}/client-secret`: writes the client
Handler for `PUT /api/v1/sessions/:id/plan-mode`.
Handler for `PUT /api/v1/sessions/:id/plan-mode`.
`PUT /api/v1/profile/entries/{key}`: creates or replaces one entry, as written by the user.
`PUT /api/v1/profile/entries/{key}`: creates or replaces one entry, as
`PUT /api/v1/profiles/{id}/facts/{key}`: retains a fact in a profile, as written by the user.
`PUT /api/v1/profiles/{id}/facts/{key}`: retains a fact in a profile, as
Handler for `PUT /api/v1/sessions/{id}/folder`, put the conversation in a folder, or out of any folder.
Handler for `PUT /api/v1/sessions/{id}/folder`, put the conversation in a
`PUT /api/v1/tool-credentials/{tool_name}/{key_name}`: stores or replaces one credential, encrypted.
`PUT /api/v1/tool-credentials/{tool_name}/{key_name}`: stores or replaces
`POST /api/v1/local-ai/dictation`: makes a Whisper file the dictation model and marks the onboarding progress as dictation-ready.
`POST /api/v1/local-ai/dictation`: makes a Whisper file the dictation model
`POST /api/v1/local-ai/llm`: copies a GGUF file into the models folder and makes it the `local` backend.
The copy runs in its own task, so a client that stops waiting does not
`GET /api/v1/audit/journal/:run_id/entries/:seq`, one entry with its detail.
The page gives each entry a summary without content. This gives the entry
`GET /api/v1/audit/journal/:run_id`, the full journal for a run.
Returns the hash-chained journal entries, including `llm_completion` (the
Handler for `POST /api/v1/shutdown`.
Emits [`RuntimeEvent::ShutdownRequested`] on the EventBus. The caller
`GET /api/v1/sources/{id}/index`: where the index of a source stands.
`GET /api/v1/sources/{id}/index`: where the index of a source stands.
sources
sources
Handler for `POST /api/v1/agents`.
Makes a stored agent available: it is registered from the definition
`POST /api/v1/connectors/oauth/start`: start a consent and answer the URL to send the user to. No browser opens.
`POST /api/v1/connectors/oauth/start`: start a consent and answer the URL
start_engine_import
start_engine_import
start_engine_installation
start_engine_installation
`POST /api/v1/server/start`: opens the compatible server on its configured port and writes `[server] enabled = true`.
`POST /api/v1/server/start`: opens the compatible server on its configured
Handler for `DELETE /api/v1/agents/{id}`.
Performs a full graceful shutdown of the agent:
`POST /api/v1/batches/{id}/stop`: the running items are cancelled, the pending ones are canceled without running, and the batch ends `stopped`.
`POST /api/v1/batches/{id}/stop`: the running items are cancelled, the
`POST /api/v1/server/stop`: closes the compatible server and writes `[server] enabled = false`. The native API keeps answering.
`POST /api/v1/server/stop`: closes the compatible server and writes
`GET /api/v1/events`, every runtime event as SSE.
Each `runtime` frame carries one event of the bus serialized as the bus
`GET /api/v1/mailbox/stream`, observe all mailbox traffic as SSE.
Streams every mailbox event (sent, delivered, acked, dropped, guard) so the
`GET /api/v1/server/logs`: the logs of the compatible server as SSE.
Each `log` frame carries one line. The ring comes first, oldest line
Handler for `GET /api/v1/sessions/:id/stream`, SSE streaming.
Opens a persistent SSE stream filtering `ChatXxx` [`RuntimeEvent`]s by `session_id`.
Handler for `GET /api/v1/tasks/{id}/stream`.
Subscribes to the runtime EventBus and streams task-specific events via SSE.
`GET /api/v1/stt/status`, return current STT engine status.
Returns `200 OK` with the status when the engine is running, and `200 OK`
stt
stt
Handler for `POST /api/v1/tasks/{id}/plan-decision`.
Resolves the plan gate registered for the run, unblocking the engine that
Handler for `POST /api/v1/tasks`.
Submits a new task to the specified agent via the TaskRouter. A stored
tasks
tasks
`POST /api/v1/notifications/test`, send a test notification.
For each channel enabled in the config:
`POST /api/v1/mcp/servers/test`, Test a server configuration without persisting a session.
Spawns an ephemeral process, performs the MCP initialize handshake and `tools/list`,
`POST /api/v1/llm/embeddings/test`
`POST /api/v1/llm/embeddings/test`
`POST /api/v1/connectors/imap/test`: verify a mailbox without storing it.
`POST /api/v1/connectors/imap/test`: verify a mailbox without storing it.
`POST /api/v1/mcp/servers/:name/test`, Test an already-installed server.
Re-handshakes the live session for reachability, then runs the optional
`POST /api/v1/llm/servers/test`: list the models of a server that is not saved, to check the address and the key before saving. Writes nothing.
`POST /api/v1/llm/servers/test`: list the models of a server that is not
`POST /api/v1/oauth/clients/{provider}/test`: checks the client without a consent: present, well-formed, and its authorization server reachable.
`POST /api/v1/oauth/clients/{provider}/test`: checks the client without a
`POST /api/v1/tool-credential-tests/{tool_name}`: validates the tool's credential with a live call. A missing or rejected key is an answer with `ok: false`, not an error.
`POST /api/v1/tool-credential-tests/{tool_name}`: validates the tool's
tools
tools
`POST /api/v1/stt/transcribe`, transcribe an uploaded audio file.
Accepts `multipart/form-data` with:
Handler for `POST /api/v1/sessions/{id}/trash`, send the session to the trash: it leaves the list and keeps its messages.
Handler for `POST /api/v1/sessions/{id}/trash`, send the session to the
`POST /api/v1/onboarding/sessions`: opens a conversation with the onboarding agent, for the whole onboarding or one topic.
`POST /api/v1/onboarding/sessions`: opens a conversation with the
triggers
triggers
`POST /api/v1/packages/trusted-keys`: trust a publisher key. A package signed by it is then shown under the label given here.
`POST /api/v1/packages/trusted-keys`: trust a publisher key. A package
`DELETE /api/v1/agent-packages/installed/{name}`: uninstall a package on the path the command line and `POST /api/v1/packages/{name}/uninstall` take: its agents with their overrides, model and triggers, its environments and its folder, recorded in the audit journal. The memory and the history of its agents are kept.
`DELETE /api/v1/agent-packages/installed/{name}`: uninstall a package
`POST /api/v1/agents/installed/{name}/uninstall`: uninstall an agent installed on its own.
Removes the agent, its overrides, its model, its triggers, its
`POST /api/v1/packages/{name}/uninstall`: uninstall a package.
Always removed: its agents with their overrides, model and triggers, its
Handler for `POST /api/v1/llm/loaded-models/unload`.
Stops the model and frees its memory. Refused with 409 while it is
`PATCH /api/v1/artifacts/{id}`: replaces the title and/or the content.
`PATCH /api/v1/artifacts/{id}`: replaces the title and/or the content.
`PUT /api/v1/notifications/channels/:id`, update an existing channel.
Updates the channel in `notifications.db`, then reloads the
Handler for `PUT /api/v1/llm/backends/:name`.
Replaces an existing backend configuration. Returns 404 if the backend does not exist.
`PUT /api/v1/llm/presets/{id}`: replace a preset's name and settings.
`PUT /api/v1/llm/presets/{id}`: replace a preset's name and settings.
`PATCH /api/v1/llm/servers/{name}`: change a saved server field by field. The change applies to the next request sent to one of its models.
`PATCH /api/v1/llm/servers/{name}`: change a saved server field by field.
`PATCH /api/v1/profiles/{id}`: renames a profile and writes its fields.
`PATCH /api/v1/profiles/{id}`: renames a profile and writes its fields.
`PUT /api/v1/mcp/servers/:name/config`, Replace a server configuration and restart the session.
Removes the current session, starts a new one with the updated configuration,
Handler for `PATCH /api/v1/sessions/{id}`, change the configuration.
Handler for `PATCH /api/v1/sessions/{id}`, change the configuration.
`PUT /api/v1/stt/config`, update the persisted STT configuration.
Accepts a JSON body of [`SttConfigRow`] (fields with `#[serde(default)]` may
`PUT /api/v1/triggers/:id`, update an existing trigger definition.
Validates the new definition, updates it in `triggers.db`,
`POST /api/v1/config/validate`: what the writer would say of a text, without writing it.
`POST /api/v1/config/validate`: what the writer would say of a text,
`GET /api/v1/audit/verify`, verify the whole journal across all runs.
Unlike the per-run route, this walks the global chain (detecting interior
`GET /api/v1/audit/verify/:run_id`, verify a run's hash chain and signatures.
Returns 200 with the [`VerifyChainReport`] (whether or not the chain is
webhooks
webhooks
workflows
workflows