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.

DNS Management

DNS Management

Manage zones & records. Base: /api/v1/dns Β· Auth: Authorization: Bearer wsp_…

Error envelope: { "success": false, "code": "NOT_FOUND", "error": "record not found", "message": "…", "status": 404 }


Get zone β€” GET /api/v1/dns/:domain

Response 200 (verified live):

{ "domain": "example.com", "username": "", "serial": 2026051104,
  "refresh": 3600, "retry": 1800, "expire": 604800,
  "min_ttl": 3600, "ns1": "", "ns2": "", "admin_email": "",
  "records": [
    { "type": "A", "name": "@", "value": "161.248.4.182",
      "ttl": 3600, "priority": 0, "weight": 0, "port": 0 } ] }

Records β€” /api/v1/dns/:domain/records

GET /api/v1/dns/:domain/records β†’ array of record objects.

POST /api/v1/dns/:domain/records Request:

{ "type": "A", "name": "www", "value": "203.0.113.10", "ttl": 3600 }

Response 201 (verified live):

{ "success": true, "message": "DNS record added",
  "record": { "type": "A", "name": "www", "value": "203.0.113.10",
    "ttl": 3600, "priority": 0, "weight": 0, "port": 0 } }

PUT /dns/:domain/records updates a record. DELETE /dns/:domain/records Request: { "type": "A", "name": "www", "value": "203.0.113.10" } β†’ 200 (verified live):

{ "success": true, "message": "DNS record deleted" }

POST /dns/:domain/reset (no body) rebuilds the default zone.

Email / CAA / TLSA / templates

POST /dns/:domain/email-records (SPF/DKIM/MX). CAA GET/POST /dns/:domain/caa { "flag": 0, "tag": "issue", "value": "letsencrypt.org" }; TLSA GET/POST /dns/:domain/tlsa. Templates: GET /dns/templates β†’ { "success": true, "templates": [ { "id": "basic", "name": "Basic Website" } ] }; POST /dns/:domain/apply-template { "template_id": "basic" }.


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