DayzHUBDiscord

Fejlesztők

A Bot API dokumentációja

Egy kicsi, csak olvasható API, amellyel a szerverek tulajdonosai megjeleníthetik saját Discord-szerverük adatait a weboldalukon, az eszközeikben és widgetekben.

Hitelesítés

Hozz létre tokent az irányítópult Bot API oldalán, és küldd az Authorization fejlécben: Authorization: Bearer <token>. Egy token egy szerverhez tartozik, és csak azt olvashatja. Egyszer jelenik meg; a DayZ Hub csak az ujjlenyomatát tárolja.

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

Alap URL: https://dayzhub.net/api/v1/bot

Végpontok

MethodPathHatókör
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

Minden válasz JSON ugyanabban a borítékban. A listák lapozhatók a limit (1–100) és a page.nextCursor kurzor segítségével.

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

Hatókörök

Minden token csak azokat a hatóköröket kapja, amelyeket megadtál neki. Mind csak olvasható; ezen az API-n keresztül semmi sem módosítható.

guild:readA csomag állapota és a funkciók listája
giveaways:readNyereményjátékok (aktív és lezárt) a részvételek számával
tickets:readJegyek száma állapot és kategória szerint (a jegyek tartalma nélkül)
leveling:readSzintranglista (az adatkezelés ellen tiltakozó tagok névtelenek)
shop:readAz adományshop nyilvános termékei
suggestions:readJavaslatok száma állapot szerint
server-status:readA játékszerver nyilvános állapota (csak ha nyilvánosan szerepel a listában)

A tagok adatvédelme

A tagok csak ott jelennek meg, ahol a funkció már most nyilvánosan mutatja őket, Discord-azonosítóként. Az az adatkezelés ellen tiltakozó tag mindig névtelenként jelenik meg, lásd lent. Nevek, üzenetek, jegyek és űrlapválaszok soha nem részei az API-nak.

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

Korlátok

A korlátok a szerver csomagjától függnek. Premium 1: 2 aktív token, tokenenként percenként 60 kérés. Premium 2: 5 token, percenként 120. Premium 3: 10 token, percenként 300. Az ingyenes próba vagy a szponzorált szerver Premium 1-nek számít. Minden IP-cím percenként 300 kérést küldhet. A korlát felett 429-et kapsz Retry-After fejléccel. A csomag lejjebb váltása egyetlen tokent sem von vissza: a meglévők tovább működnek, csak az újak tiltottak, amíg a korlát alá nem kerülsz. A szervernek fizetős csomag vagy aktív próba kell.

Gyorsítótár

A válaszok ETag-et és rövid privát gyorsítótárat kapnak. Küldj If-None-Match fejlécet, és 304-et kapsz, ha semmi sem változott. A 30–60 másodpercenkénti lekérdezés bőven elég.

Böngészők és CORS

Hívd az API-t a saját szerveredről. A CORS alapból ki van kapcsolva. Ha egy weboldalnak a látogató böngészőjéből kell hívnia, adj meg egy engedélyezett weboldalt a tokenen; bármely más forrásból érkező kérést elutasítunk. A weboldalon lévő minden látható a látogatók számára.

A tokened, a csomagod és a korlátok

A GET /me nem ellenőrzi a csomagot. Magán a tokenen kívül visszaadja a plan (premium1, premium2, premium3 vagy none), a limits (a csomag tokens és perMinute értéke) és a tokensUsed (a szerver aktív tokenjei) mezőt. A rateLimitPerMin az a sebesség, amelyet ez a token éppen kap.

{ "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 } }

Kérésazonosítók

Minden válasz tartalmazza az X-Request-Id fejlécet. Ha saját X-Request-Id-t küldesz (legfeljebb 64 betű, számjegy és . _ : -), azt megtartjuk, különben generálunk egyet. A hibák requestId néven megismétlik. Add meg, amikor az ügyfélszolgálatot keresed.

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" }

Hibák

A hibák JSON-ban érkeznek: ok: false, stabil kód a code mezőben (az error ugyanazt az értéket tartalmazza), rövid üzenet és a requestId. A kód alapján dönts, soha ne az üzenet szövege alapján.

400 bad_request / bad_cursorValamelyik paraméter érvénytelen (limit, cursor, status vagy id).
401 unauthorized / invalid_tokenHiányzó, hibás, ismeretlen vagy visszavont token.
403 guild_mismatchAz útvonalban szereplő guild nem a token guildje.
403 missing_scopeA tokennek nincs meg az a hatóköre, amelyet ez a végpont igényel.
403 origin_not_allowedAz Origin fejléc nem egyezik a token engedélyezett weboldalával.
403 plan_requiredA szervernek nincs fizetős csomagja vagy aktív próbája.
403 feature_not_in_planA funkció nem része a szerver csomagjának.
404 not_found / shop_not_enabledItt nincs semmi (vagy a shop nincs bekapcsolva).
405 method_not_allowedCsak a GET érhető el; az API csak olvasható.
429 rate_limitedTúl sok kérés. Várj a Retry-After szerinti másodpercig.
503 unavailableÁtmenetileg nem elérhető. Próbáld később.

DayZ Hub

Sütibeállítások

Döntsd el, hogy a(z) DayZ Hub megszámolhatja-e a látogatásaidat süti nélküli statisztikánkkal. Ezt bármikor módosíthatod.

Szükséges sütikA bejelentkezéshez, a biztonsághoz, a nyelvedhez és ehhez a választáshoz kellenek.
Mindig aktív
Statisztika — PlausibleSütik és személyes adatok nélkül számolja az oldalmegtekintéseket, hogy fejleszthessük a(z) DayZ Hub szolgáltatást.