DayzHUBDiscord

FonctionnalitésPremium 1

API du Bot

Affiche les données de ton serveur sur ton propre site

Crée un jeton secret dans ton tableau de bord et ton site ou tes outils pourront lire des infos en direct sur ton serveur : le classement des niveaux, les concours en cours, le nombre de tickets, l'état de ton serveur de jeu et les produits de ta boutique. C'est en lecture seule. Rien de ce qu'il fait ne peut modifier ton serveur, et les membres qui se sont opposés au traitement de leurs données restent toujours anonymes.

bot-api

🚫

Aucun message Discord

L'API du Bot fonctionne depuis ton tableau de bord et ton propre site. Rien n'est publié sur Discord.

Comment ça marche

Opérationnel en quelques minutes

  1. 01

    Crée un jeton

    Tableau de bord, Gestion, API du Bot : donne-lui un nom, coche ce qu'il peut lire, copie-le. Il n'est affiché qu'une seule fois.

  2. 02

    Garde-le secret

    Conserve-le sur ton propre serveur comme un mot de passe. Utilise un jeton par site ou outil.

  3. 03

    Demande tes données

    Ton site envoie le jeton dans un en-tête Authorization et reçoit tes données en JSON.

  4. 04

    Révoque quand tu veux

    Clique sur Révoquer dans la page API du Bot et le jeton cesse de fonctionner immédiatement.

Ce que tu peux créer

L'API du Bot permet à ton propre site ou à tes outils de lire des infos en direct sur ton serveur Discord. Elle ne fait que lire. Rien de ce que tu construis avec ne peut modifier ton serveur ni toucher à tes membres. Voici quelques idées que l'on met en place en un après-midi.

  • Un widget de classementAffiche tes 10 meilleurs survivants par niveau sur le site de ta communauté.
  • Un compte à rebours de concoursMets le concours en cours, son lot et sa date de fin sur ta page d'accueil.
  • Le nombre de ticketsMontre combien de tickets sont ouverts et à quelle vitesse ton équipe répond, pour un tableau de bord du staff ou une bannière « nous répondons en 10 minutes environ ».
  • Un badge d'étatIndique si ton serveur de jeu est en ligne et combien de joueurs y sont connectés.
  • Une liste de produits de la boutiqueListe les produits de ta Boutique de dons avec leurs prix sur ton propre site et renvoie directement vers le paiement.

Tu ne codes pas ? Envoie cette page à la personne qui s'occupe de ton site. Elle saura quoi en faire.

Pas à pas : crée ton jeton

Un jeton est un long mot de passe secret qui permet à un site ou à un outil de lire ton serveur. Tu le crées dans ton tableau de bord.

  1. 01

    Ouvre la page API du Bot

    Connecte-toi sur dayzhub.net, ouvre ton tableau de bord, choisis ton serveur, puis clique sur API du Bot dans la section Gestion du menu latéral. Seules les personnes ayant la permission Gérer le serveur peuvent la voir. Les membres de l'accès équipe ne le peuvent pas.

  2. 02

    Donne-lui un nom

    Saisis un nom court qui rappelle son usage, par exemple « Classement du site ». Utilise un jeton par site ou outil.

  3. 03

    Choisis ce qu'il peut lire

    Coche les cases des données dont tu as besoin, comme les concours ou le classement des niveaux. Moins de cases, c'est plus sûr. Tu pourras toujours créer un autre jeton plus tard.

  4. 04

    Site autorisé (seulement parfois)

    Laisse ce champ vide, sauf si une page web appelle l'API directement depuis le navigateur de tes visiteurs. Dans ce cas, saisis l'adresse exacte de ton site, comme https://yoursite.com, sans chemin à la fin.

  5. 05

    Clique sur Créer le jeton et copie-le

    Une boîte apparaît avec ton jeton, qui commence par dhba_. Clique sur Copier et colle-le tout de suite dans un endroit sûr. Il n'est affiché qu'une seule fois. Si tu le perds, tu en crées un nouveau.

  6. 06

    Garde-le secret

    Traite le jeton comme un mot de passe. Ne le publie pas sur Discord, ne le mets pas dans un projet GitHub public et ne le colle pas dans une page web que tes visiteurs peuvent lire. Garde-le sur ton propre serveur ou dans un gestionnaire de mots de passe.

