REST API reference

Everything VectorPanel does in the dashboard, you can do with the API. This is the same API the dashboard uses — there are no hidden endpoints.

Base URL

All endpoints are rooted at your panel host, under /api/v1:

https://your-server:8443/api/v1

Authentication

Generate an API token in Dashboard → Settings → API tokens. Pass it as a bearer token:

curl https://your-server:8443/api/v1/sites \
  -H "Authorization: Bearer vp_live_abc123..."

Tokens can be scoped to read-only or granted full write access. Rotate them any time — revoked tokens stop working within 60 seconds across all servers.

Rate limits

PlanRequests / minuteBurst
Free60120
Premium6001,200

Every response includes X-RateLimit-Remaining and X-RateLimit-Reset headers.

Pagination

Collection endpoints use cursor pagination. Pass ?limit=50&after=CURSOR. Responses include a meta envelope:

{
  "data": [ ... ],
  "meta": {
    "has_more": true,
    "next_cursor": "eyJpZCI6InNpdGVfMTIzIn0"
  }
}

Errors

Errors follow a consistent shape:

{
  "error": {
    "code": "site_not_found",
    "message": "No site with id site_xyz was found.",
    "request_id": "req_01HY9..."
  }
}

Always include request_id when contacting support — it lets us trace the exact call.

Endpoints

Sites

MethodPathDescription
GET/sitesList all sites
POST/sitesCreate a new site
GET/sites/:idGet a single site
PATCH/sites/:idUpdate a site
DELETE/sites/:idDelete a site
POST/sites/:id/deployTrigger a deploy
POST/sites/:id/sslRequest / renew SSL

Example: create a site

curl -X POST https://your-server:8443/api/v1/sites \
  -H "Authorization: Bearer vp_live_abc123..." \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "app.example.com",
    "runtime": "node:20",
    "git": {
      "repo": "git@github.com:acme/app.git",
      "branch": "main"
    }
  }'

Databases

MethodPathDescription
GET/databasesList databases
POST/databasesCreate (MySQL, PostgreSQL, Redis)
POST/databases/:id/backupTrigger a backup
POST/databases/:id/restoreRestore from a backup

Licenses

MethodPathDescription
GET/licensesList your licenses
POST/licenses/activateActivate a key on this server
POST/licenses/deactivateFree up a key

SDKs

First-party SDKs are available for:

  • npm install @servervector/node
  • pip install servervector
  • go get github.com/servervector/go

Or just use curl — the API is designed to be easy to hit with anything that speaks HTTP.

Next: CLI reference →