Les enregistrements suivent le format renvoyé par le registrar : identifiant record_id, hôte host, etc.
L’API refuse toute opération DNS sur un domaine qui n’est pas rattaché à votre compte (enregistrement domaine, service d’hébergement avec ce domaine, ou commande « domaine seul » en cours). Réponse typique : 404 not_found.

Lister les enregistrements DNS

GET /v1/domains/{domain}/dns
Authorization: Bearer kh_live_xxxx
Réponse : tableau d’objets du type :
{
  "success": true,
  "data": [
    {
      "record_id": "123456789",
      "type": "A",
      "host": "www",
      "value": "185.200.100.50",
      "ttl": 7207,
      "distance": 0
    }
  ]
}
ChampDescription
record_idIdentifiant côté registrar (à utiliser pour PATCH / DELETE)
hostHôte NameSilo (@ pour apex selon les cas)
distancePriorité MX / distance SRV selon le type
Permission : domains:dns

Ajouter un enregistrement DNS

POST /v1/domains/{domain}/dns
Content-Type: application/json
{
  "type": "A",
  "host": "app",
  "value": "185.200.100.60",
  "ttl": 7207,
  "distance": 10
}
ChampRequisDescription
typeOuiA, AAAA, CNAME, MX, TXT, NS, SRV
hostOuiHôte (convention NameSilo / registrar)
valueOuiValeur de l’enregistrement
ttlNonEntre 300 et 86400 (défaut serveur si omis)
distanceNonPour MX : priorité (défaut 10)
Réponse (201) : objet incluant success et record_id.

Modifier un enregistrement

PATCH /v1/domains/{domain}/dns/{record_id}
Content-Type: application/json
Le segment {record_id} est la valeur record_id listée précédemment.
{
  "host": "app",
  "value": "185.200.100.61",
  "ttl": 7207,
  "distance": 10
}

Supprimer un enregistrement

DELETE /v1/domains/{domain}/dns/{record_id}
Réponse :
{
  "success": true,
  "data": { "deleted": true }
}

Permission

Toutes les routes DNS : domains:dns.