Ta première requête

Vérifions que ton jeton fonctionne. Il te faut deux choses : le jeton que tu viens de copier et l'identifiant de ton serveur (dans Discord, active le mode développeur dans tes paramètres, puis fais un clic droit sur ton serveur et choisis Copier l'identifiant du serveur). Le premier appel ci-dessous n'a besoin que du jeton.

Remplace dhba_YOUR_TOKEN par ton vrai jeton dans chaque exemple. Chacun envoie le jeton dans un en-tête appelé Authorization. Le mettre dans l'adresse web ne fonctionne pas.

Windows PowerShell (use curl.exe with the .exe, plain curl means something else in PowerShell)

curl.exe -H "Authorization: Bearer dhba_YOUR_TOKEN" https://dayzhub.net/api/v1/bot/me

curl (macOS, Linux and most hosting)

curl -H "Authorization: Bearer dhba_YOUR_TOKEN" https://dayzhub.net/api/v1/bot/me

JavaScript on your own server (Node 18 or newer). Keep the token in an environment variable.

const res = await fetch("https://dayzhub.net/api/v1/bot/guilds/YOUR_SERVER_ID/giveaways?status=active", {
  headers: { Authorization: "Bearer " + process.env.DAYZHUB_BOT_API_TOKEN }
});
const { ok, data } = await res.json();
console.log(data);

JavaScript in a visitor's browser (needs the Allowed website setting on the token, and shows the token to everyone, so use a token with the fewest boxes ticked)

fetch("https://dayzhub.net/api/v1/bot/guilds/YOUR_SERVER_ID/leaderboard/levels?limit=10", {
  headers: { Authorization: "Bearer dhba_YOUR_TOKEN" }
}).then(r => r.json()).then(j => console.log(j.data));

Une page qui s'exécute dans le navigateur d'un visiteur peut être lue par ce visiteur, jeton compris. Appeler l'API depuis ton propre serveur est la façon sûre de faire. Les appels depuis le navigateur ne conviennent qu'aux jetons qui lisent des infos publiques sans risque.

Ce que tu reçois en retour

Chaque réponse est en JSON. Les réponses réussies contiennent "ok": true et tes données. Les listes viennent avec une partie "page" : quand "hasMore" vaut true, renvoie la valeur "nextCursor" sous la forme ?cursor= pour obtenir la page suivante. Les dates sont en UTC.

GET /me: who the token belongs to

{
  "ok": true,
  "data": {
    "guildId": "123456789012345678",
    "name": "Website leaderboard",
    "prefix": "dhba_aB3dE",
    "scopes": ["leveling:read", "giveaways:read"],
    "allowedOrigin": null,
    "rateLimitPerMin": 60,
    "createdAt": "2026-10-01T12:00:00.000Z",
    "plan": "premium1",
    "limits": { "tokens": 2, "perMinute": 60 },
    "tokensUsed": 1
  }
}

GET /guilds/ID/leaderboard/levels?limit=2

{
  "ok": true,
  "data": [
    { "rank": 1, "member": { "id": "111111111111111111", "anonymous": false }, "xp": 18450, "level": 27 },
    { "rank": 2, "member": { "id": null, "anonymous": true }, "xp": 17020, "level": 26 }
  ],
  "page": { "limit": 2, "hasMore": true, "nextCursor": "eyJpZCI6IjY..." }
}

GET /guilds/ID/giveaways?status=active

