apiDéveloppeurs

Un seul endroit pour toutes les API HostiGuard

Lire les prix, vérifier et enregistrer des domaines, commander des serveurs dédiés, envoyer des SMS et connecter WHMCS ou WordPress — chaque intégration est documentée ici, avec les téléchargements en bas de page.

URL de base https://hostiguard.com/api/v1

Vue d'ensemble

HostiGuard expose une API JSON compacte et prévisible. Toutes les requêtes passent en HTTPS, les clés sont envoyées en Bearer et chaque réponse porte un indicateur success. Choisissez l'intégration dont vous avez besoin :

Authentification

Créez une clé dans Tableau de bord → Business → API. Envoyez-la avec chaque requête dans l’en-tête Authorization. La clé n’est affichée qu’une seule fois lors de sa création ; conservez-la en lieu sûr et ne l’utilisez jamais dans du code exécuté côté navigateur.

Authorization: Bearer hg_live_4cf37e433aaf7c69fed5c47ce11bdb870753bb9a

Chaque clé possède des portées. Une requête vers un point de terminaison dont la clé n’a pas la portée renvoie 403.

lockaccount lockdomains lockservers lockclients

Clés revendeur et mode test

Un revendeur actif (Tableau de bord → Revendeur → API) reçoit deux clés sur cette même API. Les clés revendeur ont les scopes account, domains et servers ; les endpoints de sous-clients sont réservés aux comptes Business. Les prix renvoyés à une clé revendeur sont déjà au tarif revendeur — le prix public est fourni à côté sous "retail".

hg_live_…

Clé live — prix réels à votre tarif revendeur et commandes réelles payées depuis votre solde.

hg_test_…

Clé test — lectures identiques, mais chaque commande est simulée : la requête est validée et tarifée, rien n'est créé ni facturé. Utilisez-la pour construire et tester votre intégration en toute sécurité.

Chaque réponse d'une clé revendeur porte "mode" ("live" ou "test"). Une commande simulée répond 200 (et non 201) avec "simulated": true et indique si le même appel réussirait avec votre clé live :

{
    "success": true,
    "data": {
        "mode": "test",
        "simulated": true,
        "service_type": 3,
        "retail": 12.99,
        "discount": 2.6,
        "reseller_discount": 20,
        "amount": 10.39,
        "currency": "USD",
        "balance": 250
    }
}

Les clés sont affichées une seule fois à la création ; régénérer une clé révoque immédiatement la précédente. Gardez la clé live uniquement sur votre serveur — jamais dans du code côté navigateur.

keyObtenir vos clés revendeur

Format des réponses

Chaque réponse contient un indicateur "success". Les appels réussis renvoient le résultat dans "data" ; les appels échoués renvoient un objet "error" avec un "code" lisible par machine et un "message" lisible par un humain.

{
    "success": true,
    "data": {
        "…": "…"
    }
}
{
    "success": false,
    "error": {
        "code": "insufficient_balance",
        "message": "Insufficient wallet balance.",
        "required": 169.99,
        "balance": 65.06
    }
}

Codes d’erreur

401 Clé manquante, invalide ou révoquée
402 Le solde du portefeuille est inférieur au total de la commande ("required" et "balance" sont inclus)
403 Compte Business inactif, ou la clé ne dispose pas de la portée requise
404 Ressource introuvable (commande, sous-client, extension)
405 Méthode HTTP incorrecte
422 Paramètre invalide ou manquant

Paiements

account_balance_wallet

Les commandes passées via l’API sont payées immédiatement avec le solde du portefeuille du compte. Si le solde est insuffisant, la commande n’est pas créée et l’API renvoie 402. Ajoutez des fonds depuis Tableau de bord → Solde. Tous les paiements sont définitifs — consultez la Politique de remboursement. Politique de remboursement

API Business / Revendeur v1 — points de terminaison

Les clés Business utilisent les scopes de la clé ; les clés revendeur (live / test) accèdent aux points account, domains et servers au tarif revendeur. Chaque point est décrit ci-dessous avec ses paramètres, un exemple cURL et la réponse.

GET /account lockPortée: account

Compte

Renvoie le compte, l’entreprise, le solde du portefeuille et les portées de la clé utilisée.

Exemple

curl https://hostiguard.com/api/v1/account -H "Authorization: Bearer hg_live_…"

Réponse

