获取 NFT 详情完整指南:API、参数与返回值全解析

·

想在一行代码内拿到 NFT 名称、元数据、稀有度、合约信息、图像高清接口?以下步骤与代码样例,手把手教你调用 Web3 NFT API,零踩坑。

1. 接口速览

简说:这条 GET 请求可以把链上某枚 NFT 的关键元数据全部“打包”带回,方便展示、挂售或做稀有度筛选。
核心关键词:NFT 元数据接口、区块链查询、NFT API 调取、collection 信息、token attributes。


2. 请求地址

GET https://web3.okx.com/api/v5/mktplace/nft/asset/detail

3. 路径参数详解

3.1 必填参数

3.2 参数传值误区

新手常把 tokenId 填成十进制符号或补零,导致链上找不到合约。务必使用合约原始字符串格式的编号。


4. 返回值拆解

以下字段一次性带回,既适合前端快速渲染,也满足后端做持久化:

  1. name
    NFT 正式名称,如 “Moonbirds #881”。
  2. tokenId
    回显确认,确保拿到的就是目标编号。
  3. tokenUri
    指向链下 JSON 文件的原始 NFT 元数据链接
    👉 点击看如何自己解析元数据而不依赖中心化网关
  4. image、imagePreviewUrl、imageThumbnailUrl
    三种常用尺寸的图片缓存链接,后端已实现 CDN 加速,省去你单独拉原图。
  5. animationUrl
    动态资源链接,适用于视频、3D 可交互模型。
  6. attributes(Object)
    稀有度分层信息,结构示例:

    {
      "trait_type": "Background",
      "value": "Midnight",
      "rarity": 3.7
    }
  7. assetContracts(Object)
    合约基础信息:地址、符号、标准(ERC-721 / ERC-1155)、创建者等。
  8. collection(Object)
    所属藏品集标题、地板价、24h 销量、社交媒体链接。

5. 实战请求示例(curl)

curl --request GET \
  --url 'https://web3.okx.com/api/v5/mktplace/nft/asset/detail' \
  --header 'Content-Type: application/json' \
  --data-urlencode 'chain=polygon' \
  --data-urlencode 'contractAddress=0x2953399124f0cbb46d2cbacd8a89cf0599974963' \
  --data-urlencode 'tokenId=66714966084278023699486113731013783040121805401030195673220262146451693867009'

返回完整 JSON,字段已在第 4 节标注。


6. 常见问题与解答

Q1:必须 API Key 吗?
A:访问公共链数据无需注册,直接调 GET 即可;若需高并发或私有索引,可申请 Key 提升配额。

Q2:如何批量拿到整页 NFT?
A:使用 /nft/collection/assets 分页接口获取 tokenId 列表,再循环调本接口抓取每个 token 详情,即可批量搭建稀有度排行榜。

Q3:为何 image 返回的是缓存地址?
A:原图慢或上链丢失时,缓存地址依旧可用,提升页面加载速度;若你追求 100% 链上原图,可额外解析 tokenUri,再抓 image URL。

Q4:polygon、BNB Smart Chain 写法有区别吗?
A:参数值区分大小写,务必与文档枚举一致,如 bsc 而不是 BSC

Q5:返回为空?
A:90% 为 contractAddresschain 填错,检查是否 多链项目写错网络;剩余情况极少是 JSON 服务挂掉,可直接工单。

Q6:是否支持实时地板价?
A:地板价在 collection 对象里更新周期为分钟级,基本秒级同步主流市场数据,满足挂售参考需求。


7. 进阶:三步将 NFT 卡片塞进自家前端

  1. 按上文 curl 获取 JSON。
  2. nameimagePreviewUrlattributes 拆给 React 组件 props。
  3. animationUrl 兼容物理模型,没有则隐藏。

一行示例代码:

const nftCard = ({name, imagePreviewUrl, animationUrl, attributes}) => (
  <div className="card">
    <img loading="lazy" src={imagePreviewUrl} alt={name} />
    <div className="attrs">
      {attributes.map(a => <span key={a.trait_type}>{a.value}</span>)}
    </div>
  </div>
);

8. 踩坑提示 & 性能优化


9. 下一步:打开更大视野

现在你已经能精准抓取某枚 NFT 的全部关键信息。
👉 解锁更全面的实时交易记录与挂单深度,即可打造无代码型 NFT 行情页面,或接入 Discord Bot 监测巨鲸动向。


总结
通过本文的接口介绍、参数释义、示例代码与常见问题,你应该已能在一分钟内成功调取并展示任意 NFT 的完整「档案」。现在就动手试试吧!