DayzHUBDiscord

開發者

機器人 API 文件

一個小型唯讀 API,讓伺服器擁有者可以在自己的網站、工具和小工具中展示自己 Discord 伺服器的資料。

身分驗證

在控制台的機器人 API 頁面建立權杖,並透過 Authorization 標頭傳送:Authorization: Bearer <token>。一個權杖屬於一個伺服器,只能讀取該伺服器。權杖只顯示一次;DayZ Hub 只儲存其指紋。

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

基礎 URL: https://dayzhub.net/api/v1/bot

端點

MethodPath權限範圍
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

每個回應都是相同封裝的 JSON。清單透過 limit(1 到 100)和 page.nextCursor 中的游標分頁。

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

權限範圍

每個權杖只擁有你授予的權限範圍。全部為唯讀;無法透過此 API 變更任何內容。

guild:read方案狀態與功能清單
giveaways:read抽獎(進行中與已結束)及參與人數
tickets:read依狀態與類別統計的工單數量(不含工單內容)
leveling:read等級排行榜(選擇退出的成員為匿名)
shop:read公開的捐贈商店商品
suggestions:read依狀態統計的建議數量
server-status:read遊戲伺服器的公開狀態(僅在公開列出時)

成員隱私

成員只會出現在該功能已公開顯示他們的地方,以 Discord ID 形式出現。選擇退出資料處理的成員一律顯示為匿名,如下所示。名稱、訊息、工單和表單回答絕不屬於 API 的一部分。

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

限制

限制取決於伺服器的方案。Premium 1:2 個有效權杖,每個權杖每分鐘 60 個請求。Premium 2:5 個權杖,每分鐘 120 個。Premium 3:10 個權杖,每分鐘 300 個。免費試用或受贊助的伺服器視為 Premium 1。每個 IP 位址每分鐘最多 300 個請求。超出限制會回傳帶有 Retry-After 標頭的 429。方案降級不會撤銷任何權杖:你已有的權杖仍可使用,只是在降到上限以下之前不能建立新權杖。伺服器需要付費方案或有效試用。

快取

回應帶有 ETag 和較短的私有快取。傳送 If-None-Match,在沒有變更時會回傳 304。每 30 到 60 秒輪詢一次已經足夠。

瀏覽器與 CORS

請從你的伺服器呼叫 API。CORS 預設為關閉。如果網頁必須在訪客瀏覽器中呼叫它,請在權杖上設定一個允許的網站;來自任何其他來源的請求都會被拒絕。網頁中的所有內容訪客都看得到。

你的權杖、方案和限制

GET /me 不檢查方案。除權杖本身外,它還回傳 plan(premium1、premium2、premium3 或 none)、limits(該方案的 tokens 和 perMinute)以及 tokensUsed(伺服器的有效權杖數)。rateLimitPerMin 是此權杖目前的速率。

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

每個回應都帶有 X-Request-Id 標頭。如果你傳送自己的 X-Request-Id(最多 64 個字母、數字以及 . _ : -),會被保留,否則會自動產生。錯誤回應中會以 requestId 重複它。聯絡支援時請提供它。

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

錯誤

錯誤以 JSON 回傳,包含 ok: false、code 中的穩定錯誤代碼(error 的值相同)、簡短訊息和 requestId。請依據代碼判斷,不要依據訊息文字。

400 bad_request / bad_cursor某個參數無效(limit、cursor、status 或 id)。
401 unauthorized / invalid_token權杖缺失、格式錯誤、未知或已撤銷。
403 guild_mismatch路徑中的伺服器與權杖所屬伺服器不一致。
403 missing_scope權杖沒有此端點所需的權限範圍。
403 origin_not_allowedOrigin 標頭與權杖允許的網站不符。
403 plan_required伺服器沒有付費方案或有效試用。
403 feature_not_in_plan該功能不在伺服器的方案內。
404 not_found / shop_not_enabled這裡沒有內容(或商店未啟用)。
405 method_not_allowed僅支援 GET;此 API 為唯讀。
429 rate_limited請求過多。請等待 Retry-After 指定的秒數。
503 unavailable暫時無法使用,請稍後再試。

DayZ Hub

Cookie 設定

選擇是否允許 DayZ Hub 使用我們無 Cookie 的統計功能記錄你的造訪。你可以隨時更改。

必要 Cookie用於登入、安全性、你的語言設定以及儲存此選擇。
一律啟用
統計 — Plausible在不使用 Cookie、不收集個人資料的情況下統計網頁造訪次數,協助我們改善 DayZ Hub。