{
    "success": true,
    "data": {
        "account_id": 1024,
        "name": "Alpha Web Agency",
        "company": "Alpha Web Agency",
        "account_type": "company",
        "balance": 250,
        "currency": "USD",
        "min_balance": 100,
        "key": {
            "name": "My website",
            "prefix": "hg_live_4cf37e43",
            "scopes": [
                "account",
                "domains"
            ]
        }
    }
}
GET /domains/pricing lockPortée: domains

Tarifs des domaines

Liste des tarifs de toutes les extensions (enregistrement, renouvellement, transfert, restauration — par an). Filtrez une extension avec tld.

Paramètres

tld facultatif extension sans le point, ex. com

Exemple

curl "https://hostiguard.com/api/v1/domains/pricing?tld=com" -H "Authorization: Bearer hg_live_…"

Réponse

{
    "success": true,
    "data": {
        "count": 1,
        "items": [
            {
                "tld": ".com",
                "registration": 14.95,
                "renewal": 14.89,
                "transfer": 14.59,
                "restore": 103.9,
                "currency": "USD",
                "per": "year",
                "popular": true
            }
        ]
    }
}
GET /domains/check lockPortée: domains

Vérifier un domaine

Disponibilité d’un nom de domaine avec son prix. "available" vaut true, false, ou null lorsque le registre n’a pas pu être contacté (réessayez plus tard).

Paramètres

domain obligatoire nom de domaine complet, ex. monsite.com

Exemple

curl "https://hostiguard.com/api/v1/domains/check?domain=mysite.com" -H "Authorization: Bearer hg_live_…"

Réponse

{
    "success": true,
    "data": {
        "domain": "mysite.com",
        "available": true,
        "status": "available",
        "price": {
            "registration": 14.95,
            "renewal": 14.89,
            "currency": "USD",
            "per": "year"
        }
    }
}
GET /domains lockPortée: domains

Lister les domaines

Tous les noms de domaine du compte avec leur statut, leur date d’expiration et le sous-client auquel ils sont attribués.

Exemple

curl https://hostiguard.com/api/v1/domains -H "Authorization: Bearer hg_live_…"

Réponse

{
    "success": true,
    "data": {
        "count": 1,
        "items": [
            {
                "domain_id": 46,
                "domain": "mysite.com",
                "status": "active",
                "auto_renew": true,
                "registered": "2026-09-22 00:00:00",
                "expires": "2027-09-21 00:00:00",
                "client_id": 12
            }
        ]
    }
}
POST /domains/register lockPortée: domains

Enregistrer un domaine

Enregistre le domaine pour le nombre d’années indiqué et le paie avec le portefeuille. L’attribue éventuellement à un sous-client.

Paramètres

domain obligatoire nom de domaine complet, ex. monsite.com
years facultatif durée d’enregistrement en années, 1–10 (1 par défaut)
privacy facultatif true pour activer la protection WHOIS lorsque l’extension le permet
nameservers facultatif liste des serveurs de noms à définir après l’enregistrement
client_id facultatif id du sous-client auquel attribuer le service

Exemple

curl -X POST https://hostiguard.com/api/v1/domains/register \
  -H "Authorization: Bearer hg_live_…" \
  -H "Content-Type: application/json" \
  -d '{"domain":"mysite.com","years":1,"privacy":true,"client_id":12}'

Réponse

{
    "success": true,
    "data": {
        "payment_id": 114,
        "order_id": 158,
        "invoice_id": 181,
        "invoice_number": "INV-2026-0072",
        "service_id": 46,
        "service_type": 3,
        "status": 1,
        "client_id": 12,
        "amount": 14.95,
        "currency": "USD",
        "balance": 235.05
    }
}
GET /servers/plans lockPortée: servers

Offres de serveurs dédiés

Offres de serveurs dédiés disponibles avec leurs caractéristiques et leurs prix par cycle de facturation.

Exemple

curl https://hostiguard.com/api/v1/servers/plans -H "Authorization: Bearer hg_live_…"

Réponse

{
    "success": true,
    "data": {
        "count": 3,
        "items": [
            {
                "plan_id": 2,
                "name": "Performance Dedicated",
                "slug": "performance-dedicated",
                "description": "High-traffic applications",
                "features": [
                    {
                        "text": "16-Core CPU (E5-2680)",
                        "type": "check"
                    }
                ],
                "pricing": {
                    "monthly": {
                        "price": 169.99,
                        "setup_fee": 0
                    },
                    "yearly": {
                        "price": 1799.88,
                        "setup_fee": 0
                    }
                },
                "currency": "USD"
            }
        ]
    }
}
GET /servers lockPortée: servers

