Skip to main content

Admin

Fleet stats, agent activation, demo seed.

MethodPathScopeSummary
PATCH/admin/agents/{agent_id}adminUpdate Agent
POST/admin/seedadminSeed Test Agents
GET/admin/statsadminGet System Stats

Try it​

curl -sf -H "Authorization: Bearer $VIGIL_KEY" "$VIGIL_URL/admin/stats" # admin key

Routes​

PATCH /admin/agents/{agent_id}​

Update Agent. Scope: admin.

Set is_active, kind, public and public_links. public: true opens the agent's record at GET /public/agents/{org_slug}/{agent_id} to anyone; public: false closes it again. public_links is the owner's own list of at most five {kind, url} entries (kind one of website, github, x, moltbook, other; http or https URLs up to 200 characters) shown on the public record and nowhere else.

ParameterInRequiredTypeNotes
agent_idpathyesstring

Request body:

{
"is_active": true,
"kind": "production | sandbox | system | null",
"public": true,
"public_links": [
{
"kind": "website | github | x | moltbook | other",
"url": "string"
}
]
}
FieldTypeRequiredNotes
is_activeboolean | nullno
kindproduction, sandbox, system | nullno
publicboolean | nullno
public_linksarray of PublicLink | nullno

Response 200:

{
"id": 0,
"org_id": 0,
"agent_id": "string",
"name": "string",
"description": "string | null",
"registered_at": "2026-09-08T00:00:00Z",
"is_active": true,
"kind": "string",
"public": true,
"public_links": "string | null",
"currently_monitored": true,
"monitoring_toggled_at": "2026-09-08T00:00:00Z | null"
}

POST /admin/seed​

Seed Test Agents. Scope: admin.

Seed the 5 pre-built health/wellness test agents. Idempotent.

Response 200:

"any"

GET /admin/stats​

Get System Stats. Scope: admin.

Response 200:

{
"total_agents": 0,
"active_agents": 0,
"total_events": 0,
"total_scores": 0,
"agents_in_alert": 0,
"agents_in_hold": 0,
"agents_passing": 0,
"avg_bii": 0,
"studio_agents": 0,
"deployed_agents": 0
}

Generated from openapi.json (VIGIL 0.2.0). Scopes follow the router dependencies in VIGIL_SPEC.md section 4.2.