DayzHUBDiscord

Vývojáři

Dokumentace API bota

Malé API jen pro čtení, aby majitelé serverů mohli zobrazit data vlastního serveru Discord na svém webu, v nástrojích a widgetech.

Ověření

Vytvoř token na stránce API bota ve svém panelu a pošli ho v hlavičce Authorization: Authorization: Bearer <token>. Token patří jednomu serveru a čte jen ten server. Zobrazí se jednou; DayZ Hub uchovává jen jeho otisk.

curl -H "Authorization: Bearer dhba_..." \
  https://dayzhub.net/api/v1/bot/guilds/<guildId>

Základní URL: https://dayzhub.net/api/v1/bot

Koncové body

MethodPathRozsah
GET/me—
GET/guilds/{guildId}guild:read
GET/guilds/{guildId}/featuresguild:read
GET/guilds/{guildId}/giveawaysgiveaways:read
GET/guilds/{guildId}/giveaways/{id}giveaways:read
GET/guilds/{guildId}/tickets/summarytickets:read
GET/guilds/{guildId}/leaderboard/levelsleveling:read
GET/guilds/{guildId}/shop/productsshop:read
GET/guilds/{guildId}/suggestions/summarysuggestions:read
GET/guilds/{guildId}/server-statusserver-status:read

Každá odpověď je JSON ve stejné obálce. Seznamy se stránkují pomocí limit (1 až 100) a kurzoru z page.nextCursor.

{ "ok": true, "data": [ ... ], "page": { "limit": 25, "hasMore": true, "nextCursor": "eyJpZCI6Ij..." } }

Rozsahy

Každý token má jen rozsahy, které mu dáš. Všechny jsou jen pro čtení; přes toto API nelze nic změnit.

guild:readStav tarifu a seznam funkcí
giveaways:readGiveaway (aktivní i ukončené) s počtem účastí
tickets:readPočty ticketů podle stavu a kategorie (bez obsahu ticketů)
leveling:readŽebříček úrovní (členové s námitkou jsou anonymní)
shop:readVeřejné produkty obchodu s dary
suggestions:readPočty návrhů podle stavu
server-status:readVeřejný stav herního serveru (jen při veřejném zveřejnění)

Soukromí členů

Členové se objevují jen tam, kde je funkce už veřejně ukazuje, jako ID Discordu. Člen, který vznesl námitku proti zpracování dat, je vždy zobrazen anonymně, jak je vidět níže. Jména, zprávy, tickety a odpovědi z formulářů nejsou nikdy součástí API.

{ "id": null, "anonymous": true }

Limity

Limity se řídí tarifem serveru. Premium 1: aktivních tokenů 2, požadavků za minutu na token 60. Premium 2: tokenů 5, 120 za minutu. Premium 3: tokenů 10, 300 za minutu. Zkušební doba zdarma nebo sponzorovaný server se počítá jako Premium 1. Každá IP adresa může provést 300 požadavků za minutu. Při překročení dostaneš 429 s hlavičkou Retry-After. Snížení tarifu žádný token nezruší: tokeny, které máš, dál fungují, jen nové jsou blokované, dokud nejsi pod limitem. Server potřebuje placený tarif nebo aktivní zkušební dobu.

Mezipaměť

Odpovědi nesou ETag a krátkou soukromou mezipaměť. Pošli If-None-Match, abys dostal 304, když se nic nezměnilo. Dotazování každých 30 až 60 sekund bohatě stačí.

Prohlížeče a CORS

Volej API z vlastního serveru. CORS je ve výchozím stavu vypnut. Pokud ho musí webová stránka volat z prohlížeče návštěvníka, nastav na tokenu jeden povolený web; požadavky z jakéhokoli jiného původu jsou odmítnuty. Vše na webové stránce vidí návštěvníci.

Tvůj token, tarif a limity

GET /me nekontroluje tarif. Kromě samotného tokenu vrací plan (premium1, premium2, premium3 nebo none), limits (tokens a perMinute tohoto tarifu) a tokensUsed (aktivní tokeny serveru). rateLimitPerMin je rychlost, kterou tento token má právě teď.

{ "ok": true, "data": { "guildId": "123456789012345678", "name": "Website", "prefix": "dhba_aB3dE", "scopes": ["guild:read"],
  "allowedOrigin": null, "rateLimitPerMin": 120, "createdAt": "2026-10-01T12:00:00.000Z",
  "plan": "premium2", "limits": { "tokens": 5, "perMinute": 120 }, "tokensUsed": 2 } }

ID požadavků

Každá odpověď nese hlavičku X-Request-Id. Pokud pošleš vlastní X-Request-Id (až 64 písmen, číslic a znaků . _ : -), zůstane zachováno, jinak se vygeneruje. Chyby ho opakují jako requestId. Uveď ho, když kontaktuješ podporu.

X-Request-Id: 3f2b8c1e-5a7d-4e0b-9c64-1d2e3f4a5b6c

{ "ok": false, "error": "rate_limited", "code": "rate_limited", "message": "Too many requests", "requestId": "3f2b8c1e-5a7d-4e0b-9c64-1d2e3f4a5b6c" }

Chyby

Chyby jsou JSON s ok: false, stabilním kódem v code (error obsahuje stejnou hodnotu), krátkou zprávou a requestId. Rozhoduj podle kódu, nikdy podle textu zprávy.

400 bad_request / bad_cursorNěkterý parametr není platný (limit, cursor, status nebo id).
401 unauthorized / invalid_tokenToken chybí, je poškozený, neznámý nebo zrušený.
403 guild_mismatchServer (guild) v cestě není serverem tokenu.
403 missing_scopeToken nemá rozsah, který tento koncový bod vyžaduje.
403 origin_not_allowedHlavička Origin neodpovídá povolenému webu tokenu.
403 plan_requiredServer nemá placený tarif ani aktivní zkušební dobu.
403 feature_not_in_planFunkce není součástí tarifu serveru.
404 not_found / shop_not_enabledNic tu není (nebo obchod není zapnutý).
405 method_not_allowedK dispozici je jen GET; API je jen pro čtení.
429 rate_limitedPříliš mnoho požadavků. Počkej tolik sekund, kolik uvádí Retry-After.
503 unavailableDočasně nedostupné. Zkus to později.

DayZ Hub

Nastavení cookies

Zvolte, zda DayZ Hub smí počítat vaše návštěvy pomocí naší analytiky bez cookies. Volbu můžete kdykoli změnit.

Nezbytné cookiesPotřebné pro přihlášení, zabezpečení, váš jazyk a tuto volbu.
Vždy aktivní
Analytika — PlausiblePočítá návštěvy stránek bez cookies a bez osobních údajů, abychom mohli DayZ Hub zlepšovat.