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.

Resellers

Resellers

Manage reseller accounts. Admin only (reseller reads own). Base: /api/v1/resellers · Auth: Authorization: Bearer wsp_…

Error envelope: { "success": false, "code": "VALIDATION_ERROR", "error": "Username, email, and password are required", "message": "…", "status": 400 }


List — GET /api/v1/resellers/

Response 200 (verified live): [], or reseller objects. GET /resellers/dashboard → admin overview.

Create — POST /api/v1/resellers/

Request:

{ "username": "partner1", "email": "[email protected]",
  "password": "S3cure•pass" }

Response 201 (verified live — minimal ack):

{ "success": true, "message": "Reseller created successfully",
  "username": "partner1", "package": "default" }

Response 400 (verified live): … "error": "Username, email, and password are required" …

Get one — GET /api/v1/resellers/:username

Response 200 (verified live — note can_grant_* flags):

{ "username": "partner1", "package": "default",
  "max_users": 5, "max_domains": 10, "max_databases": 20,
  "max_email_accounts": 50, "max_ftp_accounts": 10,
  "disk_quota_mb": 10240, "bandwidth_quota_mb": 51200,
  "can_grant_php": true, "can_grant_cgi": false,
  "can_grant_ssl": true, "can_grant_ssh": false,
  "can_grant_cron": true, "can_grant_spam": true,
  "can_grant_catchall": false, "can_grant_dnscontrol": true,
  "can_grant_sysinfo": false }

Delete — DELETE /api/v1/resellers/:username

Response 200 (verified live):

{ "success": true, "message": "Reseller deleted" }

Per-reseller config — /api/v1/resellers/:username/...

GET | PUT /limits { "max_users": 100 }; GET /allocation · /usage · /users; GET | PUT | DELETE /branding; GET | POST /ips { "ip": "203.0.113.5" } · DELETE /ips/:ip; GET | PUT /nameservers · /overselling; POST /resellers/transfer-user.


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