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
| Method | Path | Hatókör |
|---|---|---|
GET | /me | — |
GET | /guilds/{guildId} | guild:read |
GET | /guilds/{guildId}/features | guild:read |
GET | /guilds/{guildId}/giveaways | giveaways:read |
GET | /guilds/{guildId}/giveaways/{id} | giveaways:read |
GET | /guilds/{guildId}/tickets/summary | tickets:read |
GET | /guilds/{guildId}/leaderboard/levels | leveling:read |
GET | /guilds/{guildId}/shop/products | shop:read |
GET | /guilds/{guildId}/suggestions/summary | suggestions:read |
GET | /guilds/{guildId}/server-status | server-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:read | A csomag állapota és a funkciók listája |
giveaways:read | Nyereményjátékok (aktív és lezárt) a részvételek számával |
tickets:read | Jegyek száma állapot és kategória szerint (a jegyek tartalma nélkül) |
leveling:read | Szintranglista (az adatkezelés ellen tiltakozó tagok névtelenek) |
shop:read | Az adományshop nyilvános termékei |
suggestions:read | Javaslatok száma állapot szerint |
server-status:read | A 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_cursor | Valamelyik paraméter érvénytelen (limit, cursor, status vagy id). |
401 unauthorized / invalid_token | Hiányzó, hibás, ismeretlen vagy visszavont token. |
403 guild_mismatch | Az útvonalban szereplő guild nem a token guildje. |
403 missing_scope | A tokennek nincs meg az a hatóköre, amelyet ez a végpont igényel. |
403 origin_not_allowed | Az Origin fejléc nem egyezik a token engedélyezett weboldalával. |
403 plan_required | A szervernek nincs fizetős csomagja vagy aktív próbája. |
403 feature_not_in_plan | A funkció nem része a szerver csomagjának. |
404 not_found / shop_not_enabled | Itt nincs semmi (vagy a shop nincs bekapcsolva). |
405 method_not_allowed | Csak a GET érhető el; az API csak olvasható. |
429 rate_limited | Tú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. |