Instance ops
Rollout timeline with per-target timing for visualization
In: header
Path Parameters
uuidHeader Parameters
Response Body
curl -X GET "https://loading/v1/instances/fleet/runtime-rollouts/497f6eca-6276-4993-bfeb-53cbbbba6f08/timeline" \ -H "X-Api-Key: string"{
"completed_at": "string",
"created_at": "string",
"rollout_id": "string",
"scope": "string",
"status": "string",
"timeline": [
{
"completed_at": "string",
"created_at": "string",
"duration_seconds": 0,
"error_message": "string",
"instance_hostname": "string",
"instance_id": "string",
"last_result_status": "string",
"scheduled_countdown_seconds": 0,
"started_at": "string",
"status": "string",
"target_id": "string"
}
],
"total_duration_seconds": 0,
"total_targets": 0
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Fleet runtime rollout
Push updated agent runtime to all running instances. Tenant admin only.
In: header
Query Parameters
Emergency override: bypass maintenance window. Requires tenant-wide admin flag.
falseHeader Parameters
Response Body
curl -X POST "https://loading/v1/instances/fleet/runtime/rollout?override_window=false" \ -H "X-Api-Key: string"{
"enqueued": 0,
"message": "string",
"skipped": 0,
"tasks": [
{}
],
"total": 0
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}List recent runtime rollout history for the tenant
In: header
Query Parameters
201 <= value <= 10000 <= valueHeader Parameters
Response Body
curl -X GET "https://loading/v1/instances/fleet/runtime/rollouts?limit=20&offset=0" \ -H "X-Api-Key: string"[
{
"completed_at": "string",
"created_at": "string",
"failed_targets": 0,
"id": "string",
"in_progress_targets": 0,
"initiated_from_ip": "string",
"metadata_json": {},
"queued_targets": 0,
"scope": "string",
"status": "string",
"succeeded_targets": 0,
"total_targets": 0,
"uncertain_targets": 0
}
]{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Get rollout summary with per-instance targets
In: header
Path Parameters
uuidHeader Parameters
Response Body
curl -X GET "https://loading/v1/instances/fleet/runtime/rollouts/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "X-Api-Key: string"{
"rollout": {
"completed_at": "string",
"created_at": "string",
"failed_targets": 0,
"id": "string",
"in_progress_targets": 0,
"initiated_from_ip": "string",
"metadata_json": {},
"queued_targets": 0,
"scope": "string",
"status": "string",
"succeeded_targets": 0,
"total_targets": 0,
"uncertain_targets": 0
},
"targets": [
{
"bundle_hash": "string",
"celery_task_id": "string",
"completed_at": "string",
"created_at": "string",
"detail_json": {},
"error_message": "string",
"id": "string",
"instance_id": "string",
"last_result_status": "string",
"rollout_id": "string",
"rollout_scope": "string",
"rollout_status": "string",
"scheduled_countdown_seconds": 0,
"started_at": "string",
"status": "string"
}
]
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Cancel a rollout — revoke pending targets, optionally terminate in-progress
In: header
Path Parameters
uuidQuery Parameters
Hard-stop: also terminate in-progress tasks via SIGTERM
falseHeader Parameters
Response Body
curl -X POST "https://loading/v1/instances/fleet/runtime/rollouts/497f6eca-6276-4993-bfeb-53cbbbba6f08/cancel?force=false" \ -H "X-Api-Key: string"null{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Pause an in-flight rollout — revoke queued targets
In: header
Path Parameters
uuidHeader Parameters
Response Body
curl -X POST "https://loading/v1/instances/fleet/runtime/rollouts/497f6eca-6276-4993-bfeb-53cbbbba6f08/pause" \ -H "X-Api-Key: string"null{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Resume a paused rollout — re-queue cancelled targets
In: header
Path Parameters
uuidHeader Parameters
Response Body
curl -X POST "https://loading/v1/instances/fleet/runtime/rollouts/497f6eca-6276-4993-bfeb-53cbbbba6f08/resume" \ -H "X-Api-Key: string"null{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Retry a single failed or uncertain rollout target
In: header
Path Parameters
uuiduuidHeader Parameters
Response Body
curl -X POST "https://loading/v1/instances/fleet/runtime/rollouts/497f6eca-6276-4993-bfeb-53cbbbba6f08/targets/497f6eca-6276-4993-bfeb-53cbbbba6f08/retry" \ -H "X-Api-Key: string"null{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Get tenant default update policy
In: header
Header Parameters
Response Body
curl -X GET "https://loading/v1/instances/fleet/updates/policy" \ -H "X-Api-Key: string"{
"maintenance_window_end_hour_utc": 0,
"maintenance_window_start_hour_utc": 0,
"max_parallel_rollouts": 2,
"mcp_servers_default": "notify",
"runtime_default": "notify",
"skills_default": "notify"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Set tenant default update policy
In: header
Header Parameters
Response Body
curl -X PATCH "https://loading/v1/instances/fleet/updates/policy" \ -H "X-Api-Key: string" \ -H "Content-Type: application/json" \ -d '{}'{
"maintenance_window_end_hour_utc": 0,
"maintenance_window_start_hour_utc": 0,
"max_parallel_rollouts": 2,
"mcp_servers_default": "notify",
"runtime_default": "notify",
"skills_default": "notify"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}List Actions
List recent actions for an instance — the activity timeline.
Returns newest-first, capped at 100.
"These aren't the droids you're looking for." — Obi-Wan Kenobi (about filtering irrelevant audit entries)
In: header
Path Parameters
uuidQuery Parameters
201 <= value <= 100Header Parameters
Response Body
curl -X GET "https://loading/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/actions?limit=20" \ -H "X-Api-Key: string"{
"actions": [
{}
],
"total": 0
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Clear Circuit Breakers
Clear all LLM provider circuit breakers on the agent.
Use after a temporary provider outage resolves. Circuit breakers block requests to providers that recently failed; clearing them allows retries.
"Negative, Ghost Rider, the pattern is full." — Air Boss Johnson, Top Gun
In: header
Path Parameters
uuidHeader Parameters
Response Body
curl -X POST "https://loading/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/actions/clear-circuit-breakers" \ -H "X-Api-Key: string"{
"action": "string",
"action_id": "string",
"detail": {},
"duration_ms": 0,
"instance_id": "string",
"message": "string",
"status": "string"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Power Cycle
Power cycle (process restart) an agent.
Sends exit(0) to the agent process. systemd RestartSec=2 brings it back. Much faster than VPS reboot (~2s vs ~60s), fixes 80% of issues.
"Have you tried turning it off and on again?" — Roy, The IT Crowd
In: header
Path Parameters
uuidHeader Parameters
Response Body
curl -X POST "https://loading/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/actions/power-cycle" \ -H "X-Api-Key: string"{
"action": "string",
"action_id": "string",
"detail": {},
"duration_ms": 0,
"instance_id": "string",
"message": "string",
"status": "string"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Reboot Vps
VPS reboot — the nuclear option. Expect ~60 seconds downtime.
Only use when power cycle doesn't fix the issue. This reboots the entire server, not just the agent process.
ADMIN ONLY: This is a destructive operation that takes down the entire VPS. Regular users should use power-cycle instead.
"Nuke it from orbit — it's the only way to be sure." — Ripley, Aliens
In: header
Path Parameters
uuidHeader Parameters
Response Body
curl -X POST "https://loading/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/actions/reboot" \ -H "X-Api-Key: string"{
"action": "string",
"action_id": "string",
"detail": {},
"duration_ms": 0,
"instance_id": "string",
"message": "string",
"status": "string"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Run Diagnostics
Run on-demand diagnostics — triggers a live deep health check and stores the result.
This is the "something feels wrong, check everything" button.
"Elementary, my dear Watson." — Sherlock Holmes (about diagnosing agent issues)
In: header
Path Parameters
uuidHeader Parameters
Response Body
curl -X POST "https://loading/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/actions/run-diagnostics" \ -H "X-Api-Key: string"{
"cached": false,
"checked_at": "string",
"instance_id": "string",
"status": "string",
"subsystems": {},
"uptime_seconds": 0
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Get Deep Health
Get deep health status for an instance.
Returns cached health_detail from DB by default. Pass ?force=true to fetch live from the agent (slower but guaranteed fresh).
"Open the pod bay doors, HAL." — Dave, 2001: A Space Odyssey (about checking if the agent is truly healthy)
In: header
Path Parameters
uuidQuery Parameters
falseHeader Parameters
Response Body
curl -X GET "https://loading/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/health/deep?force=false" \ -H "X-Api-Key: string"{
"cached": false,
"checked_at": "string",
"instance_id": "string",
"status": "string",
"subsystems": {},
"uptime_seconds": 0
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}List Mnemo memories for an instance
In: header
Path Parameters
uuidQuery Parameters
1001 <= value <= 200Header Parameters
Response Body
curl -X GET "https://loading/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/memory?conversation_id=string&customer_id=string&limit=100" \ -H "X-Api-Key: string"{
"count": 0,
"instance_id": "string",
"memories": [
{}
],
"status": {}
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Store a Mnemo fact/procedural memory for an instance
In: header
Path Parameters
uuidHeader Parameters
Empty Object
Response Body
curl -X POST "https://loading/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/memory" \ -H "X-Api-Key: string" \ -H "Content-Type: application/json" \ -d '{}'{
"instance_id": "string",
"memory": {},
"status": "string"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Clear Mnemo memories for an instance
In: header
Path Parameters
uuidHeader Parameters
Empty Object
Response Body
curl -X DELETE "https://loading/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/memory" \ -H "X-Api-Key: string" \ -H "Content-Type: application/json" \ -d '{}'{
"deleted": 0,
"instance_id": "string",
"status": "string"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}List recent runtime audit events for an instance
In: header
Path Parameters
uuidQuery Parameters
1001 <= value <= 50000 <= valueHeader Parameters
Response Body
curl -X GET "https://loading/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/runtime/audit?limit=100&offset=0" \ -H "X-Api-Key: string"[
{
"conversation_id": "string",
"event_id": "string",
"event_ts": "string",
"event_type": "string",
"id": "string",
"ingested_at": "string",
"metadata_json": {},
"outcome": "string",
"request_id": "string",
"role": "string",
"server_slug": "string",
"source": "string",
"tool_name": "string"
}
]{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Summarize runtime audit events for an instance
In: header
Path Parameters
uuidHeader Parameters
Response Body
curl -X GET "https://loading/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/runtime/audit/summary" \ -H "X-Api-Key: string"{
"by_source": {},
"denied_events": 0,
"error_events": 0,
"success_events": 0,
"total_events": 0
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Redeploy agent runtime
Push updated agent runtime bundle to a running instance. Admin only.
In: header
Path Parameters
uuidHeader Parameters
Response Body
curl -X POST "https://loading/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/runtime/redeploy" \ -H "X-Api-Key: string"{
"instance_id": "string",
"message": "string",
"status": "string",
"task_id": "string"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}List recent runtime rollout history for an instance
In: header
Path Parameters
uuidQuery Parameters
201 <= value <= 10000 <= valueHeader Parameters
Response Body
curl -X GET "https://loading/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/runtime/rollouts?limit=20&offset=0" \ -H "X-Api-Key: string"[
{
"bundle_hash": "string",
"celery_task_id": "string",
"completed_at": "string",
"created_at": "string",
"detail_json": {},
"error_message": "string",
"id": "string",
"instance_id": "string",
"last_result_status": "string",
"rollout_id": "string",
"rollout_scope": "string",
"rollout_status": "string",
"scheduled_countdown_seconds": 0,
"started_at": "string",
"status": "string"
}
]{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Apply all available updates to an instance
Apply all available updates in the right order:
- Skills first (hot-reload, no downtime)
- Runtime last (requires restart)
This is the "Update All" button in the dashboard.
"Fire at will, Commander." — Picard, Star Trek TNG
In: header
Path Parameters
uuidHeader Parameters
Response Body
curl -X POST "https://loading/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/updates/apply-all" \ -H "X-Api-Key: string"{
"instance_id": "string",
"message": "string",
"runtime_task_id": "string",
"skills_applied": [
"string"
]
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Check available updates for an instance
Compare what the agent is running against what's available.
Uses the version manifest stored by the fleet health loop (from the agent's /api/status response). Returns a diff showing which components have updates ready.
Customers see this as "3 updates available" badge on their dashboard. Admins can then apply updates individually or all at once.
"You've got mail." — AOL (about update notifications)
In: header
Path Parameters
uuidHeader Parameters
Response Body
curl -X GET "https://loading/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/updates/available" \ -H "X-Api-Key: string"{
"instance_id": "string",
"mcp_servers": [
{
"available_version": "string",
"changelog": "string",
"component_type": "string",
"current_version": "string",
"has_update": false,
"slug": "string",
"update_reason": "string"
}
],
"runtime": {
"available_version": "string",
"changelog": "string",
"component_type": "string",
"current_version": "string",
"has_update": false,
"slug": "string",
"update_reason": "string"
},
"skills": [
{
"available_version": "string",
"changelog": "string",
"component_type": "string",
"current_version": "string",
"has_update": false,
"slug": "string",
"update_reason": "string"
}
],
"total_available": 0,
"update_policy": {
"mcp_servers": "notify",
"mcp_servers_auto_supported": false,
"mcp_servers_override": "string",
"mcp_servers_source": "platform_default",
"runtime": "notify",
"runtime_auto_supported": true,
"runtime_override": "string",
"runtime_source": "platform_default",
"skills": "notify",
"skills_auto_supported": false,
"skills_override": "string",
"skills_source": "platform_default"
},
"versions_reported_at": "string"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Set update policy for an instance
Configure auto-update, notify, or disabled per component type.
- auto: Platform automatically applies updates when available
- notify: Show "update available" badge, customer clicks to apply
- disabled: No updates, no notifications
"Would you like to know more?" — Starship Troopers (about update notifications)
In: header
Path Parameters
uuidHeader Parameters
Response Body
curl -X PATCH "https://loading/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/updates/policy" \ -H "X-Api-Key: string" \ -H "Content-Type: application/json" \ -d '{}'{
"mcp_servers": "notify",
"mcp_servers_auto_supported": false,
"mcp_servers_override": "string",
"mcp_servers_source": "platform_default",
"runtime": "notify",
"runtime_auto_supported": true,
"runtime_override": "string",
"runtime_source": "platform_default",
"skills": "notify",
"skills_auto_supported": false,
"skills_override": "string",
"skills_source": "platform_default"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}