You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kucoin现货账户余额查询报错:Invalid KC-API-SIGN (400005)

解决Kucoin REST API 401 Invalid KC-API-SIGN错误

调用Kucoin查询现货账户余额的API时返回401错误,提示Invalid KC-API-SIGN,以下是问题排查和修正方案:

代码中的关键问题

  • 缺少time模块导入,导致time.time()无法正常调用
  • 加密后的passphrase是bytes类型,未转换为字符串直接放入请求头,导致签名验证失败
  • 需确保API凭证(Key/Secret/Passphrase)与Kucoin平台生成的内容完全匹配,无多余空格或字符

修正后的代码

import hmac
import hashlib
import base64
import requests
import time  # 补充time模块导入

api_key = 'YOUR_API_KEY'
api_secret = 'YOUR_API_SECRET'
api_passphrase = 'YOUR_API_PASSPHRASE'

url = 'https://api.kucoin.com/api/v1/accounts'
now = str(int(time.time() * 1000))
# 签名字符串格式:timestamp + 大写请求方法 + API路径(不含域名)
str_to_sign = now + 'GET' + '/api/v1/accounts'
signature = hmac.new(api_secret.encode('utf-8'), str_to_sign.encode('utf-8'), hashlib.sha256).hexdigest()

# 将加密后的passphrase从bytes转为字符串
passphrase = base64.b64encode(hmac.new(api_secret.encode('utf-8'), api_passphrase.encode('utf-8'), hashlib.sha256).digest()).decode('utf-8')

headers = {
    "KC-API-SIGN": signature,
    "KC-API-TIMESTAMP": now,
    "KC-API-KEY": api_key,
    "KC-API-PASSPHRASE": passphrase,
    "KC-API-KEY-VERSION": "2"
}
response = requests.get(url, headers=headers)
print(response.status_code)
print(response.json())

额外排查要点

  • 时间同步:本地服务器时间需与UTC时间误差控制在30秒内,Kucoin API对时间戳有效性有严格校验
  • 请求方法一致性:str_to_sign中的请求方法必须为大写(如GET),且与实际请求方法完全一致
  • 路径准确性:str_to_sign中的API路径必须和请求的endpoint路径完全匹配,不能包含域名部分
  • API权限检查:确认生成的API Key已开启「查询账户余额」的权限,部分受限的API Key会导致签名验证失败

内容的提问来源于stack exchange,提问作者Asad Jalbani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 09:02:33