Managed machines
A machine is a compute pod Prometheux provisions and bills per minute of uptime. The catalog lists the sizes available to your organization; your list is the subset you have adopted, each of which can be started (“active”) or stopped.List machines
Returns the catalog of available machine types together with the machines you have already adopted, both enabled and disabled. This is the endpoint to call first — every other machine endpoint takes an ID that comes from here.GET /machines/user-machines, returns only your enabled
machines. Use it for a status indicator that does not need the catalog.
Two different IDs appear in machine responses and they are not interchangeable.
machine_id identifies a machine type in the catalog; user_machine_id
identifies your instance of it. Adoption takes a machine_id; everything
afterwards — starting, stopping, status, usage, removal — takes a
user_machine_id.Adopt a machine
Adds a catalog machine to your list. If you previously removed this machine, its usage history is restored rather than started fresh.Start or stop a machine
Starting a machine boots the pod; stopping it shuts the pod down and stops the billing clock. Concepts can only run against an active machine.Check machine status
Returns the live pod status for one of your machines. Starting is not instantaneous, so poll this after a toggle until the status settles.started, stopped or crashed;
anything else means the transition is still in flight.
Stream machine status
For a UI that shows a machine booting, polling is wasteful. This WebSocket pushes status updates as they happen and closes once the machine reaches a terminal status.token, and, when your
deployment uses Supabase auth, the Supabase JWT as x_supabase_token.
Machine usage and cost
Returns total uptime minutes, the current session if the machine is running, and recent sessions — the basis of what you are billed for this machine.Remove a machine
Removes a machine from your list. The removal is soft: the machine is marked disabled and its usage history is preserved, so adopting it again later picks up where you left off.Check availability
Check that a single compute target is ready before running concepts against it. Provide exactly one ofmachine_configs or databricks_configs inside the
compute object — supplying neither returns a 400.
databricks_configs fields
Example — managed machine
Example — Databricks
A Databricks target is only reported available when the cluster is
RUNNING
and Prometheux is installed on it. When it is not, status is "error" and
the message names the unmet condition (cluster not running, or Prometheux not
installed). An unavailable machine target returns 400; an unreachable
Databricks target returns 503.Databricks compute session
Passing fulldatabricks_configs on every request gets tedious, and the
AI assistant and MCP tools
cannot see a config that only lives in your browser. The session endpoints store
one Databricks config server-side for your user, which every later call then
uses by default.
The config is held in memory only — nothing is written to disk, and it is gone
when the backend process restarts.
Set the session config
Replaces the stored config wholesale. Any field you omit is cleared, which is what you want when the caller (the settings page) holds the complete truth.is_complete and a missing_fields list naming what still has to be supplied
before concepts can run.
Update credentials only
Merges credential fields into the stored config instead of replacing it. This is what the assistant’s secure credential form submits: it knows the credential and nothing else, so a submission must not wipe the cluster or JAR location already configured. Onlyauth_mode, token, client_id, client_secret and host
are accepted; anything else in the body is ignored.
token, client_id or client_secret is required. If you omit
auth_mode, it is inferred from which credential you sent.
Credentials sent here never enter the conversation, the model’s context, or the
chat history — that is the reason this endpoint exists separately from the chat
API.
Read or clear the session config
GET returns the config you stored, along with is_configured, is_complete
and missing_fields, so a settings page can restore its own state. DELETE
forgets the config and reports whether there was one to forget.
Databricks workspace
These endpoints operate on your Databricks workspace itself — they are what the compute settings page calls while you set up a cluster. Each accepts the same authentication fields (host, auth_mode, and either token or
client_id/client_secret); when a Databricks compute session is stored, they
fall back to it.
Clusters
clusterId plus the authentication
fields.
GET /databricks/clusters/node-types and
GET /databricks/clusters/spark-versions, list what the workspace offers when
you create a cluster, and GET /databricks/clusters/{cluster_id}/libraries
lists what is installed on one.
Unity Catalog
Prometheux stores its reasoner JAR in a Unity Catalog volume, so these endpoints exist to create that location if it does not already exist.GET /databricks/volumes requires catalog_name and schema_name query
parameters. POST /databricks/volumes takes catalogName, schemaName and
name in the body, and will create the catalog and schema for you if they are
missing.
Install Prometheux on a cluster
Stages the Prometheux reasoner JAR into a Unity Catalog volume and installs it as a cluster library. A cluster cannot run concepts until this succeeds.Installing a library restarts the cluster, and the install is only complete once
the cluster is running again. Poll
POST /compute/availability until it reports the cluster
running with Prometheux installed.Snowflake compute pools
When Prometheux is deployed as a Snowflake Native App, compute is a Snowpark Container Services compute pool. These endpoints are only available in that deployment — everywhere else they return403.
instance_family in the body; resume, suspend and switch
take pool_name.

