REST API Reference & Automation
PanelOps provides an enterprise-grade RESTful HTTP API allowing you to automate server management, trigger zero-downtime deployments, provision databases, control App Store containers, and query real-time telemetry.
🔑 Authentication
All API requests require authentication via an API Key. You can pass your API Key using either the x-api-key header or a standard HTTP Authorization: Bearer <key> header.
# Using x-api-key Header
curl -X GET https://your-panelops-domain.com/api/v1/system/health \
-H "x-api-key: 64f1a2b3c4d5e6f7a8b9c0d1:9e78a641f92b7c..." \
-H "Content-Type: application/json"
# Using Authorization Bearer
curl -X GET https://your-panelops-domain.com/api/v1/servers \
-H "Authorization: Bearer 64f1a2b3c4d5e6f7a8b9c0d1:9e78a641f92b7c..."
API Keys can be generated and revoked in Settings → API Keys (
/settings/api-keys).
🛡️ Permission Scopes
API keys can be restricted to specific granular permission scopes:
| Scope | Permission Level |
|---|---|
all |
Full Administrator Access across all endpoints. |
read |
Read-only access (query servers, projects, metrics, catalog, and backups). |
deploy |
Can trigger deployments, restart containers, and stop projects. |
write |
Can provision new projects, databases, domains, and app store instances. |
admin |
Destructive actions: server reboots, Docker system prunes, and deletions. |
📡 Complete Endpoints Reference
1. System & Overview
GET /api/v1/system/health
Returns system health, version, uptime, and database connectivity.
- Scope: None (Public status)
- Response:
{
"success": true,
"data": {
"status": "operational",
"version": "14.0.0",
"uptimeSeconds": 18420,
"nodeVersion": "v20.12.0",
"memoryUsageMb": 84,
"databaseState": "connected",
"timestamp": "2026-08-22T17:40:00.000Z"
}
}
GET /api/v1/system/stats
Returns aggregated counts of servers, projects, apps, databases, domains, and unread alerts.
- Scope:
read
2. Servers & Infrastructure
GET /api/v1/servers
List all connected servers. Optional query: ?status=online|offline.
- Scope:
read
GET /api/v1/servers/:id/metrics
Queries live CPU, memory, disk, and container telemetry from the target host.
- Scope:
read
POST /api/v1/servers/:id/reboot
Reboots the remote server safely via SSH.
- Scope:
admin
POST /api/v1/servers/:id/docker/prune
Executes docker system prune -af --volumes to free up disk space.
- Scope:
admin
3. Projects & Git Deployments
GET /api/v1/projects
List all configured Git projects.
- Scope:
read
POST /api/v1/projects
Creates a new project linked to a GitHub repository.
- Scope:
write
{
"name": "My Next.js App",
"serverId": "64f1a2b3c4d5e6f7a8b9c0d1",
"gitUrl": "https://github.com/myorg/myapp.git",
"branch": "main",
"port": 3000
}
POST /api/v1/projects/:id/deploy
Triggers an automated zero-downtime blue/green deployment build.
- Scope:
deploy
GET /api/v1/projects/:id/logs?lines=100
Fetches live container logs.
- Scope:
read
POST /api/v1/projects/:id/restart
Restarts the active project container.
- Scope:
deploy
4. App Store
GET /api/v1/appstore/catalog
Search and filter 100+ application manifests. Query params: ?category=CMS&search=wordpress.
- Scope:
read
POST /api/v1/appstore/install
Deploys a multi-container application with custom slug and credentials.
- Scope:
deploy
{
"appId": "wordpress",
"serverId": "64f1a2b3c4d5e6f7a8b9c0d1",
"name": "My Blog",
"slug": "my-blog",
"adminUser": "admin",
"adminPassword": "SecurePassword123!",
"adminEmail": "admin@example.com"
}
POST /api/v1/appstore/installed/:id/restart
Restarts all containers in the installed application stack.
- Scope:
deploy
5. WordPress Toolkit
GET /api/v1/wptoolkit/:appId/status
Returns WordPress version, debug status, maintenance mode, and plugin count.
- Scope:
read
POST /api/v1/wptoolkit/:appId/command
Executes an arbitrary WP-CLI command inside the WordPress container.
- Scope:
write
{
"command": "wp post list --post_status=publish"
}
POST /api/v1/wptoolkit/:appId/cache/flush
Flushes object caches and transients.
- Scope:
write
6. Managed Databases
GET /api/v1/databases
List database instances (MySQL, Postgres, Mongo, Redis, MariaDB).
- Scope:
read
POST /api/v1/databases/:id/backup
Triggers an immediate database dump and backup archive.
- Scope:
write
7. Domains & SSL Suite
GET /api/v1/domains
List all registered domains, SSL status, and target proxy routing.
- Scope:
read
POST /api/v1/domains/:id/ssl/request
Issues a Let's Encrypt SSL certificate.
- Scope:
write
POST /api/v1/domains/:id/ssl/renew
Forces an immediate Certbot SSL renewal.
- Scope:
write