Lister les serveurs

Tous les serveurs dédiés du compte avec leur statut, leur IP, leurs dates et le sous-client attribué.

Exemple

curl https://hostiguard.com/api/v1/servers -H "Authorization: Bearer hg_live_…"

Réponse

{
    "success": true,
    "data": {
        "count": 1,
        "items": [
            {
                "server_id": 1,
                "plan_id": 2,
                "plan": "Performance Dedicated",
                "hostname": "srv1.example.com",
                "ip_address": "203.0.113.10",
                "status": "active",
                "billing_cycle": "monthly",
                "date_start": "2026-09-22",
                "date_expires": "2026-10-21",
                "client_id": 12
            }
        ]
    }
}
POST /servers/order lockPortée: servers

Commander un serveur dédié

Commande une offre pour le cycle de facturation indiqué et la paie avec le portefeuille. Le serveur est ensuite provisionné comme une commande passée sur le site.

Paramètres

plan_id obligatoire plan_id issu de /servers/plans
billing_cycle obligatoire monthly, quarterly, semiannual ou yearly (uniquement les cycles listés dans les tarifs de l’offre)
hostname facultatif hostname du serveur
client_id facultatif id du sous-client auquel attribuer le service

Exemple

curl -X POST https://hostiguard.com/api/v1/servers/order \
  -H "Authorization: Bearer hg_live_…" \
  -H "Content-Type: application/json" \
  -d '{"plan_id":2,"billing_cycle":"monthly","hostname":"srv1.example.com","client_id":12}'

Réponse

{
    "success": true,
    "data": {
        "payment_id": 115,
        "order_id": 159,
        "invoice_id": 182,
        "invoice_number": "INV-2026-0073",
        "service_id": 1,
        "service_type": 5,
        "status": 1,
        "client_id": 12,
        "amount": 169.99,
        "currency": "USD",
        "balance": 65.06
    }
}
GET /orders/{id} lockPortée: account

Détails d’une commande

Statut, éléments et factures d’une commande.

Exemple

curl https://hostiguard.com/api/v1/orders/158 -H "Authorization: Bearer hg_live_…"

Réponse

{
    "success": true,
    "data": {
        "order_id": 158,
        "status": "complete",
        "total": 89.99,
        "currency": "USD",
        "created_at": "2026-09-22 04:00:19",
        "items": [
            {
                "item_id": 211,
                "service_type": "dedicated",
                "service_id": 1,
                "price": 89.99,
                "setup_fee": 0,
                "next_due": "2026-10-21",
                "status": 1
            }
        ],
        "invoices": [
            {
                "invoice_id": 181,
                "number": "INV-2026-0072",
                "total": 89.99,
                "status": 1,
                "date_paid": "2026-09-22 04:00:19"
            }
        ]
    }
}
GET /clients lockPortée: clients

Lister les sous-clients

Sous-clients du compte avec le nombre de services attribués à chacun.

Exemple

curl https://hostiguard.com/api/v1/clients -H "Authorization: Bearer hg_live_…"

Réponse

{
    "success": true,
    "data": {
        "count": 1,
        "items": [
            {
                "client_id": 12,
                "account_id": 201,
                "full_name": "Mohammed Al-Rashid",
                "company": "Rashid Trading LLC",
                "email": "mohammed@example.com",
                "phone": "+971500000001",
                "status": "active",
                "services": 3,
                "created_at": "2026-09-22 03:58:15"
            }
        ]
    }
}
POST /clients lockPortée: clients

Créer un sous-client

Crée un sous-client avec son propre accès HostiGuard ; le mot de passe est envoyé à l’adresse indiquée. Utilisez son client_id lors des commandes.

Paramètres

full_name obligatoire nom de la personne ou de l’entreprise
company facultatif nom de l’entreprise
email obligatoire adresse e-mail
phone facultatif numéro de téléphone
notes facultatif notes internes

Exemple

curl -X POST https://hostiguard.com/api/v1/clients \
  -H "Authorization: Bearer hg_live_…" \
  -H "Content-Type: application/json" \
  -d '{"full_name":"Ibrahim Saleh","email":"ibrahim@example.com"}'

Réponse

{
    "success": true,
    "data": {
        "client_id": 13,
        "account_id": 205,
        "full_name": "Ibrahim Saleh",
        "company": null,
        "email": "ibrahim@example.com",
        "phone": null,
        "status": "active",
        "services": 0,
        "created_at": "2026-09-22 04:00:02"
    }
}