{
  "ok": true,
  "data": [{
    "id": "6650f0c2a1b2c3d4e5f60718",
    "prize": "Premium VIP for 30 days",
    "status": "active",
    "type": "reaction",
    "winnerCount": 1,
    "entryCount": 86,
    "endsAt": "2026-10-08T18:00:00.000Z",
    "requirements": { "role": false, "verified": true, "minInvites": 0 },
    "host": { "id": "111111111111111111", "anonymous": false },
    "winners": []
  }],
  "page": { "limit": 25, "hasMore": false, "nextCursor": null }
}

GET /guilds/ID/tickets/summary

{
  "ok": true,
  "data": {
    "open": 4,
    "closed": 212,
    "total": 216,
    "last30Days": { "created": 38, "closed": 41, "averageRating": 4.7, "ratingCount": 29, "averageFirstResponseMinutes": 9.5 },
    "byCategory": [ { "category": "Support", "open": 3, "closed": 150 } ]
  }
}

GET /guilds/ID/shop/products

{
  "ok": true,
  "shop": { "name": "Survivor HQ Shop", "description": "Support the server", "slug": "survivor-hq", "url": "https://dayzhub.net/shop/survivor-hq" },
  "data": [{
    "id": "6650f0c2a1b2c3d4e5f60999", "name": "VIP Role", "slug": "vip-role", "description": "Priority queue and a gold name",
    "price": 9.99, "compareAtPrice": null, "currency": "EUR", "type": "subscription", "interval": "monthly",
    "thumbnailUrl": null, "featured": true, "inStock": true, "url": "https://dayzhub.net/shop/survivor-hq/vip-role"
  }],
  "page": { "limit": 25, "hasMore": false, "nextCursor": null }
}

GET /guilds/ID/server-status

{
  "ok": true,
  "data": {
    "listed": true,
    "servers": [{ "name": "Survivor HQ", "slug": "survivor-hq", "url": "https://dayzhub.net/s/survivor-hq", "online": true, "players": 42, "maxPlayers": 60, "address": "game.yourserver.gg:2302", "lastChangeAt": "2026-10-01T09:30:00.000Z" }]
  }
}

When something is wrong, for example a mixed-up server ID (HTTP 403)

{ "ok": false, "error": "guild_mismatch", "code": "guild_mismatch", "message": "This token belongs to another server", "requestId": "3f2b8c1e-5a7d-4e0b-9c64-1d2e3f4a5b6c" }

La liste complète des endpoints et de chaque champ se trouve dans la description lisible par machine à l'adresse /api/v1/bot/openapi.json. Chaque réponse porte l'en-tête X-Request-Id, et les erreurs le répètent sous requestId. Indique-le quand tu contactes le support.

Limites, forfaits et confidentialité

  • Lecture seuleIl n'y a aucun bouton qui modifie quoi que ce soit. Seules les requêtes GET reçoivent une réponse.
  • ForfaitsTon serveur a besoin d'un forfait payant ou d'un essai gratuit actif. Les données des concours demandent Premium 2. La liste de la boutique demande un vrai accès payant, car l'essai gratuit n'inclut pas la Boutique de dons.
  • Combien de jetons tu peux avoirPremium 1 inclut 2 jetons actifs, Premium 2 en inclut 5 et Premium 3 en inclut 10. Un essai gratuit ou un serveur sponsorisé compte comme Premium 1. Révoque ceux que tu n'utilises plus pour libérer une place. Si ton forfait baisse, les jetons que tu as déjà continuent de fonctionner. Tu ne peux simplement plus en créer de nouveaux tant que tu n'es pas sous la limite.
  • Limites de débitChaque jeton peut faire 60 requêtes par minute avec Premium 1, 120 avec Premium 2 et 300 avec Premium 3, et une adresse internet 300 par minute. Au-delà tu reçois une réponse 429 avec un en-tête Retry-After qui indique combien de secondes attendre.
  • Interroger avec douceurLes réponses incluent un ETag. Renvoie-le dans un en-tête If-None-Match et, si rien n'a changé, tu reçois une minuscule réponse 304 au lieu de toutes les données. Demander toutes les 30 à 60 secondes suffit largement, et la plupart des widgets peuvent demander moins souvent.
  • Ce qui n'est jamais partagéLes transcriptions et messages des tickets, les candidatures et leurs réponses, les paiements et commandes, les adresses e-mail, les noms et avatars, et les personnes qui ont participé à un concours. Tu n'obtiens que des totaux, plus des identifiants Discord numériques là où la fonctionnalité montre déjà les personnes publiquement sur Discord, comme l'organisateur d'un concours ou le classement des niveaux.
  • Membres opposés au traitement de leurs donnéesToute personne qui a utilisé /privacy optout apparaît toujours comme anonyme (un id valant null). Son rang et ses chiffres comptent quand même, donc les totaux restent justes.

