Passer au contenu principal

Intégrations

Intégration ISPmanager

NexDNS est entièrement compatible avec l’API DNSmanager, ce qui vous permet de connecter NexDNS à ISPmanager comme serveur DNS secondaire (slave). ISPmanager reste le serveur primaire et, une fois que vous autorisez le transfert de zone (AXFR) depuis l’IP source NexDNS, transfère chaque zone vers NexDNS, vous continuez donc à gérer les enregistrements dans ISPmanager. L’API DNSmanager complète des domaines et des enregistrements est également disponible pour une utilisation directe via un point de terminaison de compatibilité unique.

Point de terminaison

Tous les appels API de compatibilité sont acheminés via un point de terminaison unique :

https://api.nexdns.tech/dnsmgr

Authentification

L’API de compatibilité s’authentifie avec un identifiant et un secret d’intégration dédiés que vous générez dans NexDNS sous Compte → Intégrations (pas le mot de passe de votre compte). ISPmanager les envoie à chaque requête ; vous pouvez aussi ouvrir une session manuellement avec la fonction func=auth et réutiliser le jeton renvoyé.

curl -X POST "https://api.nexdns.tech/dnsmgr?func=auth" \
    -d "username=your_integration_login" \
    -d "password=your_integration_secret"

Réponse en cas de succès (XML) :

<doc><auth id="SESSION_ID"/></doc>

Vous pouvez demander une sortie JSON en ajoutant out=json à toute requête. Les tentatives de connexion échouées répétées sont temporairement limitées.

Fonctions prises en charge

L’API de compatibilité distribue les opérations en fonction du paramètre de requête func :

Fonction Description de la fonction
auth Ouvrir une session avec l’identifiant et le secret d’intégration
domain Lister tous les domaines du compte authentifié
domain.edit Créer ou mettre à jour un domaine (avec sok=ok) ; lorsque ISPmanager envoie son IP primaire, NexDNS crée une zone secondaire qui se transfère depuis ISPmanager. Sans sok, renvoie les informations du domaine
domain.delete Supprimer un domaine (passer elid=domain.name)
domain.refresh Forcer une zone secondaire à se retransférer immédiatement depuis ISPmanager (passer elid=domain.name). ISPmanager appelle cette fonction après une modification des enregistrements
domain.record Lister les enregistrements d’un domaine (passer elid=domain.name)
domain.record.edit Créer ou mettre à jour un enregistrement (avec sok=ok)
domain.record.delete Supprimer un enregistrement (passer elid et rkey)
dnsparam Obtenir la configuration des serveurs de noms pour votre compte
slaveserver Lister les serveurs de noms assignés à vos zones

Connecter ISPmanager à NexDNS

Pour connecter ISPmanager à NexDNS :

  1. Créez un compte NexDNS sur nexdns.tech et choisissez un plan incluant l’intégration ISPmanager et le DNS secondaire.
  2. Configurez l’intégration dans NexDNS : ouvrez Compte → Intégrations, cliquez sur Générer un secret, puis activez l’accès ISPmanager (désactivé par défaut). Ce canal contourne l’authentification à deux facteurs : vous pouvez donc, si vous le souhaitez, le limiter à une adresse IP fixe.
  3. Dans ISPmanager, ajoutez NexDNS comme serveur DNS secondaire (slave) pour vos domaines (Noms de domaine → serveurs de noms secondaires).
  4. Saisissez les détails de connexion :
    • URL : https://api.nexdns.tech/dnsmgr
    • Identifiant : votre identifiant d’intégration depuis Compte → Intégrations
    • Secret : votre secret d’intégration
  5. Autorisez le transfert de zone (AXFR) : sur votre serveur DNS primaire, autorisez le transfert de zone depuis l’IP source NexDNS affichée dans Compte → Intégrations. Sans cela, ISPmanager crée la zone secondaire mais elle reste vide.

ISPmanager reste le serveur primaire et vous continuez d'y gérer les enregistrements ; NexDNS récupère chaque zone en tant que secondaire via AXFR. Étape unique de votre côté : sur votre serveur DNS primaire, autorisez le transfert de zone (AXFR) depuis l'IP source NexDNS affichée dans Compte → Intégrations, sinon les zones restent vides. L'authentification utilise l'identifiant et le secret d'intégration de Compte → Intégrations ; assurez-vous que l'accès ISPmanager est activé et que votre offre inclut le DNS secondaire.

Paramètres des enregistrements

Lors de la création ou de la mise à jour d’enregistrements via domain.record.edit, les paramètres suivants sont utilisés selon le type d’enregistrement :

