api
REST-API
Programmatischer Zugriff auf Ihr Restore Hub Konto, Server, Mitglieder, Backups, Pulls, Firewall, Whitelist, Blacklist, Analysen, Marktplatz und mehr. Vollständige Endpunktreferenz mit Beispielen für Anfrage/Antwort.
Übersicht
Die Restore Hub REST API bietet Ihnen programmatischen Zugriff auf alle Funktionen der Plattform. Verwenden Sie sie, um benutzerdefinierte Dashboards zu erstellen, mit anderen Tools zu integrieren, Workflows zu automatisieren oder Ihr eigenes Frontend zu erstellen.
Die API-Basis-URL lautet https://restorehub.net/api/v1. Alle Endpunkte erfordern eine Authentifizierung und sind pro Plan gebührenbegrenzt.
Authentifizierung
Alle API-Anforderungen müssen Ihren API-Schlüssel im Authorization-Header als Bearer-Token enthalten. Ihr API-Schlüssel ist eine UUID, die bei der Erstellung Ihres Kontos generiert wird. Sie können ihn im Dashboard unter Einstellungen → API-Schlüssel finden.
Autorisierung: Überbringer rh_Ihr_api_Schlüssel_hierTipp: Ihr API-Schlüssel hat die gleichen Berechtigungen wie Ihr Konto. Jeder, der über Ihren API-Schlüssel verfügt, kann jede Aktion ausführen, die Sie ausführen können. Halten Sie ihn geheim und geben Sie ihn niemals in clientseitigem Code oder öffentlichen Repositories preis.
Raten-Grenzwerte
API-Anfragen sind pro 10-Sekunden-Fenster begrenzt. Das Limit hängt von Ihrem Tarif ab. Wenn Sie das Limit überschreiten, gibt die API HTTP 429 Too Many Requests zurück.
Die Informationen zur Ratenbegrenzung sind in jeder Antwort über Kopfzeilen enthalten:
| Plan | Anfragen pro 10 Sekunden |
|---|---|
| Kostenlos | 20 |
| Premium | 50 |
| Business | 100 |
| Unternehmen | 200 |X-RateLimit-Grenze: 50
X-RateLimit-Remaining: 47
X-RateLimit-Reset: 1680000010Antwortformat
Alle erfolgreichen Antworten sind JSON mit einem Datenfeld. Paginierte Endpunkte enthalten auch ein Paginierungsobjekt. Fehlerantworten enthalten eine Fehlerzeichenfolge und optional ein Detailobjekt für Validierungsfehler.
// Erfolg
{
"Daten": { ... },
"pagination": {
"Seite": 1,
"Grenze": 25,
"gesamt": 142,
"totalPages": 6
}
}
// Fehler
{
"Fehler": "Server nicht gefunden"
}
// Validierungsfehler
{
"error": "Validierung fehlgeschlagen",
"details": {
"fieldErrors": { "roleId": ["Ungültige Discord-Schneeflocke"] },
"formErrors": []
}
}Konto
Rufen Sie Ihre Kontoinformationen, Tarifdetails, den Abonnementstatus und die aktuellen Limits ab.
GET /api/v1/account
Antwort:
{
"data": {
"id": "uuid",
"discordId": "123456789012345678",
"username": "johndoe",
"displayName": "John Doe",
"avatar": "https://cdn.discordapp.com/...",
"plan": "PREMIUM",
"mfaEnabled": wahr,
"createdAt": "2024-01-15T00:00:00Z",
"_count": {
"server": 3,
"customBots": 2,
"teams": 1
},
"Abonnement": {
"plan": "PREMIUM",
"status": "AKTIV",
"currentPeriodEnd": "2025-02-15T00:00:00Z",
"isTrial": falsch,
"trialEndsAt": null,
"cancelledAt": null
},
"limits": {
"maxServer": 10,
"maxBots": 5,
"maxBackups": 10,
"maxStorageBytes": 5368709120,
"pullCooldownMs": 3600000,
"marketplaceFeePercent": 12,
"apiRatePerTenSeconds": 50,
"hasVpnDetection": true,
"hasAltDetection": wahr,
"hasFirewall": true
}
}
}Benutzerdefinierte Bots
Listen Sie Ihre benutzerdefinierten Bots auf oder erstellen Sie einen neuen. Bot-Tokens und Client-Geheimnisse werden im Ruhezustand verschlüsselt und niemals in API-Antworten zurückgegeben.
GET /api/v1/bots
Antwort:
{
"data": [
{
"id": "uuid",
"clientId": "123456789012345678",
"name": "Mein Verifizierungsbot",
"avatar": "https://cdn.discordapp.com/...",
"Status": "ONLINE",
"activityType": "ÜBERWACHEND",
"activityText": "restorehub.net",
"isActive": wahr,
"createdAt": "2024-01-15T00:00:00Z",
"updatedAt": "2024-06-01T00:00:00Z"
}
]
}
---
POST /api/v1/bots
Anfragekörper:
{
"botToken": "MTIz...",
"clientId": "123456789012345678",
"clientSecret": "abc123...",
"publicKey": "def456...",
"redirectUri": "https://restorehub.net/api/callback",
"name": "My Verify Bot"
}
Antwort (201):
{
"Daten": {
"id": "uuid",
"clientId": "123456789012345678",
"name": "Mein Überprüfungsbot",
"isActive": wahr,
"createdAt": "2024-01-15T00:00:00Z"
}
}Server - Auflisten & Erstellen
Alle Server auf Ihrem Konto auflisten (paginiert) oder einen neuen Server erstellen.
GET /api/v1/servers?page=1&limit=25
Antwort:
{
"data": [
{
"id": "uuid",
"discordGuildId": "123456789012345678",
"name": "Meine Gemeinschaft",
"icon": "https://cdn.discordapp.com/...",
"memberCount": 5420,
"verifiedRoleId": "987654321098765432",
"logChannelId": "111222333444555666",
"captchaType": "TURNSTILE",
"vpnBlockEnabled": wahr,
"altDetectEnabled": wahr,
"firewallEnabled": wahr,
"antiNukeEnabled": falsch,
"antiRaidEnabled": falsch,
"createdAt": "2024-01-15T00:00:00Z",
"updatedAt": "2024-06-01T00:00:00Z"
}
],
"pagination": { "page": 1, "limit": 25, "total": 3, "totalPages": 1 }
}
---
POST /api/v1/server
Anfragekörper:
{
"discordGuildId": "123456789012345678",
"customBotId": "uuid-of-your-bot",
"name": "Meine Gemeinschaft",
"verifiedRoleId": "987654321098765432",
"logChannelId": "111222333444555666"
}
Antwort (201):
{
"data": { "id": "uuid", ... }
}Server-Details - Abrufen, Aktualisieren, Löschen
GET /api/v1/server/:id
PUT /api/v1/server/:id
DELETE /api/v1/server/:idWarnung: Die Löschung eines Servers ist dauerhaft. Alle verifizierten Mitglieder, Backups, Firewall-Regeln und Analysedaten für diesen Server werden dauerhaft gelöscht.
Geprüfte Mitglieder
Liste verifizierter Mitglieder für einen Server mit Paginierung, Suche und Pull-Filter.
GET /api/v1/servers/:id/members?page=1&limit=25&search=john&pullable=trueBackups - Auflisten & Erstellen
GET /api/v1/servers/:id/backups?page=1&limit=25
POST /api/v1/server/:id/backupsTipp: Die Erstellung eines Backups erfolgt asynchron. Der POST kehrt sofort mit dem Status "in der Warteschlange" zurück. Rufen Sie den GET-Endpunkt ab, um zu prüfen, wann die Sicherung fertig ist.
Wiederherstellen einer Sicherung
POST /api/v1/servers/:id/backups/:backupId/restoreWarnung: Bei der Wiederherstellung von Kanälen werden alle vorhandenen Kanäle auf dem Zielserver gelöscht. Dies ist nicht umkehrbar.
Mitglied Pulling
POST /api/v1/server/:id/pull
GET /api/v1/pulls/:idFirewall-Regeln
GET /api/v1/server/:id/firewall
POST /api/v1/server/:id/firewall
DELETE /api/v1/servers/:id/firewall?ruleId=uuidTipp: Regeltypen: IP, COUNTRY, ASN, FINGERPRINT, USER_ID, SERVER_ID, REGION. Doppelte Regeln (gleicher Typ + Wert) geben HTTP 409 zurück.
Whitelist-Regeln
GET /api/v1/server/:id/whitelist
POST /api/v1/server/:id/whitelist
DELETE /api/v1/servers/:id/whitelist?ruleId=uuidSchwarze Liste
POST /api/v1/servers/:id/blacklistSperrlisten gelten pro Benutzer (nicht pro Server). Wenn Sie eine Discord-Benutzer-ID auf eine schwarze Liste setzen, wird sie für die Verifizierung auf ALLEN Ihren Servern gesperrt.
Analytik
GET /api/v1/servers/:id/analytics?period=30dDas Trichterobjekt zeigt an, wie viele Überprüfungsversuche jede Stufe erreicht haben. Verwenden Sie dies, um zu erkennen, wo die Mitglieder abfallen.
Marktplatz-Inserate
GET /api/v1/marktplatz/listings?category=GAMING&sort=rating&page=1&limit=25
POST /api/v1/marktplatz/bestellungen
GET /api/v1/marktplatz/bestellungen/:idVollständige Endpunkt-Referenz
| Methode | Endpunkt | Beschreibung |
|---|---|---|
| GET | /api/v1/account | Abrufen der Kontoinformationen, des Plans und der Limits eines authentifizierten Benutzers |
| GET | /api/v1/bots | Auflistung Ihrer benutzerdefinierten Bots |
| POST | /api/v1/bots | Erstellen eines neuen benutzerdefinierten Bots |
| GET | /api/v1/servers | Auflisten Ihrer Server (paginiert) |
| POST | /api/v1/servers | Einen neuen Server erstellen |
| GET | /api/v1/servers/:id | Serverdetails mit Zählungen abrufen |
| PUT | /api/v1/servers/:id | Servereinstellungen aktualisieren (teilweise) |
| DELETE | /api/v1/servers/:id | Löschen eines Servers und aller seiner Daten |
| GET | /api/v1/servers/:id/members | Verifizierte Mitglieder auflisten (paginiert, durchsuchbar, filterbar) |
| GET | /api/v1/servers/:id/backups | Auflistung von Backups für einen Server (paginiert) |
| POST | /api/v1/servers/:id/backups | Erstellen einer neuen Sicherung (asynchron) |
| POST | /api/v1/servers/:id/backups/:backupId/restore | Wiederherstellen einer Sicherung (asynchron) |
| POST | /api/v1/servers/:id/pull | Starten eines Pull-Auftrags für Mitglieder (asynchron) |
| GET | /api/v1/pulls/:id | Status und Fortschritt eines Pull-Jobs abfragen |
| GET | /api/v1/servers/:id/firewall | Firewall-Regeln auflisten |
| POST | /api/v1/servers/:id/firewall | Hinzufügen einer Firewall-Regel |
| DELETE | /api/v1/servers/:id/firewall?ruleId=x | Löschen einer Firewall-Regel |
| GET | /api/v1/servers/:id/whitelist | Whitelist-Regeln auflisten |
| POST | /api/v1/servers/:id/whitelist | Hinzufügen einer Whitelist-Regel |
| DELETE | /api/v1/servers/:id/whitelist?ruleId=x | Löschen einer Whitelist-Regel |
| POST | /api/v1/servers/:id/blacklist | Einen Discord-Benutzer auf die schwarze Liste setzen |
| GET | /api/v1/servers/:id/analytics | Server-Analysen und Verifizierungstrichter abrufen |
| GET | /api/v1/marketplace/listings | Marktplatz-Angebote durchsuchen (paginiert, filterbar) |
| POST | /api/v1/marketplace/orders | Erstellen einer Marktplatzbestellung |
| GET | /api/v1/marketplace/orders/:id | Bestellstatus und Erfüllungsfortschritt abfragen |HTTP Status Codes
| Code | Bedeutung |
|---|---|
| 200 | Erfolg - Ressource zurückgegeben |
| 201 | Erstellt - Ressource erfolgreich erstellt |
| 202 | Akzeptiert - Asynchroner Auftrag in der Warteschlange (Sicherung, Wiederherstellung, Pull) |
| 400 | Bad Request - ungültige Eingabe oder Validierungsfehler |
| 401 | Nicht autorisiert - fehlender oder ungültiger API-Schlüssel |
| 403 | Verboten - Plan enthält diese Funktion nicht oder Limit überschritten |
| 404 | Nicht gefunden - Ressource existiert nicht oder gehört nicht zu Ihnen |
| 409 | Konflikt - doppelte Ressource (z. B. Firewall-Regel existiert bereits) |
| 429 | Rate Limited - zu viele Anfragen oder Abklingzeit nicht abgelaufen |
| 500 | Interner Serverfehler - unerwarteter Fehler |