產生 API 金鑰#
在簽署任何請求之前,您必須透過 KuCoin 網站 建立 API 金鑰。建立鑰匙時,您需要寫下三項資訊:鑰匙和秘鑰由 KuCoin 生成並提供,密碼組指的是您用來創建 KuCoin API 的密碼。請注意,這三項資訊一旦遺失將無法復原。如果您遺失了此資訊,請建立新的 API 金鑰。API KEY PERMISSIONS#
您可以在 KuCoin 的官網上管理 API 的權限。請參閱下列說明文件,以瞭解特定路由需要哪些 API 金鑰權限。建立請求#
所有私有 REST 請求必須包含下表所列的必填請求標頭;在適用情況下,也可以加入選填標頭。| Header | Required | Description |
|---|
| KC-API-KEY | Yes | 您的 API Key(字串)。 |
| KC-API-SIGN | Yes | 請求所產生的 Base64 編碼簽名。 |
| KC-API-TIMESTAMP | Yes | 請求時間戳(毫秒)。 |
| KC-API-PASSPHRASE | Yes | 建立 API Key 時設定的 Passphrase。 |
| KC-API-KEY-VERSION | Yes | API Key 版本,可於 API Management 頁面查看。 |
| Content-Type | Yes | 所有請求與回應皆使用 application/json 內容類型。 |
| X-SITE-TYPE | No | 用於公開接口以指定站點/區域。若未填,預設為 global。澳大利亞站客戶需填 australia,以確保查詢結果為澳大利亞站資料。對於 WebSocket,取得 token 的步驟在需要區分站點時也需在請求頭加入此資訊。 |
簽署訊息#
使用 API-Secret 以 sha256 HMAC 加密預湊字串{timestamp+method+endpoint+body} 。請求體是 JSON 字串,必須與 API 傳遞的參數相同。
在傳送請求之前,透過base64 對內容進行編碼。
適用於KC-API-PASSPHRASE 的標題:使用HMAC-sha256 透過 API-Secret 加密密碼組。
在傳送請求之前,透過base64 對內容進行編碼。
加密的時間戳應與請求標題中的 KC-API-TIMESTAMP 欄一致。
對於 GET、DELETE 請求,所有查詢參數都需要包含在請求的 url 中。例如:/api/v1/deposit-addresses?currency=XBT 。如果沒有請求體(通常用於 GET 請求),則體為""。
對於 POST 請求,所有查詢參數都需要用 JSON 包含在請求體中。(例如{"currency": "BTC"} )。請勿在 JSON 字串中包含額外的空格。
產生簽章時,URL 必須使用未經 URL 編碼的內容參與簽章。
例如:當 url 為 /api/v1/sub/api-key?apiKey=67b3&subName=test&passphrase=abc%21%40%2311
, 參與簽名的 URL 內容應該是原始資訊 /api/v1/sub/api-key?apiKey=67b3&subName=test&passphrase=abc!@#11
代碼範例#
閘道時間戳#
Gateway Timestamp 是由 Gateway 產生的一組時間戳,用於標記同一請求在 Gateway 邊界上的入站與出站兩個關鍵時刻:| 邊界 | 含義 | WebSocket 回參(Body) | REST 回參(Header) |
|---|
| 入站 | 請求到達 Gateway | inTime | x-in-time |
| 出站 | 回應從 Gateway 發出 | outTime | x-out-time |
Gateway 端處理耗時可近似用 outTime - inTime(WebSocket)或 x-out-time - x-in-time(REST)計算。單位取決於目前啟用的精度。
精度控制#
使用以下參數控制 Gateway Timestamp 的精度。| 協議 | 控制參數 | 參數位置 | 影響的回參位置 | 影響的欄位 | 預設單位 |
|---|
| REST | kc-enable-ns | Request Header | Response Header | x-in-time, x-out-time | 微秒(µs) |
| WebSocket | enable_ns | WSS Query Parameter | Response Body | inTime, outTime | 毫秒(ms) |
1.
REST:x-in-time 與 x-out-time 會在 Response Header 中返回,且任意 REST API 的回應皆可能包含這兩個欄位。5- 前綴僅用於表示該組時間戳由 Gateway 產生。目前僅提供 Gateway 側的入站與出站時間戳。
2.
WebSocket:inTime 與 outTime 位於 Response Body,Pro WebSocket 的請求-回應類 API(例如下單/撤單)皆可能返回。
3.
Colo 客戶使用 UTA 帳號時,inTime 與 outTime 預設即以奈秒返回,因此不需要設定 enable_ns=true。
啟用納秒#
RESTful API#
在請求 Header 中設定 kc-enable-ns: true,即可讓 x-in-time 與 x-out-time 以奈秒返回。WebSocket 下單/撤單 API#
在 WebSocket 連線 URL 中加入 enable_ns=true,即可讓 inTime 與 outTime 以奈秒返回。wss://wsapi.kucoin.com/v1/private?apikey=689***2b6×tamp=1768878266952&sign=H/G***%3D&passphrase=aLs***3D&enable_ns=true
{
"code": "200000",
"data": {
"clientOid": "32dd404b1d724df59ee6f2bd8e8909f60522e89f",
"orderId": "403363205159706624",
"tradeType": "FUTURES",
"ts": 1768982484257000000
},
"id": "1b7ac024f4ee42e48d41104c10a21732",
"inTime": 1768982484219053000,
"op": "uta.order",
"outTime": 1768982484257824000,
"userRateLimit": {
"limit": 2000,
"remaining": 1999,
"reset": 30000
}
}
Modified at 2026-01-29 03:33:33