Host Control REST Routes
This page is the table-oriented route catalog for the Host Control REST API. For usage guidance, start with Host Control REST API Guide.
The product-facing API is available only under the stable /api/v1 prefix.
Unprefixed routes were retired before the 1.0 release and return HTTP 404.
Health And Readiness
| Method | Stable path | Role | Purpose |
|---|---|---|---|
GET |
/api/v1/health |
public or authenticated by policy | Lightweight process health and shared-memory manager connectivity |
GET |
/api/v1/ready |
public or authenticated by policy | Runtime readiness with HTTP 200 when accepted and 503 when not ready |
These health routes may be unauthenticated when
security.health.unauthenticated=true. Network admission still applies.
Security
| Method | Stable path | Role | Purpose | Request body |
|---|---|---|---|---|
POST |
/api/v1/auth/login |
public through admission policy | Create a Web Console session | admin password login payload |
GET |
/api/v1/auth/session |
viewer | Read current browser/session identity | none |
POST |
/api/v1/auth/logout |
viewer | Clear browser/session identity | none |
GET |
/api/v1/control/security |
admin | Read security configuration and API key metadata | none |
POST |
/api/v1/control/security/admin-password |
admin | Change the managed admin password | current/new password payload |
POST |
/api/v1/control/security/api-keys |
admin | Create an API key | key name and role payload |
DELETE |
/api/v1/control/security/api-keys/{key_name} |
admin | Revoke an API key | none |
API key secret values are returned once at creation time and hidden afterwards.
Runtime Status And Bindings
| Method | Stable path | Role | Purpose | Request body |
|---|---|---|---|---|
GET |
/api/v1/control/status |
viewer | Full host runtime snapshot, including live lease-to-package instance ownership | none |
GET |
/api/v1/control/capabilities |
viewer | Product/API capability snapshot including frontend mode and security policy | none |
GET |
/api/v1/control/specs |
viewer | Installed spec dictionary used by the Web Console | none |
GET |
/api/v1/control/federation/hello |
viewer | Federation bootstrap/status payload for peer discovery | none |
GET |
/api/v1/control/bindings |
viewer | Runtime binding override and effective binding inventory | optional query by subsystem |
POST |
/api/v1/control/bindings |
operator | Set a runtime binding override | source and target binding references |
DELETE |
/api/v1/control/bindings/{source} |
operator | Remove one runtime binding override | none |
GET |
/api/v1/publishers |
viewer | Event publisher/subscriber inventory and shared-memory state | none |
GET |
/api/v1/shm_manager |
viewer | Shared-memory manager connectivity snapshot | none |
The source path segment for binding deletion is a binding reference such as
component.gripper.digital_io.
Subsystem Runtime Control
| Method | Stable path | Role | Purpose | Request body |
|---|---|---|---|---|
POST |
/api/v1/control/subsystems/{subsystem}/lifecycle |
operator | Request a subsystem lifecycle transition | transition, optional reason, optional session_id |
POST |
/api/v1/control/subsystems/{subsystem}/process |
operator | Terminate or kill a managed subsystem process | action, optional session_id |
Lifecycle transitions are start, pause, resume, stop, reset, fault,
and degrade. Process actions are terminate and kill.
Configuration And Runtime Apply
| Method | Stable path | Role | Purpose | Request body |
|---|---|---|---|---|
GET |
/api/v1/control/config |
admin | Read effective, base, and override runtime config | none |
POST |
/api/v1/control/config |
admin | Save raw YAML override | raw YAML override payload |
POST |
/api/v1/control/config/fields |
admin | Save structured config field updates | dotted-key field update payload |
POST |
/api/v1/control/config/validate |
admin | Validate raw YAML override without applying it | raw YAML override payload |
POST |
/api/v1/control/runtime/apply |
admin | Apply managed runtime changes | none or apply options |
POST |
/api/v1/control/restart |
admin | Request control-service restart when available | none |
Prefer /api/v1/control/config/fields for ordinary UI or automation changes.
Managed Packages
| Method | Stable path | Role | Purpose | Request body |
|---|---|---|---|---|
GET |
/api/v1/control/packages |
viewer | List installed managed packages and active runtime instances | none |
POST |
/api/v1/control/packages/install |
admin | Install a package archive | filename, content_base64, replace |
DELETE |
/api/v1/control/packages/{package_id} |
admin | Uninstall a managed package | optional force query |
POST |
/api/v1/control/packages/{package_id}/start |
operator | Start one package runtime instance through the launcher | optional instance_id, params, runtime_dir |
POST |
/api/v1/control/packages/{package_id}/stop |
operator | Stop one package runtime instance | optional instance_id |
POST |
/api/v1/control/packages/{package_id}/restart |
operator | Restart one package runtime instance | optional instance_id, params, runtime_dir |
GET |
/api/v1/control/packages/{package_id}/instances/{instance_id}/context |
viewer | Return frontend runtime context for one package instance | none |
Installation registers one package record by package name. Starting with a new
instance_id creates another managed runtime instance, subject to
resource-policy conflicts. Stopped, terminated, and killed instances are removed
from the active instance registry rather than retained as package history.
Package Frontend Assets And Proxies
| Method | Stable path | Role | Purpose |
|---|---|---|---|
GET |
/api/v1/packages/{package_id}/ui |
viewer | Serve a managed package frontend entrypoint |
GET |
/api/v1/packages/{package_id}/ui/ |
viewer | Serve a managed package frontend entrypoint |
GET |
/api/v1/packages/{package_id}/ui/{path} |
viewer | Serve static package frontend assets with SPA fallback |
GET |
/api/v1/packages/{package_id}/instances/{instance_id}/context |
viewer | Return frontend runtime context for one package instance |
ANY |
/api/v1/packages/{package_id}/instances/{instance_id}/api |
viewer or operator by package policy | Proxy same-origin REST calls to package instance GUI endpoint |
ANY |
/api/v1/packages/{package_id}/instances/{instance_id}/api/ |
viewer or operator by package policy | Proxy same-origin REST calls to package instance GUI endpoint |
ANY |
/api/v1/packages/{package_id}/instances/{instance_id}/api/{path} |
viewer or operator by package policy | Proxy same-origin REST calls to package instance GUI endpoint |
GET |
/api/v1/packages/{package_id}/instances/{instance_id}/ws |
viewer or operator by package policy | Proxy same-origin WebSocket calls to package instance GUI endpoint |
GET |
/api/v1/packages/{package_id}/instances/{instance_id}/ws/ |
viewer or operator by package policy | Proxy same-origin WebSocket calls to package instance GUI endpoint |
GET |
/api/v1/packages/{package_id}/instances/{instance_id}/ws/{path} |
viewer or operator by package policy | Proxy same-origin WebSocket calls to package instance GUI endpoint |
The proxy paths are not native subsystem transport. They are same-origin browser
routes for package-owned frontend backends declared in package.yaml.
WebSocket Upgrade Routes
| Method | Stable path | Role | Purpose |
|---|---|---|---|
GET |
/api/v1/ws/events |
viewer | WebSocket upgrade for Event observation |
GET |
/api/v1/ws/control |
operator | WebSocket upgrade for Procedure and Operation requests |
For message kinds and fields, see Host Control WebSocket Messages.
System Frontend Fallback
| Method | Path | Role | Purpose |
|---|---|---|---|
GET |
/ |
public or viewer by policy | Serve configured system frontend entrypoint |
GET |
/{path} |
public or viewer by policy | Serve configured system frontend assets or SPA fallback |
The system frontend can be the bundled Console, a custom static product frontend, or disabled.