NRNIC API

Tutto ciò che puoi fare nella dashboard web (aggiungere ed eliminare domini, gestire i record DNS) è disponibile anche in modo programmatico tramite un'API REST.

Panoramica

Tutti gli endpoint accettano e restituiscono JSON. L'autenticazione richiede una chiave API (vedi sotto). Al momento non sono previste paginazione né limiti di richieste.

URL di base

https://ns.nrnic.com/api

Autenticazione

Puoi generare una chiave API dalle Impostazioni account. Una chiave appena generata viene mostrata una sola volta, quindi assicurati di conservarla in un luogo sicuro.

Includi il seguente header Authorization in ogni richiesta:

Authorization: Bearer nrnic_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Note sulla sicurezza

Tratta la tua chiave API come una password. Non inserirla mai in un repository pubblico né nel JavaScript lato client: usala solo da codice lato server. Se una chiave viene esposta, revocala subito dalle impostazioni dell'account e generane una nuova.

Risposte di errore

In caso di errore, la risposta usa il codice di stato HTTP appropriato (401/404/409/422/500, ecc.) e la seguente struttura JSON.

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

Endpoint

Metodo Percorso Descrizione
GET/api/domainsElenca i domini dell'utente autenticato
POST/api/domainsAggiungi un dominio
GET/api/domains/{id}Ottieni un dominio, incluso lo stato di sincronizzazione NS e di delega
DELETE/api/domains/{id}Elimina un dominio
POST/api/domains/{id}/resyncReinvia la zona DNS a tutti i nameserver (ns1–ns4)
POST/api/domains/{id}/delegation-checkVerifica se il dominio è stato delegato a NRNIC
GET/api/domains/{id}/recordsElenca i record DNS di un dominio
POST/api/domains/{id}/recordsAggiungi un record DNS
PUT/api/domains/{id}/records/{record_id}Aggiorna un record DNS
DELETE/api/domains/{id}/records/{record_id}Elimina un record DNS

Esempi

Domini

# Elenca i domini dell'utente autenticatocurl -s https://ns.nrnic.com/api/domains \
  -H "Authorization: Bearer nrnic_xxxxxxxx"

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

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

Record DNS

# Aggiungi un record 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}'

# Aggiorna un record 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}'

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

Campi dei record DNS

typeTipo di record. Uno tra A, AAAA, CNAME, MX, TXT, NS, SRV, CAA.
nameNome host (parte del sottodominio). Usa "@" per l'apex della zona.
contentIl valore del record (un indirizzo IP, il nome host di destinazione, ecc.).
ttlTTL in secondi, da 60 a 604800. Se omesso, il valore predefinito è 3600.
priorityPriorità dei record MX/SRV (0–65535).
weightPeso dei record SRV (0–65535).
portNumero di porta dei record SRV (0–65535).