如何通过OpenSea API获取指定智能合约地址下的全部NFT数据
解决方案
你可以使用OpenSea v1的批量资产查询接口实现需求,调用时仅需传入目标合约地址作为筛选参数即可,无需提前获取对应NFT的token id。
接口调用示例
curl --request GET \ --url "https://api.opensea.io/api/v1/assets?asset_contract_address=你的目标合约地址&limit=50&offset=0"
参数说明
asset_contract_address:必填,你要查询的NFT对应的智能合约地址limit:选填,单次请求返回的NFT数量上限,最大值为50,默认值为20offset:选填,分页偏移量,用于批量拉取全量数据,首次请求填0,后续请求按返回数量累加即可
全量数据拉取逻辑
如果目标合约下NFT总量超过50,需要循环调用接口完成全量拉取:
- 首次调用设置
offset=0,记录本次返回的NFT总数 - 若返回的NFT数组长度等于你设置的
limit值,说明还有后续数据,将offset加上limit的值发起下一次请求 - 重复步骤2直到返回的NFT数组长度小于
limit,说明已经拉取完全部数据
注意事项
- 调用时建议在请求头中添加
X-API-KEY参数传入你申请的OpenSea API密钥,避免触发公共接口的限流规则 - 若查询的是以太坊主网之外的链上NFT,需要额外添加
chain参数指定对应链标识,比如Polygon链对应值为matic
内容的提问来源于stack exchange,提问作者Haider Yaqoob
相关产品推荐
相关产品推荐

