Auth
GET
/api/auth/me
public
Aktueller Login-Status mit CSRF-Token im Response.
# Response (loggedIn):
{
"loggedIn": true,
"user": {
"id": 12,
"username": "senpai",
"email": "senpai@onimai.eu",
"role": "user",
"isVerified": true
},
"csrfToken": "…"
}
POST
/api/auth/register
CSRF
Neuen Account anlegen. Username 3–50 Zeichen, Passwort mind. 8.
# Body:
{ "username": "…", "email": "…", "password": "…" }
POST
/api/auth/login
CSRF
Login mit Username oder E-Mail + Passwort.
# Body:
{ "usernameOrEmail": "senpai", "password": "…" }
POST
/api/auth/logout
CSRF
Session beenden.
Bots
GET
/api/bots
public
Alle verifizierten Bots im Verzeichnis (mit optionalen Filtern).
# Query:
?platform=WhatsApp&category=Gaming-Bots&search=onimai
POST
/api/bots
Login + CSRF
Neuen Bot einreichen. Multipart-Form mit optionalem Logo (max 2 MB).
# Felder:
title, platform, category, inviteLink,
description, tags?, logo?, externalImageUrl?
POST
/api/bots/:id/like
Login + CSRF
Like-Counter um +1 erhöhen.
Public Stats
GET
/api/public/stats
public
Anonyme Aggregat-Stats.
# Response:
{
"members": 42,
"bots_total": 18,
"bots_verified": 16,
"total_likes": 312,
"platforms": ["WhatsApp", "Telegram", "Discord", "Signal"]
}
Admin ⚡ requires role=admin
GET
/api/admin/stats
Admin
Vollständige Dashboard-Stats: User-Counts nach Rolle/Status, Bot-Counts, Plattform-Verteilung, Kategorie-Verteilung.
GET
/api/admin/users
Admin
Die letzten 100 User mit Rolle + Verify-Status.
POST
/api/admin/users/:id/verify
Admin + CSRF
User verifizieren.
GET
/api/admin/bots
Admin
Alle Bots inklusive unverifizierter (Moderations-Queue).
POST
/api/admin/bots/:id/verify
Admin + CSRF
Bot freischalten — wird sofort im öffentlichen Feed sichtbar.
DEL
/api/admin/bots/:id
Admin + CSRF
Bot permanent entfernen.