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.

Version, Updates & License

Version, Updates & License (panel side)

Panel checks its own version & license vs the portal. Publishing releases TO the portal is a separate admin API (portal Releases doc). Role: admin.


Version — /api/v1/version

GET /version/info (verified live): { "version": "1.4.2", "channel": "stable", "build_time": "unknown", "git_commit": "unknown", "info": "WisPanel v1.4.2" }

GET /version/check (verified live): { "update_available": false, "current_version": "1.4.2", "latest_version": "1.4.2", "changelog": "## WisPanel 1.4.2 …" }

GET /version/changelog · /version/update/status; POST /version/update (no body) · /version/direct-update.

License — GET /api/v1/license/

Response 200 (verified live):

{ "license": {
    "key": "WISP-****SA6T", "tier": "free", "is_valid": true,
    "has_license_file": true, "needs_refresh": false,
    "max_users": 30, "max_domains": 100, "max_databases": -1,
    "expires_at": "2036-05-11T06:10:02+07:00",
    "valid_until": "2026-05-22T14:05:26+07:00",
    "last_checked": null },
  "usage": { "accounts": 10, "databases": 2, "domains": 7 } }

GET /license/summary · /license/limits · /license/disabled-resources.

Activate — POST /api/v1/license/activate

Request: { "key": "WISP-XXXX-XXXX-XXXX" }

Response 400 (verified live — empty body):

{ "success": false, "code": "VALIDATION_ERROR",
  "error": "License key is required",
  "message": "License key is required", "status": 400 }

POST /license/verify · /license/refresh · /license/enforce · /license/re-enable (no body).

The panel↔portal contract (/license/*, /download/* on wispanel.com) is in License & Update API (Client Integration).


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