API Documentation

Integrate WisPanel with your applications using our comprehensive REST API.

Base URL

https://your-server-ip:2083/api/v1

All API endpoints are relative to this base URL.

Packages

Packages

Three stores, same verbs/shape: /api/v1/packages (hosting), /api/v1/user-packages, /api/v1/reseller-packages. Auth: Authorization: Bearer wsp_…

Error envelope: { "success": false, "code": "VALIDATION_ERROR", "error": "Package name is required", "message": "…", "status": 400 }


List — GET /api/v1/packages/

Response 200 (verified live):

[ { "name": "User 10GB", "owner": "admin", "type": "user",
    "bandwidth": -1, "quota": 10000, "inode": -1,
    "vdomains": 50, "nsubdomains": -1, "domainptr": -1,
    "nemails": -1, "nemailf": -1, "nemailml": -1, "nemailr": -1,
    "email_daily_limit": 0, "mysql": -1, "ftp": -1,
    "aftp": false, "cgi": false, "php": true, "ssl": true,
    "ssh": false, "cron": true, "spam": true, "catchall": false,
    "dnscontrol": true, "sysinfo": true } ]

-1 = unlimited. GET /packages/all (unpaginated) · /packages/:name.

Create — POST /api/v1/packages/

Request:

{ "name": "Starter", "quota": 5120, "bandwidth": 102400,
  "vdomains": 10, "mysql": 5, "ftp": 5, "php": true, "ssl": true }

Response 201 (verified live — server echoes the full package, unset numerics default to 0):

{ "name": "Starter", "owner": "admin", "type": "user",
  "bandwidth": 102400, "quota": 5120, "inode": 0, "vdomains": 10,
  "nsubdomains": 0, "domainptr": 0, "nemails": 0, "mysql": 5,
  "ftp": 5, "aftp": false, "php": true, "ssl": true, "ssh": false,
  "cron": false }

Response 400 (verified live): … "error": "Package name is required" …

PUT /packages/:name (same body). DELETE /packages/:name → 200:

{ "message": "Package deleted successfully" }

user-packages / reseller-packages = identical verbs & shape.


Conventions → Authentication, Error Handling.

Rate Limiting

API requests are limited to 60 requests per minute per API token.

  • X-RateLimit-Limit: Maximum requests per minute
  • X-RateLimit-Remaining: Remaining requests
  • X-RateLimit-Reset: Unix timestamp when limit resets