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.