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

调用Coinbase API查询账户返回货币列表缺失自有持仓币种

问题原因及解决方法
  • API密钥权限未配置正确:你在Coinbase后台创建API密钥时,必须勾选wallet:accounts:read权限,未开启该权限的情况下,get_accounts()接口只会返回公共的零余额空账户列表,不会加载你个人的持仓数据。你可以登录Coinbase后台进入API设置页,核对当前密钥的权限配置。
  • 接口版本不匹配持仓账户类型:你当前调用的是旧版Coinbase Wallet API的get_accounts()接口,该接口默认仅返回Coinbase Wallet托管账户的资产,如果你持仓在Coinbase Advanced Trade(原Coinbase Pro)账户中,旧版接口无法拉取对应数据,需要改用Coinbase Advanced Trade v3版API的账户查询接口。
  • 分页未遍历完整:get_accounts()接口默认开启分页,单次最多返回25条账户记录,如果你名下账户(含零余额账户)总数超过25,第一页返回的大概率是无持仓的冷门货币账户,你的持仓账户在后续分页中。你可以调用接口时添加limit参数调大单次返回条数,示例:accounts = client.get_accounts(limit=300),或者根据返回的pagination参数遍历所有分页即可拉取全部账户。
  • 账户区域不匹配:如果你使用的是Coinbase International、Coinbase Japan等区域站点的账户,默认全局API只会拉取Coinbase主站数据,你需要在初始化Client时指定对应区域的API端点。

修正后测试代码示例

from coinbase.wallet.client import Client
from coinbase.wallet.error import AuthenticationError

import config

class API:
    def auth():
        try:
            client = Client(config.API_KEY, config.API_SECRET)
            # 调大分页limit,避免漏掉持仓账户
            accounts = client.get_accounts(limit=300)
            for wallet in accounts.data:
                # 只打印有余额的账户,过滤零值空账户
                if float(wallet['balance']['amount']) > 0:
                    print(f"{wallet['balance']['currency']}: {wallet['balance']['amount']}")
        except AuthenticationError:
            print("Login failed!")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:06:02