>_ NicAPI Dokumentation

REST-API von LUMASERV: Domains, DNS, SSL, Cloud-Server, IP-Adressen, Abrechnung und mehr.

Einführung

Die NicAPI ist die REST-Schnittstelle von LUMASERV. Über sie verwalten Sie Domains, DNS-Zonen, SSL-Zertifikate, Cloud-Server, IP-Adressen, Verträge und Rechnungen programmatisch. Diese Dokumentation wird automatisch aus der API erzeugt und listet jeden für Kunden verfügbaren Endpunkt mit seinen Parametern.

Derzeit dokumentiert: 288 Endpunkte in 15 Bereichen. Wählen Sie links einen Bereich oder nutzen Sie den Filter.

Basis-URL und Versionen

Alle Endpunkte liegen unter folgenden Basis-URLs. Die Versionsnummer ist Teil des Pfads und wird in dieser Dokumentation bei jedem Endpunkt angezeigt.

API v1:  https://connect.nicapi.eu/api/v1/
API v2:  https://connect.nicapi.eu/api/v2/

Authentifizierung

Jeder Aufruf (mit Ausnahme der als öffentlich gekennzeichneten Endpunkte) benötigt einen API-Token. Den Token erstellen Sie im Kundenbereich unter Account → API-Tokens. Übergeben Sie ihn entweder als HTTP-Header oder als Parameter authToken.

# Variante 1: HTTP-Header (empfohlen)
curl -H "Authorization: Bearer IHR_API_TOKEN" \
  "https://connect.nicapi.eu/api/v1/account/account"

# Variante 2: Parameter authToken
curl "https://connect.nicapi.eu/api/v1/account/account?authToken=IHR_API_TOKEN"

Anfragen

GET-Anfragen übergeben Parameter als Query-String, alle anderen Methoden im Request-Body – wahlweise als JSON (Content-Type: application/json) oder als Formular-Felder. Pfad-Parameter (z. B. {cloud_server}) werden direkt in die URL eingesetzt. Viele Endpunkte der API v1 identifizieren das Zielobjekt stattdessen über einen gewöhnlichen Parameter (z. B. domainName); dieser ist in der jeweiligen Parameter-Tabelle als Identifikator gekennzeichnet.

GET liest Daten, POST legt Ressourcen an oder löst Aktionen aus, PUT ändert Ressourcen und DELETE löscht sie.

KennzeichnungBedeutung
PflichtDer Parameter muss immer übergeben werden.
BedingtDer Parameter ist nur unter der angegebenen Bedingung Pflicht (z. B. abhängig von einem anderen Feld).
OptionalDer Parameter kann weggelassen werden.
Identifikator: DomainDer Wert identifiziert ein vorhandenes Objekt (ID, Name, UUID …). Welches Feld erwartet wird, steht in der Beschreibung des Parameters.
positions[].titleFeld eines Objekts innerhalb einer Liste: positions ist ein Array von Objekten, die jeweils ein Feld title besitzen.

Antworten

Antworten sind immer JSON und folgen demselben Aufbau: status ist "success" oder "error", data enthält die Nutzdaten, messages enthält Hinweise, Warnungen und Fehlermeldungen. Fehler werden zusätzlich über den HTTP-Statuscode (z. B. 400, 403, 404, 422) signalisiert.

{
  "status": "success",
  "data": { ... },
  "pagination": null,
  "messages": {
    "success": [],
    "warnings": [],
    "errors": []
  },
  "metadata": {
    "clientTransactionId": null,
    "serverTransactionId": "…"
  }
}

Listen: Paginierung, Sortierung und Filter

Endpunkte, die Listen zurückgeben, unterstützen folgende optionale Query-Parameter. Die Antwort enthält dann zusätzlich ein pagination-Objekt mit der Gesamtanzahl sowie Links auf die nächste und vorherige Seite.

ParameterTypBeschreibung
limitGanzzahlMaximale Anzahl Einträge pro Antwort.
offsetGanzzahlAnzahl zu überspringender Einträge (für die nächste Seite offset um limit erhöhen).
order[feld]asc / descSortierung nach Feld, z. B. order[created_at]=desc.
easy_filter[feld]TextEinfacher Filter auf exakte Werte, z. B. easy_filter[status]=active.
curl -H "Authorization: Bearer IHR_API_TOKEN" \
  "https://connect.nicapi.eu/api/v1/domain/domains?limit=50&offset=100&order%5Bname%5D=asc"

Eckige Klammern in Query-Parametern müssen URL-kodiert werden (%5B / %5D), sonst interpretiert cURL sie als Platzhalter.

PHP-Client

Für PHP steht ein Client zur Verfügung, der Authentifizierung und Request-Aufbau übernimmt. Die Beispiele bei jedem Endpunkt zeigen den Aufruf sowohl per cURL als auch mit dem PHP-Client.

composer require nicapi/php-client
use NicAPI\NicAPI;

NicAPI::init("IHR_API_TOKEN");

// API v1: Pfad relativ zur Basis-URL
$result = NicAPI::get("domain/domains", ["limit" => 50]);

if (NicAPI::wasSuccess()) {
    $domains = $result->data;
}

// API v2: vollständige URL übergeben
$result = NicAPI::get("https://connect.nicapi.eu/api/v2/cloud/servers");

if (NicAPI::wasSuccess()) {
    $servers = $result->data;
}