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/v1Authentication
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
| Plan | Requests / minute | Burst |
|---|---|---|
| Free | 60 | 120 |
| Premium | 600 | 1,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
| Method | Path | Description |
|---|---|---|
GET | /sites | List all sites |
POST | /sites | Create a new site |
GET | /sites/:id | Get a single site |
PATCH | /sites/:id | Update a site |
DELETE | /sites/:id | Delete a site |
POST | /sites/:id/deploy | Trigger a deploy |
POST | /sites/:id/ssl | Request / 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
| Method | Path | Description |
|---|---|---|
GET | /databases | List databases |
POST | /databases | Create (MySQL, PostgreSQL, Redis) |
POST | /databases/:id/backup | Trigger a backup |
POST | /databases/:id/restore | Restore from a backup |
Licenses
| Method | Path | Description |
|---|---|---|
GET | /licenses | List your licenses |
POST | /licenses/activate | Activate a key on this server |
POST | /licenses/deactivate | Free up a key |
SDKs
First-party SDKs are available for:
npm install @servervector/nodepip install servervectorgo get github.com/servervector/go
Or just use curl — the API is designed to be easy to hit with anything that speaks HTTP.