如何使用Python正确调用带认证的Coinigy API?
Coinigy API 认证失败问题解决:正确方式与代码示例
我仔细看了你的问题和Coinigy的官方文档,你现在卡壳的核心原因是把认证信息放错了位置——Coinigy API根本不用OAuth、HTTP Digest这些你尝试的认证方式,而是用自定义的HTTP请求头来传递密钥!
正确的认证方式
Coinigy的REST API要求将你的API密钥和密钥放在请求头里,而不是作为URL参数或者请求体。具体需要添加两个请求头字段:
X-API-KEY: 你的API密钥X-API-SECRET: 你的API密钥
这就是为什么你之前用OAuth1/OAuth2/HTTPDigestAuth都无效,官方文档里压根没提这些方式,完全是自定义头认证。
修正后的代码示例
把你原来的代码改成下面这样,重点是把密钥移到headers里,并且请求一个有效的接口端点(根路径/api/v1/可能不返回有效数据,建议用文档里的具体接口,比如市场数据接口):
import requests # 替换成你自己的真实密钥 API_KEY = "你的API密钥" API_SECRET = "你的API密钥" BASE_URL = "https://api.coinigy.com/api/v1/" # 构建认证请求头 auth_headers = { "X-API-KEY": API_KEY, "X-API-SECRET": API_SECRET } # 示例:请求市场数据列表接口(可根据需求替换成其他接口) response = requests.get(f"{BASE_URL}markets", headers=auth_headers) # 处理响应 if response.ok: print("请求成功!返回数据:") print(response.json()) else: print(f"请求失败,状态码:{response.status_code}") print("错误详情:", response.text)
关键注意点
- 别再用URL参数传递密钥:你原来的代码把
X-API-KEY和X-API-SECRET放在params里,服务器根本不会从这里读取认证信息,所以必然返回"认证尝试失败"。 - 确保请求有效接口:根路径
/api/v1/可能不是一个可访问的端点,参考官方文档里的具体接口路径,比如市场数据的/markets、交易对数据的/exchanges等。 - 检查密钥正确性:如果还是失败,先确认你的API密钥和密钥没有输错,有没有在Coinigy后台启用对应的权限。
内容的提问来源于stack exchange,提问作者Michael W
相关产品推荐
相关产品推荐

