Skip to main content
Version: 1.1.0

Sessions & Dashboard API

Endpoints for terminal sessions and dashboard statistics.

List Active Sessions

GET /api/terminal/sessions

Get all active terminal sessions.

Headers:

Authorization: Bearer YOUR_JWT_TOKEN

Response:

{
"sessions": [
{
"session_id": "sess_123456",
"agent_id": "abc123",
"machine_name": "production-server",
"user_id": "user_456",
"username": "johndoe",
"source": "ui",
"status": "active",
"started_at": "2026-02-06T12:00:00Z",
"browser": "Chrome",
"os": "macOS"
}
]
}

Session Sources:

SourceDescription
uiWeb Terminal (Browser)
cliVSAY Shell CLI
vscodeVSCode Extension

Close Session

DELETE /api/terminal/sessions/:session_id

Terminate an active terminal session.

Response:

{
"message": "Session closed"
}

Example:

curl -X DELETE \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
https://your-vsay-instance.com/api/terminal/sessions/sess_123456

Dashboard Statistics

GET /api/dashboard/stats

Get overview statistics for your machines.

Response:

{
"online_count": 5,
"offline_count": 2,
"avg_cpu": 35.5,
"avg_memory": 62.3,
"avg_disk": 48.0
}
FieldDescription
online_countNumber of online machines
offline_countNumber of offline machines
avg_cpuAverage CPU usage across online machines
avg_memoryAverage memory usage across online machines
avg_diskAverage disk usage across online machines

Recent Activity

GET /api/dashboard/recent-activity

Get recent command activity across all machines (last 10 activities).

Response:

{
"activities": [
{
"id": "log_123",
"command": "systemctl status nginx",
"machine_name": "production-server",
"agent_id": "abc123",
"username": "johndoe",
"source": "ui",
"timestamp": "2026-02-06T12:00:00Z"
}
]
}

Recent Machines

GET /api/dashboard/recent-machines

Get recently active machines (last 5 machines).

Response:

{
"machines": [
{
"agent_id": "abc123",
"name": "production-server",
"status": "online",
"cpu_percent": 25.5,
"memory_percent": 60.2,
"last_active": "2026-02-06T12:00:00Z"
}
]
}

Health Check

GET /health

Check if the VSAY Terminal backend is running.

Response:

{
"status": "ok"
}

This endpoint does not require authentication.