API Dokumentation
Umfassende Dokumentation für alle verfügbaren API-Endpunkte
API Base URL: https://www.craftingstudiopro.de
Die CraftingStudio Pro API bietet eine RESTful-Schnittstelle für die Integration mit verschiedenen Systemen. Alle API-Anfragen müssen im JSON-Format erfolgen.
Authentifizierung
Die meisten Endpunkte erfordern eine Authentifizierung über Session-Cookies. Einige Endpunkte erfordern zusätzlich Admin-Berechtigungen.
Response-Formate
Alle API-Antworten werden im JSON-Format zurückgegeben:
{
"success": true,
"data": {}
}Fehlercodes
Unser Hosting-Dienst ist vollständig funktionstüchtig!
Du kannst Python-, Node.js- und Minecraft-Server hosten – alle 24/7 online.
Free-Server Limits
Free-Server bekommen bis zu:
Max-Werte, auch weniger möglich
Unterstützte Server-Typen
Server erstellen
So erstellst du einen neuen Server:
1. Website öffnen → einloggen / Account erstellen 2. Oben Profil → Meine Server → Server erstellen
Admin-Freischaltung: Hinweis: Jeder Server muss von einem Admin freigeschaltet werden. Das kann bis zu 24 Stunden dauern.
Validiert einen Lizenz-Key für ein bestimmtes Plugin.
Lizenz-Key validieren
Validiert einen Lizenz-Key für ein bestimmtes Plugin.
Request Body
{
"licenseKey": "PLUGIN-XXXX-XXXX-XXXX",
"pluginId": "plugin-id"
}Response (Erfolgreich)
{
"valid": true,
"purchase": {
"id": "purchase-id",
"userId": "user-id",
"pluginId": "plugin-id",
"createdAt": "2024-01-01T00:00:00.000Z"
}
}Response (Ungültig)
{
"valid": false,
"message": "Ungültiger Lizenz-Key"
}Beispiel (JavaScript)
const response = await fetch('https://www.craftingstudiopro.de/api/license/validate', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
licenseKey: 'PLUGIN-XXXX-XXXX-XXXX',
pluginId: 'plugin-id'
})
});
const result = await response.json();
if (result.valid) {
console.log('Lizenz gültig:', result.purchase);
} else {
console.log('Lizenz ungültig:', result.message);
}Erstellt ein neues Plugin. Erfordert Authentifizierung.
Plugin erstellen
Erstellt ein neues Plugin. Erfordert Authentifizierung.
Request Body
{
"name": "Mein Plugin",
"description": "Plugin-Beschreibung in Markdown",
"version": "1.0.0",
"mcVersions": ["1.20.1", "1.20.2"],
"category": "Economy",
"tags": "economy,money",
"downloadUrl": "https://example.com/plugin.jar",
"sourceUrl": "https://github.com/user/plugin",
"iconUrl": "https://example.com/icon.png",
"donationUrl": "https://paypal.me/user",
"languages": "de,en",
"isPremium": false,
"price": null,
"useLicenseKey": false
}Hinweis: Für Premium-Plugins ist 2FA erforderlich. Das Plugin wird nach der Erstellung auf "pending" gesetzt und muss von einem Moderator genehmigt werden.
Pflichtfelder
name- Name des Pluginsdescription- Beschreibung (Markdown unterstützt)version- Version (semantische Versionierung, z.B. "1.0.0")mcVersions- Array oder String mit unterstützten Minecraft-Versionen
Erstellt eine Stripe Checkout-Session für den Kauf eines Premium-Plugins. Erfordert Authentifizierung und 2FA.
Checkout Session erstellen
Erstellt eine Stripe Checkout-Session für den Kauf eines Premium-Plugins. Erfordert Authentifizierung und 2FA.
Request Body
{
"pluginId": "plugin-id"
}Response
{
"sessionId": "cs_test_...",
"url": "https://checkout.stripe.com/...",
"purchaseId": "purchase-id"
}Webhook
Stripe sendet Webhooks an: POST /api/payments/webhook
Nach erfolgreicher Zahlung wird automatisch ein Lizenz-Key generiert (falls das Plugin useLicenseKey: true hat).
Ruft alle verfügbaren System-Metriken ab.
Metriken abrufen
Ruft alle verfügbaren System-Metriken ab.
Response
[
{
"id": "metric-id",
"name": "API Response Time",
"description": "Response-Zeit der API",
"type": "api_response_time",
"url": "/api/metric",
"unit": "ms",
"color": "#3b82f6",
"createdAt": "2024-01-01T00:00:00.000Z"
}
]Metrik-Sammlung auslösen
Löst die automatische Sammlung von Metriken aus. Sollte von einem Cron-Job aufgerufen werden.
Response
{
"success": true,
"message": "Metriken erfolgreich gesammelt"
}Meldet einen Benutzer an. Gibt einen 2FA-Token zurück, wenn 2FA aktiviert ist.
Login
Meldet einen Benutzer an. Gibt einen 2FA-Token zurück, wenn 2FA aktiviert ist.
Request Body
{
"email": "user@example.com",
"password": "password"
}Response (Ohne 2FA)
{
"success": true,
"requires2FA": false,
"user": {
"id": "user-id",
"email": "user@example.com",
"name": "Username"
}
}Response (Mit 2FA)
{
"requires2FA": true,
"loginToken": "login-token",
"message": "2FA-Code erforderlich"
}2FA verifizieren
Verifiziert den 2FA-Code nach dem Login.
Request Body
{
"loginToken": "login-token",
"code": "123456"
}