All endpoints are under /api/v1/. Authentication is required unless noted.
Authentication
| Method | Path | Auth | Description |
|---|
GET | /api/v1/auth/setup-status | None | Check if setup is needed |
POST | /api/v1/auth/setup | None | Create initial admin account |
POST | /api/v1/auth/login | None | Login, returns JWT + refresh cookie |
POST | /api/v1/auth/refresh | Cookie | Refresh access token |
POST | /api/v1/auth/logout | Cookie | Invalidate refresh token |
POST | /api/v1/auth/enroll | Token | Enroll a new node |
Nodes
| Method | Path | Auth | Description |
|---|
GET | /api/v1/nodes | JWT | List all nodes |
GET | /api/v1/nodes/:id | JWT | Get node details |
PUT | /api/v1/nodes/:id | JWT | Update node (name, tags) |
DELETE | /api/v1/nodes/:id | JWT | Delete a node |
GET | /api/v1/nodes/:id/stats | JWT | Get system stats |
POST | /api/v1/nodes/:id/ws-token | Bearer | Get WebSocket token |
POST | /api/v1/nodes/:id/update | JWT | Trigger self-update |
POST | /api/v1/nodes/:id/uninstall | JWT | Trigger uninstall |
Repositories
| Method | Path | Auth | Description |
|---|
GET | /api/v1/repos | JWT | List repositories |
POST | /api/v1/repos | JWT | Create repository |
GET | /api/v1/repos/:id | JWT | Get repository details |
PUT | /api/v1/repos/:id | JWT | Update repository |
DELETE | /api/v1/repos/:id | JWT | Delete repository |
POST | /api/v1/repos/:id/prune | JWT | Trigger prune |
POST | /api/v1/repos/:id/check | JWT | Trigger integrity check |
POST | /api/v1/repos/:id/stats | Bearer | Report repo stats (node) |
POST | /api/v1/repos/:id/refresh-stats | JWT | Refresh stats via node |
GET | /api/v1/repo-stats | JWT | Latest stats for all repos |
Plans
| Method | Path | Auth | Description |
|---|
GET | /api/v1/plans | JWT | List plans |
POST | /api/v1/plans | JWT | Create plan |
GET | /api/v1/plans/:id | JWT | Get plan details |
PUT | /api/v1/plans/:id | JWT | Update plan |
DELETE | /api/v1/plans/:id | JWT | Delete plan |
POST | /api/v1/plans/:id/duplicate | JWT | Duplicate plan |
Jobs
| Method | Path | Auth | Description |
|---|
GET | /api/v1/jobs | JWT | List jobs |
POST | /api/v1/jobs | JWT | Create/trigger job |
GET | /api/v1/jobs/:id | JWT | Get job details |
POST | /api/v1/jobs/:id/progress | Bearer | Report progress (node) |
POST | /api/v1/jobs/:id/result | Bearer | Report result (node) |
Snapshots
| Method | Path | Auth | Description |
|---|
GET | /api/v1/snapshots | JWT | List snapshots |
GET | /api/v1/snapshots/:id/browse | JWT | Browse snapshot files |
GET | /api/v1/snapshots/:id/download | JWT | Download file/folder |
Restore Jobs
| Method | Path | Auth | Description |
|---|
GET | /api/v1/restore-jobs | JWT | List restore jobs |
POST | /api/v1/restore-jobs | JWT | Create restore job |
GET | /api/v1/restore-jobs/:id | JWT | Get restore job details |
Tokens
| Method | Path | Auth | Description |
|---|
GET | /api/v1/tokens | JWT | List enrollment tokens |
POST | /api/v1/tokens | JWT | Create token |
DELETE | /api/v1/tokens/:id | JWT | Revoke token |
Events
| Method | Path | Auth | Description |
|---|
POST | /api/v1/events/token | JWT | Get SSE auth token |
GET | /api/v1/events | Token | SSE event stream |
Agent
| Method | Path | Auth | Description |
|---|
GET | /api/v1/agent/download | None | Download node agent binary |
GET | /api/v1/agent/version | None | Get latest agent version |
GET | /install.sh | None | Node install script |
Health
| Method | Path | Auth | Description |
|---|
GET | /api/v1/health | None | Health check |