API SMS

Envoyez des SMS par programme depuis un service SMS actif. Chaque message est déduit du volume du forfait lié à la clé.

Créez une clé dans Tableau de bord → SMS → Clés API et envoyez-la dans l'en-tête Authorization. Si la clé a un secret, envoyez-le dans le corps sous api_secret.

Authorization: Bearer sk_your_sms_key
POST https://hostiguard.com/api/sms/send

Paramètres

toobligatoireNuméro du destinataire au format international (+1234567890).
messageobligatoireTexte du message.
api_secretfacultatifRequis uniquement si la clé possède un secret.

Exemple

curl -X POST https://hostiguard.com/api/sms/send \
  -H "Authorization: Bearer sk_your_sms_key" \
  -H "Content-Type: application/json" \
  -d '{"to":"+1234567890","message":"Hello from HostiGuard!","api_secret":"your_secret"}'

Réponse

{
    "success": true,
    "message": "SMS sent successfully.",
    "data": {
        "to": "+1234567890",
        "message_id": "msg_8f7b0d2c91aa41c3"
    }
}

Codes d'erreur

401Clé absente / invalide, ou api_secret incorrect
400Champ "to" ou "message" manquant
402Plus de volume SMS dans le forfait
403Service SMS inactif ou suspendu

Les clés et secrets se gèrent dans Dashboard → SMS

Webhooks de paiement (entrants)

Voici les URL sur lesquelles HostiGuard écoute. Collez la bonne dans le tableau de bord de chaque passerelle pour que les paiements soient confirmés et les factures marquées payées sans intervention. Les signatures sont vérifiées avec le secret enregistré dans Admin → Paramètres → Paiements & API.

PasserelleURL du webhookÉvénements traités
Stripe POST https://hostiguard.com/api/webhooks/stripe checkout.session.completed · payment_intent.payment_failed · charge.refunded
PayPal POST https://hostiguard.com/api/webhooks/paypal CHECKOUT.ORDER.APPROVED · PAYMENT.CAPTURE.COMPLETED · PAYMENT.CAPTURE.DENIED / DECLINED
Paddle POST https://hostiguard.com/api/webhooks/paddle transaction.completed · transaction.paid
Airwallex POST https://hostiguard.com/api/webhooks/airwallex payment_intent.succeeded · payment_intent.requires_capture · payment_intent.captured
Amazon Pay POST https://hostiguard.com/api/webhooks/amazonpay Checkout session / charge notifications (checkoutSessionId or chargeId)
Network (N-Genius) POST / GET https://hostiguard.com/api/webhooks/network TRANSACTION_STATE_CHANGED (state CAPTURED / AUTHORISED)
XaPay (crypto) POST https://hostiguard.com/api/webhooks/xapay status "paid" / event "invoice.paid"

Un webhook reçoit HTTP 200 même quand l'événement est ignoré ; une signature invalide renvoie 400/401 et est journalisée.

Modules WHMCS

v1.0.0 · WHMCS 7.10+ / 8.x

Deux modules dans une archive : un module registrar de domaines et un module de provisioning de serveurs dédiés. Les deux dialoguent avec l'API v1 via votre clé Business ou Revendeur ; les commandes sont payées depuis votre portefeuille HostiGuard au tarif revendeur.

Ce qu'il fait

  • check_circleRecherche de disponibilité par extension et import des tarifs d'extensions dans WHMCS.
  • check_circleEnregistrement de domaine avec durée, protection d'identité et serveurs de noms ; informations et synchronisation d'expiration.
  • check_circleProduits serveurs dédiés : liste des offres chargée en direct, commande au « Create », identifiants HostiGuard enregistrés sur le service.
  • check_circleL'espace client et l'onglet admin affichent hostname, IP, état et expiration directement depuis HostiGuard.
  • check_circleUne clé revendeur de test (hg_test_…) simule chaque commande — idéal pour un WHMCS de préproduction.

