docs/api/API Keys

API Keys

API & Automatisierung

KiroCloud bietet eine moderne, REST-basierte API an, mit der du externe Tools, Bots oder CI/CD-Pipelines an dein Dashboard anbinden kannst. Alle Anfragen erfordern eine sichere Authentifizierung via API-Schlüssel.

1. API-Schlüssel erstellen

API-Schlüssel werden im Developer Hub generiert.

  1. Navigiere im Admin Dashboard zu Entwickler & API Hub.
  2. Wähle den Tab API Keys und klicke auf API Key erstellen.
  3. Vergib einen Namen (z. B. "GitHub Actions Token").
  4. Bestimme die Gültigkeit (in Tagen).
  5. Wähle die Berechtigungen (Scopes). Vergib nur die Rechte, die für den jeweiligen Anwendungsfall zwingend nötig sind (Prinzip der geringsten Privilegien).
  6. Klicke auf Erstellen und kopiere den Token sofort. Er wird dir danach nie wieder im Klartext angezeigt!

!WARNING Teile deinen API-Schlüssel niemals öffentlich. Sollte ein Schlüssel kompromittiert werden, lösche (revoke) ihn umgehend im Dashboard.

2. Authentifizierung

Um sich bei der KiroCloud-API zu authentifizieren, musst du den API-Schlüssel im Authorization-Header als Bearer-Token mitsenden.

Authorization: Bearer kiro_adm_DEIN_SCHLUESSEL

3. Berechtigungen (Scopes)

Je nachdem, was du automatisieren willst, benötigt dein API-Schlüssel verschiedene Scopes:

  • * - Voller Zugriff (Administrator). Mit Vorsicht verwenden!
  • bots:read / bots:write - Erlaubt das Auslesen oder Verwalten der KiroCloud Discord Bots.
  • tickets:read / tickets:write - Erlaubt den Lese- oder Schreibzugriff auf das Ticket-System.
  • users:read - Erlaubt das Auslesen von Benutzerdaten.
  • system:read - Erlaubt das Auslesen von System- und Diagnosedaten.

!TIP Ein API Key mit dem Scope system:read kann beispielsweise den /api/v1/admin/devs/diagnostics Endpunkt aufrufen, um Live-Ressourcendaten in ein externes Monitoring-Tool (wie Grafana) zu exportieren.

4. Beispiel-Aufrufe

cURL

curl -X GET "https://api.kirocloud.de/api/v1/admin/devs/diagnostics" \
  -H "Authorization: Bearer kiro_adm_YOUR_API_KEY" \
  -H "Accept: application/json"

Node.js / JavaScript (Fetch)

const response = await fetch("https://api.kirocloud.de/api/v1/admin/devs/diagnostics", {
  method: "GET",
  headers: {
    "Authorization": "Bearer kiro_adm_YOUR_API_KEY",
    "Content-Type": "application/json"
  }
});
const data = await response.json();
console.log(data);

Python (Requests)

import requests

url = "https://api.kirocloud.de/api/v1/admin/devs/diagnostics"
headers = {
    "Authorization": "Bearer kiro_adm_YOUR_API_KEY",
    "Content-Type": "application/json"
}

response = requests.get(url, headers=headers)
print(response.json())

Fehlerbehebung

Status CodeMöglicher Grund
401 UnauthorizedAPI-Schlüssel fehlt, ist ungültig oder abgelaufen.
403 ForbiddenDer API-Schlüssel hat nicht den erforderlichen Scope für diesen Endpunkt.
429 Too Many RequestsRate-Limit überschritten.
Cookie-Einstellungen

Wir verwenden Cookies, um deine Erfahrung zu verbessern und unsere Dienste optimal anzubieten. Du kannst deine Einstellungen jederzeit anpassen.

main/e609418