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.
- Navigiere im Admin Dashboard zu Entwickler & API Hub.
- Wähle den Tab API Keys und klicke auf API Key erstellen.
- Vergib einen Namen (z. B. "GitHub Actions Token").
- Bestimme die Gültigkeit (in Tagen).
- Wähle die Berechtigungen (Scopes). Vergib nur die Rechte, die für den jeweiligen Anwendungsfall zwingend nötig sind (Prinzip der geringsten Privilegien).
- 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:readkann beispielsweise den/api/v1/admin/devs/diagnosticsEndpunkt 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 Code | Möglicher Grund |
|---|---|
401 Unauthorized | API-Schlüssel fehlt, ist ungültig oder abgelaufen. |
403 Forbidden | Der API-Schlüssel hat nicht den erforderlichen Scope für diesen Endpunkt. |
429 Too Many Requests | Rate-Limit überschritten. |