Dispatch.IO Logo
Pages publiques

Équipe, pages légales et API

La page Équipe, l'état des pages légales, les liens de contact et l'API publique du site avec sa documentation interactive.

Mis à jour le 15 octobre 2026#api

Rechercher dans la documentation

Tape un mot-clé : commande, module, page du tableau de bord…

En plus des classements, le site a quelques pages publiques accessibles sans connexion : la présentation de l'équipe, les pages légales, des liens de contact, et une API qui permet à un développeur de lire certaines données du bot (statistiques, niveaux, serveurs bumpés…).

Les trois premières sections concernent tout le monde. Les sections sur l'API s'adressent aux personnes qui veulent écrire un programme (un autre bot, un site) qui interroge Dispatch.IO™.

La page Équipe

Les personnes qui font Dispatch.IO.

Ouvre-la depuis le menu du haut : Application › Équipe (adresse /team).

Page Notre Équipe : grille de cartes de membres avec bannière bleue, avatar, nom et badges
La page Notre Équipe

La page s'ouvre sur le titre Notre Équipe, puis affiche une carte par membre actif de l'équipe, les créateurs en premier, puis les autres membres par date d'arrivée.

  1. La couronne en haut à droite : elle signale un Créateur.
  2. Le nom : le nom d'affichage choisi par l'équipe (ou le pseudo Discord), puis @pseudo.
  3. Les badges : le rôle dans l'équipe (par exemple « Développeur » ou « Support »), Créateur et Modérateur selon le cas.
  4. Membre depuis le : la date d'arrivée dans l'équipe.

Les cartes ne contiennent pas de lien. S'il n'y a encore personne, la page affiche « Aucun membre pour le moment ».

Pages légales et FAQ du site

Ce qui existe aujourd'hui et ce qui est en cours d'écriture.

Les liens des pages légales sont dans le pied de page (colonne Liens rapides) et, une fois connecté, dans le menu de ton profil (En savoir plus).

PageAdresseÉtat actuel
Politique de confidentialité/legal/privacyEn cours d'écriture
Conditions générales d'utilisation (CGU)/legal/cguEn cours d'écriture
Conditions générales de vente (CGV)/legal/cgvEn cours d'écriture
FAQ/faqEn cours d'écriture

Pour l'instant, chacune de ces pages affiche son titre, un court résumé, puis le message « Cette page est en cours de construction par IO. Revenez bientôt ! ». Le texte légal n'est pas encore publié.

Page Conditions générales d'utilisation : titre, résumé et encadré indiquant que la page est en construction
Les pages légales sont en cours d'écriture
Astuce

Où trouver des réponses en attendant

  • La page d'accueil du site a une FAQ de six questions (gratuité, ajout du bot, configuration sans code, flammes et gels, personnalisation des cartes, essai de 14 jours) : fais défiler jusqu'en bas ou ouvre /#faq.
  • Cette documentation a sa propre FAQ du site.
  • Pour une question sur tes données ou un achat, contacte l'équipe (voir la section suivante).

Contact et liens utiles

Joindre l'équipe et le serveur de support.

BesoinOù
Rejoindre le serveur Discord de supportBouton Support (icône Discord) du menu du haut, lien Obtenir de l'aide du menu de ton profil, ou l'adresse courte /discord qui redirige vers l'invitation du serveur officiel.
Écrire à l'équipeL'adresse e-mail de la colonne Contact du pied de page.
Ajouter le botBouton Ajouter à Discord de la page d'accueil et du pied de page.

Note

Le lien Commandes du menu Application et du pied de page mène pour l'instant à une page introuvable. La liste des commandes est dans cette documentation : Toutes les commandes.

L'API publique : les principes

Adresse, format des réponses, identifiants, pagination et limite de requêtes.

L'API est un ensemble d'adresses qui renvoient des données au format JSON. Elle sert par exemple à afficher les statistiques du bot sur un autre site, ou à vérifier depuis un autre bot si un utilisateur est sur la liste noire de Dispatch.IO.

Adresse et méthode

  • Toutes les adresses commencent par l'adresse du site suivie de /api/v1/ (par exemple /api/v1/stats).
  • Seule la méthode GET (lecture) existe. Toute autre méthode reçoit le code 405 et {"message":"Method Not Allowed"}.
  • Il n'y a pas de clé d'API : les adresses publiques s'appellent sans authentification. Les deux adresses des tickets utilisent ta session du site (cookie) : elles ne répondent que dans un navigateur où tu es connecté.

Format des réponses

