The Instance API is the core of Universe’s orchestration surface. Every running workload is an instance — a copy of a configuration deployed onto a cluster node by theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/universeclouddev/Universe/llms.txt
Use this file to discover all available pages before exploring further.
InstanceCreationService. These endpoints let you list all instances across the entire cluster, deploy new ones, drive their lifecycle, push commands into their stdin, and pull logs out.
All instance endpoints require a Bearer token with ALL permission. Rate-limited PUBLIC keys cannot access these routes.
Instance IDs are 6-character alphanumeric strings (e.g.,
a1b2c3) assigned at creation time. Always use the exact ID returned from POST /api/instances or GET /api/instances.The InstanceInfo Object
Every endpoint that returns instance data uses theInstanceInfo schema.
Unique 6-character alphanumeric instance identifier assigned at creation (e.g.,
a1b2c3).Name of the
Configuration used to deploy this instance (e.g., lobby).UUID of the Hazelcast cluster member (wrapper node) that is running this instance.
Host address clients should use to connect to this instance (e.g.,
127.0.0.1).Port number assigned to this instance from the configuration’s
availablePorts range.Current lifecycle state of the instance. See InstanceState values below.
Unix epoch milliseconds of the last recorded heartbeat. Used to detect
OFFLINE instances.Operating-system process ID.
null for container-based runtimes (Docker, Kubernetes) where there is no local PID.RAM in megabytes allocated to this instance, taken from the configuration’s
ramMB field.CPU units allocated to this instance.
100 equals one full core.Key of the runtime provider used when this instance was started (e.g.,
screen, docker, k8s).InstanceState Enum
InstanceState values
InstanceState values
| Value | Description |
|---|---|
CREATING | The instance is being deployed — template installation and process startup are in progress. |
ONLINE | The instance is running and sending heartbeats normally. |
OFFLINE | The instance has stopped sending heartbeats and is presumed unreachable. |
STOPPED | The instance has been explicitly stopped and is no longer running. |
Endpoints
GET /api/instances
Returns every instance that exists in the Hazelcast cluster state — including stopped and offline ones. Authentication: ALL permission required.InstanceInfo objects.
| Status | Meaning |
|---|---|
200 | Success, array returned (may be empty). |
401 | Missing or invalid Authorization header. |
POST /api/instances
Deploys a new instance by looking up the namedConfiguration, selecting an eligible node with sufficient resources, copying templates, replacing variables, and starting the process.
Authentication: ALL permission required.
Request Body
Name of an existing
Configuration to deploy (e.g., lobby). Returns 400 if the configuration does not exist, or 503 if no node has enough resources.InstanceInfo object.
| Status | Meaning |
|---|---|
201 | Instance created and deploying. |
400 | configurationName does not match any stored configuration. |
503 | No cluster node has enough free RAM or CPU for this configuration. |
401 | Unauthorized. |
GET /api/instances/
Returns the current details of a single instance by its 6-character ID. Authentication: ALL permission required. Path ParametersThe 6-character instance ID (e.g.,
a1b2c3). Must be exactly 6 characters.InstanceInfo object.
| Status | Meaning |
|---|---|
200 | Instance found and returned. |
404 | No instance with this ID exists. |
401 | Unauthorized. |
DELETE /api/instances/
Stops the instance by dispatching aStopInstanceTask to its wrapper node via Hazelcast, then marks its state as STOPPED in the cluster map. The running directory is cleaned up on the wrapper.
Authentication: ALL permission required.
Path Parameters
The 6-character instance ID to stop and remove.
| Status | Meaning |
|---|---|
200 | Stop task dispatched and state updated. |
404 | Instance not found. |
401 | Unauthorized. |
PATCH /api/instances//lifecycle
Controls the lifecycle of an instance. Thetarget query parameter determines the action. For start and restart, a new instance is created from the same configuration; the old instance ID is retired.
Authentication: ALL permission required.
Path Parameters
The 6-character instance ID.
Lifecycle action. Must be one of:
start, stop, restart.start— Deploys a fresh instance from the same configuration.stop— Stops the instance gracefully.restart— Stops the instance, then immediately deploys a new one.
- Start
- Stop
- Restart
| Status | Meaning |
|---|---|
200 | Action completed. |
400 | Invalid target value, missing configuration, or instance not found. |
503 | No node has enough resources (for start/restart). |
401 | Unauthorized. |
PUT /api/instances//state
Directly updates thestate field and optionally the lastHeartbeat timestamp of an existing instance in the cluster map. This is typically used by wrapper nodes or monitoring agents reporting heartbeats.
Authentication: ALL permission required.
Path Parameters
The 6-character instance ID.
New state value. Must be one of:
CREATING, ONLINE, OFFLINE, STOPPED.Unix epoch millisecond timestamp. If omitted, defaults to
System.currentTimeMillis() at the time of the request.InstanceInfo object reflecting the new state.
| Status | Meaning |
|---|---|
200 | State updated. |
400 | Invalid state string or missing instance ID. |
404 | Instance not found. |
401 | Unauthorized. |
POST /api/instances//execute
Pipes a command string into the running instance’s stdin. This is equivalent to typing a command into a Minecraft server console — it has no structured output; the result appears in the instance’s logs. Authentication: ALL permission required. Path ParametersThe 6-character instance ID.
The raw command string to write to the process stdin (e.g.,
op andyreckt, say Hello world).| Status | Meaning |
|---|---|
200 | Command dispatched to instance stdin. |
404 | Instance not found. |
401 | Unauthorized. |
GET /api/instances//logs
Fetches the most recent log lines from the running instance. Works across all runtime providers: screen, tmux, Docker, and Kubernetes. Authentication: ALL permission required. Path ParametersThe 6-character instance ID.
Number of recent log lines to return. Defaults to
100. Minimum 1, maximum 1000.The requested instance ID.
Array of log line strings in chronological order.
Total number of lines returned.
The value of the
lines query parameter that was used.| Status | Meaning |
|---|---|
200 | Logs returned. |
404 | Instance not found, or no logs available yet. |
401 | Unauthorized. |
For real-time log streaming without polling, use the WebSocket live-log endpoint at
WS /api/instances/{id}/live-log.