Vai al contenuto

API Pubblica

Di seguito sono descritte tutte le API pubbliche che non richiedono alcun tipo di autenticazione.

DNS Check

Il Registro .it offre la possibilità di verificare la configurazione del DNS di un dominio tramite il servizio web DNS Check. Tale servizio web si avvale dell'API di validazione del DNS, come in seguito descritta.

Validazione del DNS

1.0 |

POST https://api.nic.it/v1/dns-check/validate

La validazione del DNS, può essere fatta utilizzato sia uno scambio di dati in formato XML che in JSON.

A causa di limiti nelle specifiche OpenAPI, la documentazione OpenAPI per il dnsCheck è forinta solo per la validazione DNS in formato JSON, mentre per il formato XML si vedano gli XML Schema specifici. Essendo la risposta della validazione tipicamente molto lunga, essa non viene riportata negli esempi che seguono. Per maggiori informazioni si rimanda ai link sopra indicati.

Esempio di validazione con richiesta e risposta in formato JSON o XML:

curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '
    {
        "domain": "nic.it"
    }'\
    https://api.nic.it/v1/dns-check/validate
curl -X POST \
    -H "Content-Type: application/xml" \
    -H "Accept: application/xml" \
    -d '
    <request>
        <domain>nic.it</domain>
    </request>'\
    https://api.nic.it/v1/dns-check/validate

L'esempio sopra è relativo a un dominio già registrato e delegato. Infatti nella richiesta non sono stati dichiarati i nameserver autoritativi del dominio che vengono trovati tramite i normali meccanismi di risoluzione del DNS.

Esempio di validazione indicando anche i nameservers autoritativi del dominio ed eventuali indirizzi IP (necessari per nameserver subordinati):

curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '
    {
        "domain": "my-domain-test.it", 
        "nameservers": [ 
            { "name": "ns1.my-domain-test.it",
              "address": [ 
                { 
                    "value": "192.12.192.5", 
                    "type": "IPv4"
                }
              ]
            }, 
            { "name": "ns.other-domain.it"} 
        ] 
    }'\
    https://api.nic.it/v1/dns-check/validate
curl -X POST \
    -H "Content-Type: application/xml" \
    -H "Accept: application/xml" \
    -d '
    <request>
        <domain>my-domain-test.it</domain>
        <nameservers>
            <nameserver name="ns1.my-domain-test.it">
                <address type="IPv4">192.12.192.5</address>
            </nameserver>
            <nameserver name="ns.other-domain.it"></nameserver>
        </nameservers>
    </request>'\
    https://api.nic.it/v1/dns-check/validate

Se non specificato, la validazione relativa al DNSSEC è disattivata e può essere attivata aggiungendo nella richiesta il parametro dnsSecDisabled con valore false.
E' possibile inoltre indicare, quando necessario, anche i DS Records da validare, come nel seguente esempio:

curl -X POST https://api.nic.it/v1/dns-check/validate \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '
    {
        "domain": "my-domain-test.it",
        "dnsSecDisabled": false,
        "dsRecords": [ 
            { "keytag": 12345,
              "algorithm": 10,
              "digestType": 2,
              "digest": "1D4A1152C4880D31583393E1C0604364708F7B3A481C4F16D3CD279EDC0E2861"
            } 
        ] 
    }'
curl -X POST https://api.nic.it/v1/dns-check/validate \
    -H "Content-Type: application/xml" \
    -H "Accept: application/xml" \
    -d '
    <request>
        <domain>my-domain-test.it</domain>
        <dsRecords>
            <dsRecord>
                <keytag>12345</keytag>
                <algorithm>10</algorithm>
                <digestType>2</digestType>
                <digest>1D4A1152C4880D31583393E1C0604364708F7B3A481C4F16D3CD279EDC0E2861</digest>
            </dsRecord>
        </dsRecords>
        <dnsSecDisabled>false</dnsSecDisabled>
    </request>'

Info

Nella sola validazione del DNS in formato JSON è possibile aggiungere nella URL il parametro format che può assumere i seguenti valori:

  • minimal: la risposta riporta solo l'esito della validazione
  • terse: la risposta riporta esito della validazione e dei test
  • verbose: valore di default, la risposta riporta esito della validazione, dei test e il dettaglio di tutte le query eseguite
Esempio con parametro format
curl -X POST https://api.nic.it/v1/dns-check/validate?format=minimal \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '
    {
        "domain": "nic.it"
    }'
Risposta in formato JSON
{
    "domain": "nic.it.",
    "status": "SUCCEEDED",
    "validationId": "15f5c881-79c6-4e36-afa1-216e3dcded25",
    "validationDate": 1712222370464,
    "version": "2.1"
}

Configurazione validatore DNS

1.0 |

GET https://api.nic.it/v1/dns-check/config

Riporta la configurazione del validatore DNS, utilizzata principalmente dal servizio web DNS Check.

Esempio:

curl  https://api.nic.it/v1/dns-check/config
{
  "itOnly": false,
  "maxDSRecords": 1,
  "nameserversMin": 2,
  "nameserversMax": 6,
  "dnsSecEnabled": true,
  "ipv6Enabled": true
}

Statistiche

1.0 |

L'API relativa alle statistiche è utilizzata dal servizio web di Statistica del Registro. Si rimanda alla documentazione OpenAPI per maggiori informazioni.

Dati Geografici

Elenco province italiane

1.0 |

GET https://api.nic.it/v1/province

Restitiusce l'elenco di tutte le province italiane, esempio:

curl https://api.nic.it/v1/province \
    -H "Accept: application/json"
[
  {
    "code": "AG",
    "name": "Agrigento"
  },
  {
    "code": "AL",
    "name": "Alessandria"
  },
  {
    "code": "AN",
    "name": "Ancona"
  }
  // ....
]
http https://api.nic.it/v1/province
[
  {
    "code": "AG",
    "name": "Agrigento"
  },
  {
    "code": "AL",
    "name": "Alessandria"
  },
  {
    "code": "AN",
    "name": "Ancona"
  }
  // ....
]

Elenco paesi

1.0 |

GET https://api.nic.it/v1/countries

Restituisce l'elenco dei paesi e relativi codici (ISO3166) che possono essere utilizzati nei contatti dei domini registrati sotto il ccTLD .it. Esempio:

curl https://api.nic.it/v1/countries
 -H "Accept: application/json"
[
  {
    "name": "Afghanistan",
    "enabled": false,
    "code": "af"
  },
  {
    "name": "Aland Islands",
    "enabled": false,
    "code": "ax"
  },
  {
    "name": "Albania",
    "enabled": false,
    "code": "al"
  }
  // ....
]
http https://api.nic.it/v1/countries
[
  {
    "name": "Afghanistan",
    "enabled": false,
    "code": "af"
  },
  {
    "name": "Aland Islands",
    "enabled": false,
    "code": "ax"
  },
  {
    "name": "Albania",
    "enabled": false,
    "code": "al"
  }
  // ....
]

The enabled field indicates whether or not the country code can be used as a value in the nationality field of the .it domain registrant.

E' possibile ottenere l'elenco dei soli paesi abilitati come nell'esempio seguente:

curl "https://api.nic.it/v1/countries?enabledOnly=true" \
    -H "Accept: application/json"
http https://api.nic.it/v1/countries enabledOnly==true