API-Referenz¶
Übersicht¶
Das Admin Panel bietet 22 API-Routen, alle unter app/api/. Authentifizierung erfolgt via JWT-Cookie (siehe Authentifizierung).
Authentifizierung¶
| Route | Methode | Beschreibung |
|---|---|---|
/api/auth/login |
POST | Login mit Username/Password, setzt JWT-Cookie |
/api/auth/logout |
POST | Löscht Auth-Cookie |
Login-Request:
Login-Response:
Dashboard¶
| Route | Methode | Beschreibung |
|---|---|---|
/api/dashboard/stats |
GET | Aggregierte Dashboard-Statistiken |
Response-Felder: totalUsers, totalRevenue, failedIntents, activeVouchers, activeIntents, settlementStatus, recentIntents (20)
Benutzer¶
| Route | Methode | Beschreibung |
|---|---|---|
/api/users |
GET | Paginierte Benutzerliste |
/api/users/[wallet] |
GET | User-Detail mit Tickets, Vouchers, Affiliates |
Query-Parameter (users):
- page (default: 1)
- limit (default: 50, max: 100)
- search (Wallet/E-Mail/Name)
Settlements¶
| Route | Methode | Beschreibung |
|---|---|---|
/api/settlements |
GET | Paginierte Settlement-Historie |
Query-Parameter: page, limit
Buy Intents¶
| Route | Methode | Beschreibung |
|---|---|---|
/api/intents |
GET | Paginierte Kaufabsichten |
Query-Parameter: page, limit, status (CREATED/SIGNED/EXECUTING/CONFIRMED/FAILED), buyer
Gutscheine¶
| Route | Methode | Beschreibung |
|---|---|---|
/api/vouchers |
GET | Paginierte Voucher-Liste |
/api/vouchers |
POST | Bonus-Gutschein erstellen |
/api/vouchers/stats |
GET | Voucher-Statistiken nach Typ |
POST-Body:
Validierung: - Amount: 1-100 - Marketing-Bonus: Max. 3 aktive pro Spieler (konfigurierbar) - Marketing-Bonus: Automatisch 30 Tage Ablauf
Affiliates¶
| Route | Methode | Beschreibung |
|---|---|---|
/api/affiliates |
GET | Paginierte Affiliate-Beziehungen |
Query-Parameter: page, limit
Winners¶
| Route | Methode | Beschreibung |
|---|---|---|
/api/winners |
GET | Paginierte Gewinner-Auszahlungen |
Query-Parameter: page, limit, player, dayId, claimed (true/false), minAmount
Response enthält zusätzlich: Summary mit total_winners, unique_players, total_payouts, claimed/unclaimed counts
Errors¶
| Route | Methode | Beschreibung |
|---|---|---|
/api/errors |
GET | Fehler-Übersicht mit Aggregation |
Query-Parameter: page, limit, type (intents/userlogs)
Contracts¶
| Route | Methode | Beschreibung |
|---|---|---|
/api/contracts |
GET | Echtzeit-Contract-Balances (On-Chain) |
Keine Query-Parameter — liefert immer alle 12 Contracts mit aktuellen Balances.
Watchdog¶
| Route | Methode | Beschreibung |
|---|---|---|
/api/watchdog |
GET | System-Health, Alerts, Check-Historie |
Response-Struktur:
{
"runs": [...], // Letzte 20 Watchdog-Runs
"openAlerts": [...], // Ungelöste Alerts
"recentAlerts": [...], // Letzte 50 Alerts
"checks": [...] // 9 statische System-Checks
}
Workers¶
| Route | Methode | Beschreibung |
|---|---|---|
/api/workers |
GET | Cron-Job-Status und Logs |
Query-Parameter: worker (einzelner Worker-Name für Detail-Log)
Seeds¶
| Route | Methode | Beschreibung |
|---|---|---|
/api/seeds |
GET | VRF/Drand-Seed-Status und Historie |
Response: Current seeds (on-chain), ticket counter, threshold, worker status, letzte 20 Updates
Maintenance¶
| Route | Methode | Beschreibung |
|---|---|---|
/api/maintenance |
GET | Maintenance-Mode-Status |
/api/maintenance |
PUT | Maintenance-Mode umschalten |
Konfiguration¶
| Route | Methode | Beschreibung |
|---|---|---|
/api/config |
GET | Alle Konfigurationsschlüssel |
/api/config |
POST | Neuen Key anlegen |
/api/config |
PUT | Key aktualisieren |
/api/config |
DELETE | Key löschen |
Charity¶
| Route | Methode | Beschreibung |
|---|---|---|
/api/charity/rounds |
GET | Alle Voting-Runden |
/api/charity/rounds |
POST | Neue Runde erstellen |
/api/charity/rounds/[id] |
GET | Runden-Detail mit Votes |
/api/charity/rounds/[id] |
PUT | Rundenstatus ändern |
/api/charity/projects |
GET | Projekte einer Runde |
/api/charity/projects |
POST | Projekt hinzufügen |
/api/charity/projects |
DELETE | Projekt löschen |
Test Players¶
| Route | Methode | Beschreibung |
|---|---|---|
/api/testplayers |
GET | Test-Player-Logs |
Query-Parameter: type (alerts/runlog)
Standard-Pagination¶
Alle paginierten Endpoints folgen diesem Schema:
// Request
GET /api/endpoint?page=1&limit=50
// Response
{
"data": [...],
"total": 234,
"page": 1,
"limit": 50
}
- page: Min. 1 (default: 1)
- limit: Min. 1, max. 100 (default: 50)
- offset: Berechnet als
(page - 1) * limit
Fehlerbehandlung¶
Alle Endpoints verwenden einheitliches Error-Format:
| Status | Bedeutung |
|---|---|
| 400 | Ungültige Parameter |
| 401 | Nicht authentifiziert |
| 404 | Ressource nicht gefunden |
| 409 | Konflikt (z.B. Marketing-Bonus-Limit) |
| 500 | Interner Serverfehler |