Installation

  1. Téléchargez l'archive ci-dessous et décompressez-la à la racine de WHMCS (elle ajoute modules/registrars/hostiguard et modules/servers/hostiguardservers).
  2. Setup → Products/Services → Domain Registrars → HostiGuard → Activate ; saisissez l'URL HostiGuard et la clé API.
  3. Facultatif : Setup → Domain Pricing → Import TLD pricing pour récupérer les tarifs depuis HostiGuard.
  4. Setup → Servers → Add New Server : module HostiGuard Dedicated Servers, hostname = votre URL HostiGuard, SSL activé, access hash = clé API ; créez un groupe de serveurs.
  5. Produit → Module Settings : choisissez l'offre HostiGuard et le cycle de facturation. Journaux : Utilities → Logs → Module Log.
Bon à savoir : renouvellements, transferts, changement de serveurs de noms, codes EPP et suspension / résiliation ne sont pas encore exposés par l'API v1 — ces actions se font depuis le tableau de bord HostiGuard et les modules l'indiquent au lieu d'échouer en silence.
extension

WHMCS modules (registrar + dedicated servers)

hostiguard-whmcs-modules-1.0.0.zip · 15 KB · 6 fichiers · v1.0.0

downloadTélécharger

Extension WordPress — HostiGuard Connector

v1.0.0 · WordPress 5.8+ · PHP 7.4+

Vendez des domaines et serveurs dédiés HostiGuard depuis votre propre site WordPress. Fonctionne sans WooCommerce (le visiteur termine la commande chez HostiGuard) ou avec WooCommerce (vous encaissez dans votre boutique, l'extension provisionne chez HostiGuard après paiement).

Ce qu'il fait

  • check_circle[hostiguard_domain_search] — disponibilité et prix en direct, avec extensions alternatives.
  • check_circle[hostiguard_domain_pricing] et [hostiguard_server_plans] — tableaux et cartes alimentés par l'API, mis en cache.
  • check_circleWooCommerce : le domaine est ajouté au panier au prix réel ; après paiement il est enregistré via votre clé.
  • check_circleAssociez n'importe quel produit WooCommerce à une offre de serveur HostiGuard (Données produit → onglet HostiGuard) ; elle est commandée au paiement.
  • check_circleRésultats et erreurs dans les notes de commande, nouvelle tentative depuis les actions de commande, page de réglages avec connexion et solde.

Installation

  1. Téléchargez le zip ci-dessous ; WordPress → Extensions → Ajouter → Téléverser → Activer.
  2. Réglages → HostiGuard : saisissez l'URL HostiGuard et la clé API. La page confirme la connexion et affiche votre solde et le mode de la clé.
  3. Placez [hostiguard_domain_search] (et les autres shortcodes) sur n'importe quelle page.
  4. WooCommerce (facultatif) : créez un produit simple « Enregistrement de domaine », sélectionnez-le dans les réglages et passez le bouton Enregistrer en mode WooCommerce.
  5. Pour vendre des serveurs : modifiez un produit → Données produit → HostiGuard → choisissez l'offre et le cycle.

Shortcodes

[hostiguard_domain_search]Recherche de domaine avec prix en direct. Attributs : tlds="com,net,org", placeholder, button.
[hostiguard_domain_pricing]Grille tarifaire par extension. Attributs : tlds pour limiter, columns="registration,renewal,transfer".
[hostiguard_server_plans]Cartes des offres de serveurs dédiés. Attributs : cycle, button, link.
Bon à savoir : l'extension ne provisionne chez HostiGuard qu'après paiement de la commande ; gardez un solde de portefeuille supérieur aux commandes attendues. Les renouvellements sont facturés sur votre compte HostiGuard à l'échéance.

Téléchargements

Les deux paquets sont construits à partir du code exact livré avec cette version de HostiGuard : ils correspondent toujours à l'API documentée ci-dessus.

extension

WHMCS modules (registrar + dedicated servers)

hostiguard-whmcs-modules-1.0.0.zip · 15 KB · 6 fichiers · v1.0.0

downloadTélécharger
widgets

WordPress plugin (HostiGuard Connector)

hostiguard-connector-1.0.0.zip · 20 KB · 9 fichiers · v1.0.0

downloadTélécharger
Versions : les modules suivent l'API. Dès qu'un point de terminaison change ou qu'un nouveau est ajouté, les modules WHMCS et l'extension WordPress sont mis à jour et republiés ici avec un nouveau numéro de version — retéléchargez-les après une mise à jour de l'API.

Journal des modifications

  • new_releasesv1.0.0 — première version de la documentation unifiée, des modules WHMCS (registrar + provisioning) et de l'extension WordPress HostiGuard Connector (API v1).

Votre prochain chapitre commence ici.

Propulsez votre activité avec un hébergement conçu pour grandir.