The Universe REST API is a Ktor-based HTTP interface exposed exclusively on Master nodes. It gives you programmatic control over the entire cluster — from deploying and managing instances to syncing templates, querying node health, and streaming live logs over WebSocket. All responses are JSON unless otherwise noted.Documentation 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.
Base URL
The API binds to port7000 by default (the apiPort field in UniverseMainConfiguration). Every endpoint lives under the /api prefix:
The REST API is only available on the node configured as
isMasterNode: true. Worker nodes do not expose the HTTP interface. Point all API clients at the master node’s address.Authentication
All endpoints exceptGET /api/ping and GET /api/metrics require a valid Bearer token in the Authorization header. Two permission levels are supported:
| Level | Description | Rate Limit |
|---|---|---|
ALL | Full admin access — instances, configs, templates, commands | Unlimited |
PUBLIC | Tracked by the rate limiter; no protected route accepts this level (all routes use ALL) | 100 req / 60 s |
Rate Limiting
Universe uses a sliding window rate limiter applied per API key. Keys withPUBLIC permission are capped at 100 calls per 60 seconds. Keys with ALL permission bypass the limiter entirely. When the limit is exceeded the API returns 429 Too Many Requests:
Endpoint Index
The table below lists every route in the API. Rows marked WS are WebSocket upgrade endpoints.| Method | Path | Description |
|---|---|---|
GET | /ping | Health check — returns node status, no auth required |
GET | /node | System stats and uptime for the current node |
GET | /node/config | Full UniverseMainConfiguration for the current node |
POST | /node/reload | Reload node configuration from disk (not yet implemented) |
GET | /cluster/nodes | List all Hazelcast cluster members |
GET | /cluster/nodes/{id} | Detailed info and instances for a specific node |
POST | /cluster/nodes/{id}/command | Dispatch a console command to a node |
GET | /instances | List all instances across the cluster |
POST | /instances | Create and deploy a new instance |
GET | /instances/{id} | Get details for a single instance |
DELETE | /instances/{id} | Stop and remove an instance |
PATCH | /instances/{id}/lifecycle | Start, stop, or restart an instance |
PUT | /instances/{id}/state | Update instance state and heartbeat timestamp |
POST | /instances/{id}/execute | Send a command to an instance’s stdin |
GET | /instances/{id}/logs | Fetch recent log lines for an instance |
| WS | /instances/{id}/live-log | Stream live log output from an instance |
GET | /configurations | List all instance configurations |
GET | /configurations/{name} | Get a single configuration by name |
PUT | /configurations/{name} | Create or update a configuration |
DELETE | /configurations/{name} | Delete a configuration |
GET | /templates | List all templates organised by group |
GET | /templates/{group}/{name} | Get details for a specific template |
GET | /templates/{group}/{name}/files | List files inside a local template directory |
GET | /templates/{group}/{name}/files/{path} | Read the contents of a template file |
PATCH | /templates/{group}/{name}/files/{path} | Edit the contents of a template file |
POST | /templates/{group}/{name}/files/{path} | Create a new file inside a template |
DELETE | /templates/{group}/{name}/files/{path} | Delete a file from a template |
POST | /templates/{group}/{name}/export | Export a local template as a .zip |
POST | /templates/{group}/{name}/import | Import a template from a .zip |
POST | /templates/{group}/{name}/sync | Sync a template from a remote storage provider |
POST | /templates/sync | Dispatch a cluster-wide template sync via Hazelcast |
POST | /commands/execute | Execute a console command on the master node |
| WS | /console | Interactive WebSocket console for the master node |
GET | /metrics | Prometheus metrics scrape endpoint — no auth required |
Resource Groups
Instances
Create, inspect, stop, and control the lifecycle of running instances across the cluster.
Configurations
Manage instance configurations — the blueprints that define how instances are deployed.
Templates
Browse, edit, export, import, and sync file templates used during instance provisioning.
Cluster
Inspect cluster membership and dispatch commands to individual nodes via Hazelcast.
Node
Query system stats, configuration, and reload settings on the current master node.
Commands
Execute console commands on the master node and capture their output synchronously.
WebSockets
Stream live instance logs or open an interactive console session over WebSocket.
WebSocket endpoints (
/instances/{id}/live-log and /console) require the same Authorization: Bearer TOKEN header to be included in the HTTP upgrade request. Authentication is validated before the connection is promoted to a WebSocket.