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"
}
| Champ | Requis | Description |
|---|
domain | Oui | Domaine principal |
plan | Oui | Nom du package WHM |
email | Oui | Email du compte |
username | Non | Généré à partir du domaine si omis |
password | Non | Gé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 JSON | HTTP | Signification |
|---|
no_reseller_service | 422 | Aucun service revendeur actif |
whm_unavailable | 503 | WHM non configuré |
whm_error | 422 / 503 | Erreur renvoyée par WHM |
not_found | 404 | Compte absent de la liste du revendeur |
Permissions
| Action | Scope |
|---|
| Liste, détail | reseller:read |
| Création, suspend, unsuspend, suppression | reseller:write |
Il n’existe pas d’endpoint PATCH pour modifier librement un compte WHM : seules les opérations ci-dessus sont exposées.