NRNIC API

Alles, was Sie im Web-Dashboard tun können (Domains hinzufügen und löschen, DNS-Einträge verwalten), steht auch programmatisch über eine REST-API zur Verfügung.

Überblick

Alle Endpunkte akzeptieren und liefern JSON. Für die Authentifizierung ist ein API-Schlüssel erforderlich (siehe unten). Derzeit gibt es weder Paginierung noch Ratenbegrenzung.

Basis-URL

https://ns.nrnic.com/api

Authentifizierung

Einen API-Schlüssel können Sie in den Kontoeinstellungen erstellen. Ein neu erstellter Schlüssel wird nur einmal angezeigt – bewahren Sie ihn daher sicher auf.

Senden Sie bei jeder Anfrage den folgenden Authorization-Header mit:

Authorization: Bearer nrnic_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Sicherheitshinweise

Behandeln Sie Ihren API-Schlüssel wie ein Passwort. Committen Sie ihn niemals in ein öffentliches Repository und binden Sie ihn nicht in clientseitiges JavaScript ein – verwenden Sie ihn ausschließlich in serverseitigem Code. Wurde ein Schlüssel offengelegt, widerrufen Sie ihn sofort in den Kontoeinstellungen und erstellen Sie einen neuen.

Fehlerantworten

Im Fehlerfall verwendet die Antwort den passenden HTTP-Statuscode (401/404/409/422/500 usw.) sowie das folgende JSON-Format.

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

Endpunkte

Methode Pfad Beschreibung
GET/api/domainsDomains des angemeldeten Benutzers auflisten
POST/api/domainsDomain hinzufügen
GET/api/domains/{id}Domain abrufen, einschließlich NS-Synchronisierungs- und Delegierungsstatus
DELETE/api/domains/{id}Domain löschen
POST/api/domains/{id}/resyncDNS-Zone erneut an alle Nameserver (ns1–ns4) übertragen
POST/api/domains/{id}/delegation-checkPrüfen, ob die Domain an NRNIC delegiert wurde
GET/api/domains/{id}/recordsDNS-Einträge einer Domain auflisten
POST/api/domains/{id}/recordsDNS-Eintrag hinzufügen
PUT/api/domains/{id}/records/{record_id}DNS-Eintrag aktualisieren
DELETE/api/domains/{id}/records/{record_id}DNS-Eintrag löschen

Beispiele

Domains

# Domains des angemeldeten Benutzers auflistencurl -s https://ns.nrnic.com/api/domains \
  -H "Authorization: Bearer nrnic_xxxxxxxx"

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

# Domain löschencurl -s -X DELETE https://ns.nrnic.com/api/domains/123 \
  -H "Authorization: Bearer nrnic_xxxxxxxx"

DNS-Einträge

# DNS-Eintrag hinzufügencurl -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}'

# DNS-Eintrag aktualisierencurl -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}'

# DNS-Eintrag löschencurl -s -X DELETE https://ns.nrnic.com/api/domains/123/records/456 \
  -H "Authorization: Bearer nrnic_xxxxxxxx"

Felder der DNS-Einträge

typeEintragstyp. Einer von A, AAAA, CNAME, MX, TXT, NS, SRV, CAA.
nameHostname (Subdomain-Teil). Verwenden Sie "@" für den Zonen-Apex.
contentDer Wert des Eintrags (IP-Adresse, Ziel-Hostname usw.).
ttlTTL in Sekunden, 60–604800. Standardwert bei Auslassung: 3600.
priorityPriorität für MX-/SRV-Einträge (0–65535).
weightGewichtung für SRV-Einträge (0–65535).
portPortnummer für SRV-Einträge (0–65535).