Clés API

L’API KennHosting utilise des clés API Bearer Token pour l’authentification. Chaque requête doit inclure votre clé dans l’en-tête HTTP Authorization.
Authorization: Bearer kh_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx

Générer une clé API

1

Accéder aux paramètres API

Espace client → Mon compte → API → Mes clés API
2

Créer une nouvelle clé

Cliquez sur Générer une clé API. Donnez-lui un nom descriptif (ex: “Production - Mon app”, “Monitoring”).
3

Définir les permissions

Choisissez les permissions de la clé (principe du moindre privilège recommandé) :
  • services:read — lire les services (liste et détail)
  • services:renew — initier un renouvellement (POST /v1/services/{uuid}/renew)
  • domains:read — disponibilité (check, check-bulk) et devis (GET /v1/domains/quote)
  • domains:write — créer une commande d’achat domaine seul (POST /v1/domains)
  • domains:pay — initier le paiement NotchPay (POST /v1/domain-orders/{uuid}/pay)
  • domains:dns — gestion DNS (/v1/domains/{domain}/dns/...)
  • invoices:read — consulter les factures
  • invoices:pay — initier un paiement NotchPay (POST /v1/invoices/{uuid}/pay)
  • reseller:read / reseller:write — API revendeur WHM
  • referral:read / referral:withdraw — parrainage
  • support:read / support:write — tickets
  • webhooks:read / webhooks:write — webhooks sortants
4

Copier la clé

Copiez immédiatement la clé affichée. Elle ne sera plus affichée en clair après cette étape. Si vous la perdez, vous devrez en générer une nouvelle.
Traitez votre clé API comme un mot de passe. Ne la commitez jamais dans un dépôt Git, ne la partagez pas dans des logs ou des messages. Utilisez des variables d’environnement pour la stocker.

Format des clés

Les clés API KennHosting ont le format suivant :
EnvironnementPréfixeExemple
Productionkh_live_kh_live_abc123...
Sandbox (test)kh_test_kh_test_xyz789...

Environnement Sandbox

Utilisez les clés kh_test_ pour tester vos intégrations sans affecter vos vrais services ni effectuer de vrais paiements. URL de base sandbox :
https://kennhosting.com/api/v1
Les requêtes sandbox sont identifiées par le préfixe de la clé, pas par une URL différente.
Les clés sandbox (kh_test_) sont strictement en lecture seule sur l’API : toute requête POST, PUT, PATCH ou DELETE reçoit 403 Forbidden avec le code sandbox_read_only. Pour créer des commandes, payer, ouvrir des tickets, etc., utilisez une clé live (kh_live_) sur un compte de test dédié si nécessaire.

Rotation des clés

Bonne pratique : faites tourner vos clés régulièrement, au minimum tous les 6 mois ou immédiatement en cas de compromission suspectée.
  1. Générez une nouvelle clé avec les mêmes permissions
  2. Mettez à jour la variable d’environnement dans vos applications
  3. Vérifiez que les applications fonctionnent avec la nouvelle clé
  4. Révoquez l’ancienne clé

Révoquer une clé

Mon compte → API → Mes clés API → [clé] → Révoquer La révocation est immédiate. Toute requête utilisant cette clé retournera 401 Unauthorized.

Exemple d’utilisation sécurisée

.env (jamais commité)
KENNHOSTING_API_KEY=kh_live_xxxxxxxxxxxxxxxxxxxx
config/services.php (Laravel)
'kennhosting' => [
    'api_key' => env('KENNHOSTING_API_KEY'),
    'base_url' => 'https://kennhosting.com/api/v1',
],
KennHostingClient.php
class KennHostingClient
{
    private string $apiKey;

    public function __construct()
    {
        $this->apiKey = config('services.kennhosting.api_key');
    }

    public function request(string $method, string $endpoint, array $data = []): array
    {
        $response = Http::withToken($this->apiKey)
            ->acceptJson()
            ->{$method}(config('services.kennhosting.base_url') . '/' . $endpoint, $data);

        return $response->json();
    }
}