HydraCore
API by router

Instance ops

Rollout timeline with per-target timing for visualization

GET
/v1/instances/fleet/runtime-rollouts/{rollout_id}/timeline
AuthorizationBearer <token>

In: header

Path Parameters

rollout_idRollout Id
Formatuuid

Header Parameters

X-Api-Key?X-Api-Key

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.

POST
/v1/instances/fleet/runtime/rollout
AuthorizationBearer <token>

In: header

Query Parameters

override_window?Override Window

Emergency override: bypass maintenance window. Requires tenant-wide admin flag.

Defaultfalse

Header Parameters

X-Api-Key?X-Api-Key

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

GET
/v1/instances/fleet/runtime/rollouts
AuthorizationBearer <token>

In: header

Query Parameters

limit?Limit
Default20
Range1 <= value <= 100
offset?Offset
Default0
Range0 <= value

Header Parameters

X-Api-Key?X-Api-Key

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

GET
/v1/instances/fleet/runtime/rollouts/{rollout_id}
AuthorizationBearer <token>

In: header

Path Parameters

rollout_idRollout Id
Formatuuid

Header Parameters

X-Api-Key?X-Api-Key

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

POST
/v1/instances/fleet/runtime/rollouts/{rollout_id}/cancel
AuthorizationBearer <token>

In: header

Path Parameters

rollout_idRollout Id
Formatuuid

Query Parameters

force?Force

Hard-stop: also terminate in-progress tasks via SIGTERM

Defaultfalse

Header Parameters

X-Api-Key?X-Api-Key

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

POST
/v1/instances/fleet/runtime/rollouts/{rollout_id}/pause
AuthorizationBearer <token>

In: header

Path Parameters

rollout_idRollout Id
Formatuuid

Header Parameters

X-Api-Key?X-Api-Key

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

POST
/v1/instances/fleet/runtime/rollouts/{rollout_id}/resume
AuthorizationBearer <token>

In: header

Path Parameters

rollout_idRollout Id
Formatuuid

Header Parameters

X-Api-Key?X-Api-Key

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

POST
/v1/instances/fleet/runtime/rollouts/{rollout_id}/targets/{target_id}/retry
AuthorizationBearer <token>

In: header

Path Parameters

rollout_idRollout Id
Formatuuid
target_idTarget Id
Formatuuid

Header Parameters

X-Api-Key?X-Api-Key

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

GET
/v1/instances/fleet/updates/policy
AuthorizationBearer <token>

In: header

Header Parameters

X-Api-Key?X-Api-Key

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

PATCH
/v1/instances/fleet/updates/policy
AuthorizationBearer <token>

In: header

Header Parameters

X-Api-Key?X-Api-Key
maintenance_window_end_hour_utc?Maintenance Window End Hour Utc
maintenance_window_start_hour_utc?Maintenance Window Start Hour Utc
max_parallel_rollouts?Max Parallel Rollouts
mcp_servers_default?Mcp Servers Default
runtime_default?Runtime Default
skills_default?Skills Default

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)

GET
/v1/instances/{instance_id}/actions
AuthorizationBearer <token>

In: header

Path Parameters

instance_idInstance Id
Formatuuid

Query Parameters

limit?Limit
Default20
Range1 <= value <= 100

Header Parameters

X-Api-Key?X-Api-Key

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

POST
/v1/instances/{instance_id}/actions/clear-circuit-breakers
AuthorizationBearer <token>

In: header

Path Parameters

instance_idInstance Id
Formatuuid

Header Parameters

X-Api-Key?X-Api-Key

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

POST
/v1/instances/{instance_id}/actions/power-cycle
AuthorizationBearer <token>

In: header

Path Parameters

instance_idInstance Id
Formatuuid

Header Parameters

X-Api-Key?X-Api-Key

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

POST
/v1/instances/{instance_id}/actions/reboot
AuthorizationBearer <token>

In: header

Path Parameters

instance_idInstance Id
Formatuuid

Header Parameters

X-Api-Key?X-Api-Key

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)

POST
/v1/instances/{instance_id}/actions/run-diagnostics
AuthorizationBearer <token>

In: header

Path Parameters

instance_idInstance Id
Formatuuid

Header Parameters

X-Api-Key?X-Api-Key

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)

GET
/v1/instances/{instance_id}/health/deep
AuthorizationBearer <token>

In: header

Path Parameters

instance_idInstance Id
Formatuuid

Query Parameters

force?Force
Defaultfalse

Header Parameters

X-Api-Key?X-Api-Key

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

GET
/v1/instances/{instance_id}/memory
AuthorizationBearer <token>

In: header

Path Parameters

instance_idInstance Id
Formatuuid

Query Parameters

conversation_id?Conversation Id
customer_id?Customer Id
limit?Limit
Default100
Range1 <= value <= 200

Header Parameters

X-Api-Key?X-Api-Key

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

POST
/v1/instances/{instance_id}/memory
AuthorizationBearer <token>

In: header

Path Parameters

instance_idInstance Id
Formatuuid

Header Parameters

X-Api-Key?X-Api-Key

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

DELETE
/v1/instances/{instance_id}/memory
AuthorizationBearer <token>

In: header

Path Parameters

instance_idInstance Id
Formatuuid

Header Parameters

X-Api-Key?X-Api-Key

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

GET
/v1/instances/{instance_id}/runtime/audit
AuthorizationBearer <token>

In: header

Path Parameters

instance_idInstance Id
Formatuuid

Query Parameters

limit?Limit
Default100
Range1 <= value <= 500
offset?Offset
Default0
Range0 <= value

Header Parameters

X-Api-Key?X-Api-Key

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

GET
/v1/instances/{instance_id}/runtime/audit/summary
AuthorizationBearer <token>

In: header

Path Parameters

instance_idInstance Id
Formatuuid

Header Parameters

X-Api-Key?X-Api-Key

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.

POST
/v1/instances/{instance_id}/runtime/redeploy
AuthorizationBearer <token>

In: header

Path Parameters

instance_idInstance Id
Formatuuid

Header Parameters

X-Api-Key?X-Api-Key

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

GET
/v1/instances/{instance_id}/runtime/rollouts
AuthorizationBearer <token>

In: header

Path Parameters

instance_idInstance Id
Formatuuid

Query Parameters

limit?Limit
Default20
Range1 <= value <= 100
offset?Offset
Default0
Range0 <= value

Header Parameters

X-Api-Key?X-Api-Key

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:

  1. Skills first (hot-reload, no downtime)
  2. Runtime last (requires restart)

This is the "Update All" button in the dashboard.

"Fire at will, Commander." — Picard, Star Trek TNG

POST
/v1/instances/{instance_id}/updates/apply-all
AuthorizationBearer <token>

In: header

Path Parameters

instance_idInstance Id
Formatuuid

Header Parameters

X-Api-Key?X-Api-Key

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)

GET
/v1/instances/{instance_id}/updates/available
AuthorizationBearer <token>

In: header

Path Parameters

instance_idInstance Id
Formatuuid

Header Parameters

X-Api-Key?X-Api-Key

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)

PATCH
/v1/instances/{instance_id}/updates/policy
AuthorizationBearer <token>

In: header

Path Parameters

instance_idInstance Id
Formatuuid

Header Parameters

X-Api-Key?X-Api-Key
mcp_servers?Mcp Servers
runtime?Runtime
skills?Skills

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"
    }
  ]
}