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

使用Coinbase Advanced Trade API时granularity参数无效问题排查

解决Coinbase Advanced Trade API蜡烛图接口请求体传参报错问题

核心原因

这个接口实际仅支持通过URL查询字符串传递参数,哪怕官方文档可能描述允许请求体传参,后端也不会解析请求体中的参数。当你把granularity放在请求体里时,接口根本没读取到这个参数,相当于未正确传递该参数,所以返回"granularity参数无效"的错误。

为什么URL传参有效

当你把参数放在URL查询字符串中时,后端会正确解析这些参数,granularity=ONE_DAY被正常识别,接口能返回符合要求的数据。

代码修正示例

如果你的代码之前是用POST请求+JSON请求体传参,改成GET请求+查询参数的方式即可:

import requests
from coinbase_advanced_trade.auth import CoinbaseAuth  # 假设使用官方认证库

# 初始化认证
auth = CoinbaseAuth(api_key="YOUR_API_KEY", api_secret="YOUR_API_SECRET")

product_id = "BTC-USD"
# 定义参数:start/end为秒级时间戳,granularity使用枚举值
candle_params = {
    "start": "1698844800",
    "end": "1699449600",
    "granularity": "ONE_DAY"
}

# 构造请求URL,参数通过params传递(自动拼接为查询字符串)
url = f"https://api.coinbase.com/api/v3/brokerage/products/{product_id}/candles"
response = requests.get(url, params=candle_params, auth=auth)

# 处理响应
if response.status_code == 200:
    print(response.json())
else:
    print(f"请求失败: {response.json()}")

额外说明

这种文档与实际实现不一致的情况在API中偶尔会出现,优先以实际可运行的调用方式为准。如果需要确认参数的合法值,除了参考文档,也可以通过不传参数时返回的默认数据反推,或者测试不同的查询参数组合。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 20:12:33