REST API Reference¶
The StarkOne REST API is a JSON API served by the panel binary on TCP port 2087, under the /api/ path prefix. 800+ endpoints are documented in this reference.
Base URL¶
Authentication¶
All endpoints (except /api/health, /api/version, /api/license/*, and a small set of public probes) require a Bearer token:
Tokens are obtained from POST /api/auth/login. See Authentication for the full flow.
When a token is missing or invalid, the API returns 401 Unauthorized. When the license is missing or blocked, it returns 403 no_license or 403 license_blocked.
Response Envelope¶
All responses use a consistent shape.
Some list endpoints return { "data": [ ... ] } instead of an object - see each endpoint's page for the exact shape.
Authorization Guards¶
Many endpoints are protected by middleware guards. The most common are:
| Guard | Meaning |
|---|---|
RequireSuperuser() |
Caller must be a superuser. |
RequirePermission(db, "<perm>") |
Caller must hold the named permission on their role. |
RequirePlugin(db, "<plugin-id>") |
The named plugin must be installed and enabled on this server. |
The endpoint tables on each page list the exact guards for every route.
Reference by area¶
Auth & Identity¶
- Authentication - login, logout, TOTP setup (6)
- Users & RBAC - panel users, roles, permissions (14)
- License - activation, status (7, public)
- StarkBee Gateway - partner gateway activation (14)
- StarkLayer - remote-monitoring probe endpoints (3)
Websites¶
- Webapps & Websites - sites, SSL, cron, aliases, SSH keys (92)
- Databases (per-website) - DB lifecycle per webapp (30)
- File Manager - files, Git, ACE editor (35)
- PHP - versions and settings (10)
- :material-ftp: FTP - FTP accounts per webapp (7)
- Varnish - per-site cache controls (6)
- ShareLink - public secure shares (7)
Databases¶
- MySQL / MariaDB - server-level MySQL (36)
- PostgreSQL - server-level Postgres (16)
- MongoDB - server-level Mongo (11)
- Redis - Redis stats (7)
- Replication ยท Replication servers - primary/replica setup (12)
- ProxySQL - MySQL load balancing (22)
Network & DNS¶
- Advanced Network - BGP, GRE/VXLAN, IPSec, Keepalived (88)
- WireGuard / Secure Gateway - VPN users & nodes (34)
- PowerDNS - authoritative DNS zones (37)
- DNS Load Balancer - DNS-based LB (28)
- :material-load-balancer: HAProxy - L4/L7 load balancing (28)
- NetProbe - packet capture, ping, traceroute (14)
Security¶
- :material-firewall: Firewall (CSF) - allow/deny, country blocks (32)
- Nginx ACL - F5-style ACL policies (21)
- WAF - ModSecurity, signatures, events (19)
Observability & Ops¶
- :material-vault: LogVault - centralized logs via OpenSearch (15)
- Uptime Monitor - HTTP/TCP checks (8)
- Server Info - host metrics (4)
- System - LVM snapshots and host operations (17)
- Tools - DNS, hosts file, port utilities (6)
AI & Automation¶
- AI Assistant - chat, OpenClaw web console (42)
- Init Script - startup script management (8)
- Plugins - enable/disable plugins (3)
- Remote Servers - multi-server proxy (3)
- Microsoft 365 Backup - mailbox backups (14)
- MCP Server - AI agent access with scoped keys (9)
- Docker Manager - containers, images, stacks (24)
- Supabase - self-hosted Supabase projects (9)
Platform¶
- Settings - server-wide settings (37)
- Mail Server - smarthost relay (3)
- Notifications - user feed (3)
System endpoints¶
A handful of endpoints are top-level and unauthenticated, used for health checks and bootstrap:
| Method | Path | Purpose |
|---|---|---|
GET |
/api/health |
Liveness probe. Returns { "status": "ok" }. |
GET |
/api/version |
Returns current panel version + update check. No auth. |
GET |
/api/license/block-status |
Public - used by the UI to render the licensing-required page. |
GET |
/api/license/info |
Public - current license info. |
POST |
/api/license/recheck |
Public - re-validate license after a renewal. |
POST |
/api/license/activate |
Public - used to activate when no license exists. |
Rate limiting¶
The panel does not currently rate-limit authenticated calls; protect the panel port (2087) with the built-in CSF firewall (see Firewall).