Documentation complète de l'API REST du bot de modération Discord.
http://localhost:3000
Toutes les routes protégées nécessitent un token JWT dans l'header :
Authorization: Bearer <token>
Pour les requêtes du bot vers l'API, utilisez :
X-Bot-Api-Key: <BOT_API_KEY>
Connexion d'un utilisateur.
Body:
{
"email": "user@example.com",
"password": "password123"
}Response:
{
"success": true,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": {
"id": "507f1f77bcf86cd799439011",
"email": "user@example.com",
"username": "John Doe",
"globalRole": null
}
}Inscription d'un nouvel utilisateur.
Body:
{
"email": "user@example.com",
"password": "password123",
"username": "John Doe",
"discordId": "123456789012345678"
}Obtenir l'utilisateur connecté.
Headers: Authorization: Bearer <token>
Liste tous les utilisateurs.
Détails d'un utilisateur avec ses rôles.
Modifier le rôle global d'un utilisateur.
Body:
{
"globalRole": "MASTER"
}Assigner un rôle sur une guild.
Body:
{
"role": "GUILD_ADMIN"
}Retirer un rôle sur une guild.
Liste tous les serveurs.
Configuration d'une guild.
Permissions: GUILD_MODERATOR+
Mettre à jour la configuration.
Permissions: GUILD_ADMIN+
Body:
{
"name": "Mon Serveur",
"moderationRoles": ["role_id_1", "role_id_2"],
"logChannelId": "channel_id",
"defaultLanguage": "fr",
"escalationRules": [
{
"infractionType": "spam",
"levels": [
{ "level": 1, "action": "warn", "durationMs": null },
{ "level": 2, "action": "mute", "durationMs": 3600000 },
{ "level": 3, "action": "ban", "durationMs": null }
]
}
]
}Liste des templates.
Query params:
active(boolean) - Filtrer par actif/inactifinfractionType(string) - Filtrer par type
Créer un template.
Permissions: GUILD_ADMIN+
Body:
{
"name": "Spam léger",
"infractionType": "spam",
"reason": "Spam de messages",
"suggestedAction": "warn",
"emoji": "⚠️"
}Modifier un template.
Supprimer un template.
Appliquer une sanction.
Permissions: GUILD_MODERATOR+ ou Bot API Key
Body:
{
"userId": "discord_user_id",
"moderatorId": "discord_moderator_id",
"infractionType": "spam",
"reason": "Spam répété dans le chat",
"templateId": "template_id_optionnel",
"overrideAction": "mute",
"overrideDuration": 3600000
}Response:
{
"success": true,
"sanction": {
"_id": "...",
"guildId": "...",
"userId": "...",
"moderatorId": "...",
"action": "mute",
"reason": "Spam répété",
"infractionType": "spam",
"infractionLevel": 2,
"durationMs": 3600000,
"expiresAt": "2024-01-01T13:00:00.000Z",
"active": true,
"createdAt": "2024-01-01T12:00:00.000Z"
}
}Logs de sanctions de la guild.
Query params:
page(number) - Page (défaut: 1)limit(number) - Limite par page (défaut: 50)action(string) - Filtrer par actionactiveOnly(boolean) - Sanctions actives uniquementuserId(string) - Filtrer par utilisateur
Historique d'un utilisateur.
Révoquer une sanction (unmute/unban).
Body:
{
"moderatorId": "discord_moderator_id"
}Réinitialiser les compteurs d'infractions.
Permissions: GUILD_ADMIN+
Body:
{
"infractionType": "spam"
}Format standard :
{
"success": false,
"message": "Description de l'erreur"
}Status codes :
400- Bad Request (paramètres invalides)401- Unauthorized (non authentifié)403- Forbidden (permissions insuffisantes)404- Not Found500- Internal Server Error