CasCodeCorps de la réponse
Un élément trouvé200{ "data": { … } }
Une liste paginée200{ "data": [ … ], "pagination": { … } }
Paramètre invalide400{ "error": [ { "path": "userId", "message": "ID must contain only digits" } ] }
Rien trouvé404{ "message": "…" } (le texte dépend de l'adresse)

Les messages d'erreur sont en anglais.

Les identifiants Discord

Les ID de serveur et d'utilisateur s'écrivent en chiffres uniquement, avec 17 à 19 chiffres (par exemple 100000000000000001). Sinon, la réponse est une erreur 400 : « ID must be at least 17 characters », « ID must be at most 19 characters » ou « ID must contain only digits ».

La pagination

Les listes acceptent ces paramètres dans l'adresse (après ?) :

ParamètreValeursPar défaut
pageNombre entier, 1 ou plus1
itemsPerPageDe 5 à 1005
orderasc (croissant) ou desc (décroissant)desc
orderByNom du champ de triupdatedAt

L'objet pagination de la réponse contient page, itemsPerPage, total (nombre total d'éléments), totalPages, hasNextPage et hasPreviousPage.

La limite de requêtes

Chaque adresse IP a droit à 100 requêtes par minute sur l'ensemble des adresses /api du site (la connexion Discord a sa propre limite). La minute démarre à la première requête.

Requêtes dans la minuteEffet
De 80 à 89Chaque réponse est ralentie de 0,3 seconde.
De 90 à 99Chaque réponse est ralentie d'1 seconde.
100 et plusCode 429 et {"error":"TooManyRequests","message":"You have exceeded the maximum number of allowed requests. Please try again later."}

Attention

La réponse 429 n'indique pas quand réessayer : attends la fin de la minute. Le site lui-même utilise aussi ces adresses (aperçus d'images, listes de tickets, mises à jour en direct) : si tu testes l'API depuis le même réseau, ces requêtes comptent aussi.

Certaines réponses sont gardées en mémoire quelques minutes : une donnée qui vient de changer peut apparaître avec un léger retard.

Les adresses de l'API

Chaque adresse, ses paramètres et sa réponse.

AdresseAccèsRenvoie
GET /api/v1/healthPublicLe site répond-il ?
GET /api/v1/health/fullPublicL'état de la base de données et du cache
GET /api/v1/statsPublicLes statistiques globales du bot
GET /api/v1/bumpsPublicLes derniers serveurs bumpés
GET /api/v1/tagsPublicLes tags de serveur Discord connus du bot
GET /api/v1/blacklist/{userId}PublicLa fiche d'un utilisateur sur la liste noire
GET /api/v1/level/{guildId}/{userId}PublicLe niveau d'un membre sur un serveur
GET /api/v1/user/ticketsConnectéTes tickets, sur tous les serveurs
GET /api/v1/guild/{guildId}/ticketsConnecté et gestionnaire du serveurLes tickets d'un serveur

GET /api/v1/health

Vérifie que le site répond. Aucun paramètre.

json
{ "isoDate": "2026-10-15T18:54:03.000Z", "status": "ok", "timestamp": 1792090443000 }

GET /api/v1/health/full

Comme health, avec l'état des services : services.db (base de données) et services.cache (cache Redis) valent up ou down.

json
{ "isoDate": "2026-10-15T18:54:03.000Z", "services": { "db": "up", "cache": "up" }, "status": "ok", "timestamp": 1792090443000 }

Attention

Pour l'instant, status vaut toujours ok et le code reste 200, même quand un service est down. Pour surveiller le site, lis les valeurs de services.

GET /api/v1/stats

Les chiffres du bot affichés sur la page d'accueil. Aucun paramètre.

json
{ "data": { "commands": 142, "servers": 1240, "users": 186500, "version": "1.0.0" } }

commands = nombre de commandes du bot, servers = nombre de serveurs, users = nombre total de membres de ces serveurs, version = version du bot. Si les statistiques n'existent pas encore : 404 {"message":"No stats found."}.

GET /api/v1/bumps

La liste paginée des serveurs qui ont activé le bump (voir Bump). Accepte les paramètres de pagination ; pour avoir les derniers serveurs bumpés, utilise ?orderBy=lastBump&order=desc.

json
{
  "data": [
    {
      "bumpCount": 87,
      "guild": { "iconUrl": null, "id": "100000000000000001", "name": "Café des Devs" },
      "inviteCode": "CafeDevs00",
      "lastBump": "2026-10-15T17:40:00.000Z"
    }
  ],
  "pagination": { "hasNextPage": true, "hasPreviousPage": false, "itemsPerPage": 5, "page": 1, "total": 12, "totalPages": 3 }
}

bumpCount = nombre de bumps, inviteCode = code de l'invitation Discord du serveur, lastBump = date du dernier bump, iconUrl = icône du serveur ou null. Liste vide : 404 {"message":"No bumps found."}.

GET /api/v1/tags

