Toutes les routes sont sous /api/v1 et nécessitent un utilisateur disposant d’un service revendeur actif (plan catégorie reseller).

Lister les sous-comptes

GET /api/v1/reseller/accounts
Authorization: Bearer kh_live_xxxx

Réponse

Tableau d’objets au format renvoyé par WHM (normalisé côté application) :
{
  "success": true,
  "data": [
    {
      "username": "clientsite",
      "domain": "clientsite.com",
      "plan": "default",
      "disk_used_mb": 1240,
      "disk_limit_mb": 10240,
      "suspended": false,
      "email": "admin@clientsite.com"
    }
  ]
}
Permission : reseller:read

Détail d’un sous-compte

GET /api/v1/reseller/accounts/{username}
Recherche le compte dans la liste WHM du revendeur ; 404 si le compte n’existe pas sous ce propriétaire. Permission : reseller:read

Créer un sous-compte

POST /api/v1/reseller/accounts
Content-Type: application/json
{
  "domain": "clientsite.com",
  "username": "clientsite",
  "password": "Str0ngP@ssw0rd!",
  "email": "admin@clientsite.com",
  "plan": "nom_package_whm"
}
ChampRequisDescription
domainOuiDomaine principal
planOuiNom du package WHM
emailOuiEmail du compte
usernameNonGénéré à partir du domaine si omis
passwordNonGénéré si omis (retourné une seule fois dans la réponse)
Permission : reseller:write

Suspendre / réactiver / supprimer

POST /api/v1/reseller/accounts/{username}/suspend
POST /api/v1/reseller/accounts/{username}/unsuspend
DELETE /api/v1/reseller/accounts/{username}
Permission : reseller:write Le corps de suspend peut inclure reason (texte, optionnel).

Erreurs fréquentes

Code JSONHTTPSignification
no_reseller_service422Aucun service revendeur actif
whm_unavailable503WHM non configuré
whm_error422 / 503Erreur renvoyée par WHM
not_found404Compte absent de la liste du revendeur

Permissions

ActionScope
Liste, détailreseller:read
Création, suspend, unsuspend, suppressionreseller:write
Il n’existe pas d’endpoint PATCH pour modifier librement un compte WHM : seules les opérations ci-dessus sont exposées.