Dépannage

Ce que tu voisPourquoi ça arriveComment le corriger
401 unauthorized ou invalid_tokenLe jeton est absent, mal saisi, tronqué ou a été révoqué.Copie-le à nouveau en entier, avec le début dhba_, et envoie-le sous la forme Authorization: Bearer TOKEN. S'il a été révoqué, crée-en un nouveau.
403 guild_mismatchL'identifiant de serveur dans l'adresse n'est pas celui du serveur auquel appartient le jeton.Appelle /me pour voir le bon guildId et utilise celui-là.
403 missing_scopeLe jeton n'avait pas le droit de lire ce type de données.Crée un nouveau jeton avec la case correspondante cochée.
403 feature_not_in_planCette fonctionnalité ne fait pas partie du forfait de ton serveur, par exemple les concours sans Premium 2.Passe à un forfait supérieur, ou laisse de côté ces données.
403 plan_requiredLe serveur n'a ni forfait payant ni essai gratuit actif.Souscris un forfait dans Facturation. L'API refonctionne tout de suite.
403 origin_not_allowedUne page web d'un autre site a essayé d'utiliser le jeton.Renseigne le site exact sur le jeton comme Site autorisé (https://yoursite.com), ou appelle plutôt depuis ton propre serveur.
Le navigateur affiche une erreur CORSLe jeton n'a pas de Site autorisé, donc les navigateurs n'ont pas le droit de l'appeler.Crée un jeton avec ton site dans Site autorisé, ou déplace l'appel vers ton serveur.
404 shop_not_enabledTa Boutique de dons n'est pas activée.Active la boutique dans ton tableau de bord.
429 rate_limitedTrop de requêtes en une minute.Attends le nombre de secondes indiqué dans l'en-tête Retry-After, puis demande moins souvent. Utilise ETag et les réponses 304.
PowerShell affiche une erreur étrange avec curlDans PowerShell, curl est une commande différente.Tape curl.exe à la place de curl.
503 unavailableUn petit incident de notre côté. L'API n'envoie jamais de réponses partielles.Réessaie dans une minute.

Révoquer et renouveler un jeton

Fais-le tout de suite si un jeton a été partagé par erreur, publié publiquement, ou si une personne qui le connaissait a quitté ton équipe.

  1. 01

    Crée d'abord le nouveau jeton

    Dans la page API du Bot, crée un remplaçant avec les mêmes réglages, et copie-le.

  2. 02

    Bascule ton site ou ton outil

    Mets le nouveau jeton partout où l'ancien était utilisé et vérifie que tout fonctionne encore.

  3. 03

    Révoque l'ancien

    Dans la liste de tes jetons, clique sur Révoquer sur l'ancien et confirme. Il cesse de fonctionner immédiatement, et tout ce qui l'utilise encore reçoit un 401. La création et la révocation sont inscrites dans le journal d'audit de ton serveur, jamais le jeton lui-même.

Les questions fréquentes

L'API peut-elle modifier quelque chose sur mon serveur ?

Non. Elle est en lecture seule, et il est impossible de donner plus de pouvoir à un jeton.

J'ai perdu mon jeton. Pouvez-vous me le réafficher ?

Non. Nous n'en gardons qu'une empreinte, il ne peut donc pas être réaffiché. Révoque-le et crée-en un nouveau.

Puis-je utiliser un seul jeton pour plusieurs serveurs ?

Non. Un jeton appartient à un seul serveur et ne peut lire que celui-là. Crée des jetons dans le tableau de bord de chaque serveur.

Dois-je savoir coder ?

Pour construire un widget, oui, ou demande à la personne qui fait ton site. La partie tableau de bord prend deux minutes.

Puis-je voir qui a participé à mon concours via l'API ?

Non. Tu obtiens le nombre de participations et les gagnants sous forme d'identifiants Discord, jamais la liste des participants.

Pourquoi un membre apparaît-il comme anonyme ?

Il s'est opposé au traitement de ses données avec /privacy optout. Nous le respectons partout, y compris ici.

L'essai gratuit fonctionne-t-il ?

Oui, pendant un essai actif tu peux créer des jetons et lire les fonctionnalités incluses dans l'essai. La Boutique de dons n'en fait pas partie.

Pourquoi je ne peux pas créer un autre jeton ?

Chaque forfait a une limite : 2 jetons actifs avec Premium 1, 5 avec Premium 2 et 10 avec Premium 3. Révoque un jeton que tu n'utilises plus, ou améliore ton forfait. La page Bot API montre combien tu en as utilisé.

Que devient mon jeton si mon forfait se termine ?

Il continue d'exister mais répond 403 plan_required jusqu'à ce que tu aies de nouveau un forfait ou un essai. Rien n'est supprimé.

Aperçu en direct

Voyez le rendu sur Discord

Exactement ce que Premium 3 débloque — tel que cela apparaît sur votre serveur.

Premium 3€6.99 / mois

bot-api

🚫

Aucun message Discord

L'API du Bot fonctionne depuis ton tableau de bord et ton propre site. Rien n'est publié sur Discord.

  • Tout ce qu'inclut Premium 2
  • Jusqu'à 10 jetons actifs par serveur
  • 300 requêtes par minute par jeton

Offres

Ce que vous obtenez

Chaque niveau inclut ce qui est listé. Passez à la vitesse supérieure quand vous voulez — vos réglages sont conservés.

Premium 1

€2.99/ mois

🎁 Premium 1 inclut un essai gratuit de 7 jours (la Boutique de dons et les Mods gratuits se débloquent à l’abonnement)

  • Accès en lecture seule aux données de ton propre serveur
  • Jusqu'à 2 jetons actifs par serveur
  • Classement des niveaux, résumé des tickets, résumé des suggestions, état du serveur de jeu
  • 60 requêtes par minute et par jeton
  • Fonctionne pendant l'essai gratuit
Premium 2

€4.99/ mois

  • Tout ce qu'inclut Premium 1
  • Jusqu'à 5 jetons actifs par serveur
  • 120 requêtes par minute par jeton
  • Données des concours (en cours et terminés)
Premium 3

€6.99/ mois

  • Tout ce qu'inclut Premium 2
  • Jusqu'à 10 jetons actifs par serveur
  • 300 requêtes par minute par jeton

🔌 API du Bot

Affiche les données de ton serveur sur ton propre site

Ajoutez DayZ Hub à votre serveur avec Premium 1, et passez au niveau supérieur quand vous êtes prêt.

DayZ Hub

Paramètres des cookies

Choisissez si DayZ Hub peut compter vos visites avec nos statistiques sans cookies. Vous pouvez changer ce choix à tout moment.

Cookies nécessairesIndispensables pour la connexion, la sécurité, votre langue et ce choix.
Toujours actifs
Statistiques — PlausibleCompte les visites de pages sans cookies ni données personnelles, pour nous aider à améliorer DayZ Hub.