NRNIC API

Tout ce que vous pouvez faire dans le tableau de bord web (ajouter et supprimer des domaines, gérer les enregistrements DNS) est également disponible par programmation via une API REST.

Présentation

Tous les endpoints acceptent et renvoient du JSON. L'authentification nécessite une clé API (voir ci-dessous). Il n'y a actuellement ni pagination ni limitation du nombre de requêtes.

URL de base

https://ns.nrnic.com/api

Authentification

Vous pouvez générer une clé API depuis les Paramètres du compte. Une clé nouvellement générée n'est affichée qu'une seule fois, veillez donc à la conserver en lieu sûr.

Ajoutez l'en-tête Authorization suivant à chaque requête :

Authorization: Bearer nrnic_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Remarques de sécurité

Traitez votre clé API comme un mot de passe. Ne la publiez jamais dans un dépôt public et ne l'intégrez pas dans du JavaScript côté client : utilisez-la uniquement depuis du code serveur. Si une clé venait à être exposée, révoquez-la immédiatement depuis les paramètres du compte et générez-en une nouvelle.

Réponses d'erreur

En cas d'erreur, la réponse utilise le code d'état HTTP approprié (401/404/409/422/500, etc.) et la structure JSON suivante.

{
  "error": {
    "code": "domain_not_found",
    "message": "Domain not found."
  }
}

Endpoints

Méthode Chemin Description
GET/api/domainsLister les domaines de l'utilisateur authentifié
POST/api/domainsAjouter un domaine
GET/api/domains/{id}Obtenir un domaine, avec son état de synchronisation NS et de délégation
DELETE/api/domains/{id}Supprimer un domaine
POST/api/domains/{id}/resyncRenvoyer la zone DNS à tous les nameservers (ns1–ns4)
POST/api/domains/{id}/delegation-checkVérifier si le domaine est délégué à NRNIC
GET/api/domains/{id}/recordsLister les enregistrements DNS d'un domaine
POST/api/domains/{id}/recordsAjouter un enregistrement DNS
PUT/api/domains/{id}/records/{record_id}Modifier un enregistrement DNS
DELETE/api/domains/{id}/records/{record_id}Supprimer un enregistrement DNS

Exemples

Domaines

# Lister les domaines de l'utilisateur authentifiécurl -s https://ns.nrnic.com/api/domains \
  -H "Authorization: Bearer nrnic_xxxxxxxx"

# Ajouter un domainecurl -s https://ns.nrnic.com/api/domains \
  -H "Authorization: Bearer nrnic_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"fqdn": "example.com"}'

# Supprimer un domainecurl -s -X DELETE https://ns.nrnic.com/api/domains/123 \
  -H "Authorization: Bearer nrnic_xxxxxxxx"

Enregistrements DNS

# Ajouter un enregistrement DNScurl -s https://ns.nrnic.com/api/domains/123/records \
  -H "Authorization: Bearer nrnic_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"type": "A", "name": "@", "content": "192.0.2.1", "ttl": 3600}'

# Modifier un enregistrement DNScurl -s -X PUT https://ns.nrnic.com/api/domains/123/records/456 \
  -H "Authorization: Bearer nrnic_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"type": "A", "name": "@", "content": "192.0.2.2", "ttl": 3600}'

# Supprimer un enregistrement DNScurl -s -X DELETE https://ns.nrnic.com/api/domains/123/records/456 \
  -H "Authorization: Bearer nrnic_xxxxxxxx"

Champs des enregistrements DNS

typeType d'enregistrement. L'un de A, AAAA, CNAME, MX, TXT, NS, SRV, CAA.
nameNom d'hôte (partie sous-domaine). Utilisez "@" pour le sommet de la zone.
contentLa valeur de l'enregistrement (adresse IP, nom d'hôte cible, etc.).
ttlTTL en secondes, de 60 à 604800. Valeur par défaut : 3600 si omis.
priorityPriorité des enregistrements MX/SRV (0–65535).
weightPoids des enregistrements SRV (0–65535).
portNuméro de port des enregistrements SRV (0–65535).