跳轉到主要內容
Fluz 不販售依方案劃分的 API 額度——沒有「Free = 每分鐘 X 次、Pro = 每分鐘 Y 次」的分級,也沒有依金鑰計算的配額系統。取而代之,各服務會施加一個保護性速率限制,用來吸收濫用並保護後端。一般互動式與應用程式流量幾乎不會觸及這些限制;它們主要是用來攔截失控腳本與濫用行為。
沒有已公布的每方案配額可供申請提高。如果運作良好的整合仍觸發限制,通常代表值得修正的流量模式(請見 建立表現良好的用戶端),而非需要提高的配額。

限制如何套用

限制會在每個服務各自強制執行,並在該服務的所有實例上以全域方式評估——無法透過落在不同伺服器來規避限制。請求會以以下組合進行識別:
  • 你的 IP 位址——每個請求會計入每個 IP 的限制。
  • 你的存取權杖——完整的 Authorization 標頭。沒有授權標頭的請求會略過權杖限制器,但仍會計入 IP 限制器,因此請送出穩定的權杖,以便以「你」為單位受限,而不是與共用 IP 的所有人混在一起。
  • 端點路徑——在部分公開介面上,特定路徑有其各自的限制。
超出任何限制將回應 HTTP 429 Too Many Requests

各介面之流量限制

以下為持續性每秒限制。當超出時,該鍵會被封鎖一段短暫冷卻時間,之後才會再次接受請求。
GraphQL API 端點是多數整合用於存入、購買、轉帳與揭露的主要介面——請以每秒 20 次請求為規劃基準。行動/應用程式閘道的每 IP、每權杖與每端點限制會依環境設定,並非固定數字;請視為保護性限制,遇到 429 時請退讓。

認證與安全性

登入、PIN 與雙重驗證(2FA)流程會獨立於一般 API 流量受到保護。重複的失敗嘗試——登入、PIN 驗證或 2FA 驗證——以及過度的 2FA 或簡訊請求,會觸發暫時性鎖定,並在冷卻後自動解除。成功的認證會重置這些計數。
請勿自動重試失敗的登入、PIN 驗證或 2FA。請向使用者顯示「稍後再試」的狀態——自動重試只會延長鎖定時間。

當你超出限制時

每個速率受限的回應都會使用狀態碼 429 Too Many Requests。其本文與標頭會依介面而異:
標頭的可用性並不一致:
  • Retry-After(整數秒)會在驗證 IP 限制器與 PIN/2FA 流程中回傳。對於一般 GraphQL/web 流量限制器,保證提供。
  • 目前沒有 X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-Reset 標頭——請勿依賴它們來建置邏輯。

建立表現良好的用戶端

1

將 429 視為可重試

Retry-After 存在時請遵守它。若不存在,請從約 1 秒開始以指數退避(1s → 2s → 4s…),而非立即重試。
2

維持適度的持續速率

請勿從單一 IP 或權杖對某介面進行平行猛攻。對於 GraphQL API,請維持明顯低於每秒 20 次請求,並平滑尖峰。
3

不要自動重試認證失敗

重複的登入、PIN 或 2FA 失敗會造成暫時性鎖定。請顯示「稍後再試」訊息,而非自動重試。
4

送出穩定的存取權杖

使用你的權杖為每個請求進行認證,讓以權杖為基礎的限制能專屬套用在你的流量上,而不是與同一個共用 IP 的其他人被彙整在一起。
由於 Retry-After 並非在所有地方都有保證,請將重試邏輯與 冪等鍵 搭配使用,確保重試的變更操作不會讓某筆購買或轉帳被處理兩次。完整的錯誤目錄請見 Errors