La liste paginée des tags de serveur Discord (le court tag qu'un membre peut afficher à côté de son pseudo) connus du bot. Chaque élément contient tag, guildId (le serveur du tag), badge (le badge du tag ou null) et user_count (nombre de membres qui portent ce tag). Liste vide : 404 {"message":"No tags found."}.

GET /api/v1/blacklist/{userId}

Indique si un utilisateur est sur la liste noire globale de Dispatch.IO. Remplace {userId} par l'ID Discord de l'utilisateur.

  • Utilisateur sur la liste : 200 avec data, qui contient notamment user et admin (chacun avec id, username, avatarUrl), reason (la raison), canBeUnflagged (peut-il être retiré de la liste), createdAt et updatedAt.
  • Utilisateur absent de la liste : 404 {"message":"User not flagged"}.

GET /api/v1/level/{guildId}/{userId}

Le niveau d'un membre sur un serveur. Exemple : GET /api/v1/level/100000000000000001/100000000000001001.

json
{
  "data": {
    "createdAt": "2026-03-02T18:21:44.000Z",
    "guildId": "100000000000000001",
    "level": 12,
    "updatedAt": "2026-10-14T20:05:10.000Z",
    "user": { "avatarUrl": "https://cdn.discordapp.com/embed/avatars/1.png", "id": "100000000000001001", "username": "alex" },
    "xpMessage": 12100,
    "xpVoice": 3000
  }
}

Membre sans XP sur ce serveur : 404 {"message":"This user don't have a valid level."}.

GET /api/v1/user/tickets

Les tickets dont tu es le créateur ou un responsable, sur tous tes serveurs. C'est l'adresse qu'utilise la page des tickets de ton espace personnel. Il faut être connecté au site ; sinon : 401 {"message":"Not authenticated"}.

ParamètreValeursPar défaut
Paginationpage, itemsPerPage, order (voir plus haut)
orderBycreatedAt, status, ticketOption.name, userId, archive.createdAtcreatedAt
filterall, open, closed, archivedall
creatorUserIdID Discord du créateur
responsibleUserIdID Discord d'un responsable
searchTexte cherché dans la raison, l'ID du ticket ou les pseudos

Chaque ticket contient id, channelId, status (OPEN, CLOSED ou DELETED), reason, ticketOptionName, createdAt, archivedAt, creator, responsibles, et le serveur (guildId, guildName, guildIcon).

GET /api/v1/guild/{guildId}/tickets

Les tickets d'un serveur, pour la page des tickets du tableau de bord (voir Tickets). Mêmes paramètres que l'adresse précédente. Il faut être connecté et être propriétaire du serveur ou avoir la permission Administrateur ou Gérer le serveur sur Discord.

  • Non connecté : 401 {"message":"Not authenticated"}.
  • Pas les droits sur ce serveur : 403 {"message":"Forbidden"}.
  • Les filtres creatorUserId et responsibleUserId ne s'appliquent que pour le propriétaire ou un Administrateur.

Note

Deux autres adresses existent mais servent uniquement au site et ne sont pas documentées dans /api-docs : /api/v1/image-proxy (affichage des images des tickets, réservé aux personnes connectées) et /api/v1/landing-card (les cartes de la page d'accueil).

Tester l'API avec /api-docs

La documentation interactive Swagger.

La page /api-docs présente l'API de façon interactive. Ouvre-la depuis le menu du haut : Documentation › Documentation API (elle s'ouvre dans un nouvel onglet).

Page Documentation API : en-tête bleu avec le bouton Accueil, puis la liste des groupes d'adresses de l'API dans Swagger
La documentation interactive de l'API
  1. Accueil : revient à la page d'accueil du site. Cette page n'a ni le menu ni le pied de page habituels.
  2. Les groupes : Blacklist, Bump, Health, Level, Stats, Tag et Ticket. Clique sur une adresse pour voir sa description, ses paramètres et ses réponses possibles.
  3. Schemas (en bas de page) : la forme exacte des objets renvoyés.

L'outil (Swagger) est en anglais. Pour essayer une adresse :

  1. Clique sur l'adresse, par exemple GET /v1/level/{guildId}/{userId}.
  2. Clique sur Try it out.
  3. Remplis les paramètres (ici l'ID du serveur et l'ID du membre).
  4. Clique sur Execute. Swagger envoie une vraie requête et affiche la commande curl équivalente, l'adresse appelée, le code et le corps de la réponse.
Adresse GET /v1/level/{guildId}/{userId} dépliée dans Swagger après Execute : paramètres remplis et réponse 200 avec le niveau du membre
Essayer une adresse avec Try it out puis Execute

Astuce

Les essais comptent dans la limite de 100 requêtes par minute. Pour les adresses des tickets, connecte-toi d'abord au site dans le même navigateur.

Mis à jour le 15 octobre 2026