Users
Users
Manage user accounts. Admin β any user; reseller β own users.
Base: /api/v1/users Β· Auth: Authorization: Bearer wsp_β¦
Error envelope:
{ "success": false, "code": "VALIDATION_ERROR", "error": "Username, email, and password are required", "message": "β¦", "status": 400 }
List / get
GET /api/v1/users/ β array; GET /api/v1/users/:username β one
(flat object). GET one β Response 200 (verified live):
{ "username": "john", "email": "john@example.com", "role": "user",
"status": "active", "creator": "admin", "package": "default",
"max_domains": 1, "max_databases": 2, "max_email_accounts": 5,
"max_ftp_accounts": 1, "disk_quota_mb": 1024,
"bandwidth_quota_mb": 5120, "can_use_ssl": true,
"can_use_ssh": false, "can_use_cron": true,
"disk_usage_mb": 1, "bandwidth_usage_mb": 0, "domain_count": 0,
"domains": [], "ips": ["161.248.4.182"],
"created_at": "2026-05-18T17:46:30+07:00",
"updated_at": "2026-05-18T17:46:30+07:00" }
Create β POST /api/v1/users/
Request:
{ "username": "john", "email": "john@example.com",
"password": "S3cureβ’pass", "role": "user", "package": "default" }
username/email/password required; role (user|reseller,
default user), package optional.
Response 201 (verified live β object wrapped in user):
{ "user": { "username": "john", "email": "john@example.com",
"role": "user", "status": "active", "creator": "admin",
"package": "default", "max_domains": 1, "max_databases": 2,
"max_email_accounts": 5, "max_ftp_accounts": 1,
"disk_quota_mb": 1024, "bandwidth_quota_mb": 5120,
"can_use_ssl": true, "can_use_ssh": false, "can_use_cron": true,
"created_at": "2026-05-18T17:46:30+07:00",
"updated_at": "2026-05-18T17:46:30+07:00" } }
Response 400 (verified live): β¦ "error": "Username, email, and password are required" β¦
Delete β DELETE /api/v1/users/:username
β οΈ Requires a body confirming the username (a plain DELETE β 400
Invalid request body).
Request:
{ "confirm_username": "john" }
Response 200 (verified live):
{ "message": "User permanently deleted",
"deleted_domains": 0, "deleted_databases": 0,
"deleted_cronjobs": 0 }
Update / limits / status / keys
PUT /users/:username { "email": "new@x.com" };
PUT /users/:username/limits { "disk_quota_mb": 5120, "max_domains": 10 }; PUT /users/:username/status
{ "status": "suspended" }; PUT /users/:username/package
{ "package": "User 10GB" }. API keys: see Authentication.
Conventions β Authentication, Error Handling.