Type de paramètre Paramètres
A / AAAA name, ip (or value), ttl
CNAME / NS / PTR name, value, ttl
MX name, value, priority, ttl
SRV name, value, priority, weight, port, ttl
TXT name, value, ttl
CAA name, caa_value (or value), flag, tag, ttl

Pour les mises à jour, passez rkey avec l’identifiant de l’enregistrement existant. Omettez rkey (ou envoyez vide) pour créer un nouvel enregistrement.

Format de sortie

Par défaut, toutes les réponses sont renvoyées en XML. Ajoutez out=json à toute requête pour recevoir des réponses JSON à la place.

Gestion des clés API

Les clés API sont utilisées pour authentifier les requêtes vers l’API REST NexDNS. Chaque clé est associée à des permissions spécifiques et peut optionnellement avoir une date d’expiration.

Créer une clé API

Vous pouvez créer des clés API de deux manières :

  • Interface du panneau : accédez à Paramètres > Clés API et cliquez sur « Créer une clé API »
  • API REST : POST /v1/account/api-keys (nécessite une clé API existante)

Format de clé

Les clés API suivent le format nxd_ suivi de 40 caractères alphanumériques aléatoires. La clé complète n’est affichée qu’une seule fois lors de la création. NexDNS ne stocke qu’une forme hachée de la clé, elle ne peut donc pas être récupérée si elle est perdue.

nxd_aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789abcd

Permissions et portées

Chaque clé API doit avoir au moins une permission assignée. Permissions disponibles :

Nom de la permission Donne accès à
zones.read Lister les zones, voir les détails des zones, exporter les zones, voir le statut DNSSEC
zones.write Créer des zones, supprimer des zones, activer/désactiver DNSSEC
records.read Lister les enregistrements, voir les enregistrements individuels
records.write Créer, mettre à jour et supprimer des enregistrements
webhooks.read Lister et voir les webhooks
webhooks.write Créer, mettre à jour et supprimer des webhooks

Nous recommandons de n’accorder à chaque clé que les permissions dont elle a besoin.

Durée et expiration

Les clés API peuvent optionnellement avoir une date d’expiration. Lorsqu’elle est définie, la clé cessera de fonctionner après la date spécifiée (vérifiée à minuit UTC). Les clés expirées renvoient une réponse 401 Unauthorized.

Révoquer une clé

Vous pouvez révoquer toute clé API à tout moment depuis la page Paramètres ou via l’API. La révocation est immédiate et permanente – la clé est supprimée, pas désactivée.

curl -X DELETE "https://api.nexdns.tech/v1/account/api-keys/{id}" \
    -H "Authorization: Bearer nxd_your_api_key"

Exigences du plan

L’accès API nécessite un plan d’abonnement qui inclut la fonctionnalité api_access.

Limitation de débit

L’API NexDNS applique des limites de débit pour garantir une utilisation équitable et la stabilité du service. Les limites de débit sont appliquées par compte utilisateur (pas par clé API), donc l’utilisation de plusieurs clés API n’augmente pas votre limite.

Limites

Portée Limite Fenêtre Politique
Requêtes API 60 1 min (60 s) Fenêtre glissante

Les requêtes non authentifiées (ou avec des clés invalides) sont limitées par adresse IP.

En-têtes de limitation de débit

Chaque réponse API inclut des en-têtes indiquant votre statut de limitation de débit actuel :

En-tête Description de l’en-tête
X-RateLimit-Limit Nombre maximum de requêtes autorisées dans la fenêtre
X-RateLimit-Remaining Nombre de requêtes restantes dans la fenêtre actuelle
X-RateLimit-Reset Horodatage Unix de réinitialisation de la fenêtre de limitation de débit
Retry-After Secondes à attendre avant de réessayer (présent uniquement sur les réponses 429)

Dépassement de la limite

Lorsque la limite de débit est dépassée, l’API renvoie 429 Too Many Requests :

{
    "status": "error",
    "error": {
        "code": "rate_limit_exceeded",
        "message": "Too many requests. Please retry after {timestamp}."
    }
}

Nous utilisons des cookies pour assurer le bon fonctionnement de ce site et améliorer votre expérience. Certains cookies sont strictement nécessaires au fonctionnement du site, tandis que d'autres sont facultatifs.

Vous pouvez accepter tous les cookies ou limiter votre choix aux cookies strictement nécessaires. Pour plus de détails, consultez notre Politique de confidentialité et notre Politique relative aux cookies.