REST API

Programmatic access
to every capability.

Every feature is a REST endpoint. Authenticate with JWT tokens, manage terminals, containers, files, and AI sessions programmatically.


Authentication

PIN-based authentication.

Get Your PIN

Run dovi pin on your server to display your authentication PIN. Use this PIN to authenticate from the mobile app or any API client.

$ dovi pin
PIN: 847291
JWT Bearer Token

POST the PIN to /api/auth/callback to receive a JWT bearer token. Include this token in the Authorization header for all subsequent API requests.

Authorization: Bearer eyJhbG...

Endpoints

Nine endpoint groups.

Base URL: https://<your-domain>/api

/api/auth/*
POSTGET

PIN-based authentication, JWT token generation, device registration, and session management.

/api/stats
GET

Real-time system monitoring: CPU, memory, disk, network usage, Docker containers, and top processes.

/api/files/*
GETPOSTPUTDELETE

List directories, read files, search content, create folders, upload files, delete entries, and git-clone repositories.

/api/docker/containers
GETPOST

List containers, start, stop, restart, rebuild, and stream container logs in real time.

/api/sessions
GETPOSTPUTDELETE

Create, list, update, and delete terminal sessions. WebSocket support for live terminal streaming.

/api/ai/*
GETPOST

Manage Claude Code AI sessions, run setup, handle OAuth authentication for AI integrations.

/api/sites
GET

Discover nginx-configured sites on your server. Returns domains, SSL status, and proxy targets.

/api/apps
GETPOSTPUTDELETE

Register and manage deployed applications. Custom labels, badges, and quick-access links for the dashboard.

/api/notify/*
POSTGET

Register Expo push tokens, manage notification preferences, and trigger push alerts to connected devices.


Example

Get system stats
in one request.

GET /api/stats with your JWT token. Returns real-time CPU, memory, disk, network, and Docker container stats in a single response.

curl
$ curl -X GET \
  https://<your-domain>/api/stats \
  -H "Authorization: Bearer eyJhbG..."
 
// Response
{ "cpu": 12.4,
  "memory": { "used": 1842, "total": 4096 },
  "disk": { "used": 24.1, "total": 80.0 },
  "docker": { "running": 5, "stopped": 2 },
  "network": { "rx": 142, "tx": 87 } }

Rate Limits & Format

Built for reliability.

Authentication
JWT Bearer Token

PIN-based auth returns a JWT token. Include it in the Authorization header. Tokens are scoped per device.

Response format
JSON

All endpoints return JSON. Terminal sessions use WebSocket for real-time streaming. File uploads accept multipart/form-data.

Transport
HTTPS + WSS

All traffic encrypted via SSL. REST over HTTPS for commands. WebSocket over WSS for terminal sessions.


Start building with the API.

Full REST API access included with every DoVisual server.

Read the docs