Features Services Pricing Documentation Changelog About PanelOps Contact & Support
Create Account
PanelOps v14 Documentation 4 min read

REST API & Automation

API keys, authentication headers, and programmatic endpoints.

Documentation REST API & Automation

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