Artemis API 有 HTTP 200 却没有数值:检查符号、错误与月度桶
链小知 · 进阶 · 核验 · 依官方文档整理
逐项检查既有 v2/data 响应的数据类型、series_columns、symbol、聚合规则和未闭合周期,避免将业务错误或 null 当零值。
开始前准备
- 准备既有脱敏请求路径、参数、HTTP 状态、原响应及读取时间;有可比日序列时一并保存。此任务不要求新建账户或发起认证请求。
- 先选一个具体问题,例如 OPEN_INTEREST 月数据被求和,或 STABLECOIN_SUPPLY 月桶被理解成月初余额。没有真实响应则按官方格式整理待补字段。
1. 先确认 v2 路径和响应结构
核对原路径是否 /v2/data/{metricNames},读取顶层 series 和 series_columns。当前 API Reference 另有 /data/api/{metricNames}/ 返回 data.symbols 下的 date/val,属于另一结构;解析器若找不到 series,先查实际路径和正文,不能自动把空字段解释为无数据。
检查结果:实际路径和解析结构匹配,旧接口结构未套入 v2。
2. 检查认证位置和可用产品权限
在脱敏请求中核对查询参数 APIKey 的大小写,只记录是否存在,不复制其值。免费 Intern Analyst 的问题额度不等于指标 API;Managing Director 或 Plugin 的 API 权限须按已有计划核对。公开 /asset/ 目录无 key 的条件不能推广到 /supported-metrics/ 或 v2 数据请求。认证/套餐未确认时先记访问条件未知。
检查结果:目录免认证、指标认证和已有计划权限分开记录。
3. 从资产目录核对 symbol
对照既有 /asset/ 目录中的 symbol、artemis_id 和 sector 标签。v2 的 symbols 与指标发现的 symbol 使用 symbol;例如官方映射 uniswap→uni、maker→sky,不能直接将品牌或 artemis_id 填入。一个资产可有多个 sector 标签,需再查该资产具体指标,不能从 lending/dex 分类推出某个字段一定有值。
检查结果:每个查询符号有对应目录字段和具体指标,而非品牌猜测。
4. 按每条 series.data 的类型分类失败
先检查 data 是数组还是字符串。官方列出三种字符串:Metric not available for asset.、Latest data not available for this asset.、Dimension type does not exist.,分别对应指标不支持、无近期数据和分维度不适用。保留原消息和资产/指标;即使 HTTP 200 也不是数值成功,响应条数等于请求符号数也不是成功证据。
检查结果:业务错误、无近期值和错误分维度分别记录,未强制转成零。
5. 依据 series_columns 解码时间或标签
若 columns 为 timestamp/value,将 epoch 毫秒除以 1000 后按 UTC 转日期;若 summarize=true 返回 label/value,首列是显示标签,不能作为时间戳解析。PCT_CHG 附加序列与原值序列分别识别,不把增长率当数额;日期输入保持 YYYY-MM-DD,保存原列名以便复查。
检查结果:每一列的含义明确,毫秒/秒及显示标签没有混用。
6. 核对月度聚合语义和原日序列
从具体指标元数据读 aggregation_type:PERP_VOLUME 等流量按 SUM;OPEN_INTEREST 等按 LAST,不能将每日未平仓量相加。稳定币供应表列 FIRST,但指南强调月末 closing balance,月桶标签为月初;将月值与已有同月日序列末值比对,未取得原序列就标待核,不按 FIRST 字面改写为月初。DAU 的 AVERAGE 不能当月累计独立地址数。
检查结果:月标签、实际值时点和指标聚合分别确认,文档字段与案例差异已披露。
7. 处理 null 和尚未完整的周期
保留数组中的 null,不当成零活动;当前周期可能未结束,不能盲取 data 最后一行。先过滤有效数值,再保留其原时间。稳定币指南还说明进行中的月桶可能为最近可用日数据,因此有效数值也不自动代表完整月;以读取日期和原日序列核对成熟度。链上序列按期初标签,股票基本面另有财务期末规则,本任务不将两种日历混为一组。
检查结果:最新有效值、未知缺值和未闭合周期分别标注。
8. 形成逐资产逐指标的排错结果
列出 path、symbol、metric、unit、granularity、dimensionType、原 data 类型、最近有效日期、周期成熟度和失败消息。对无近期数据再核对官方维护变更记录,不因仍可见旧历史或市场价格就认定该链上指标持续维护。未取得数据或日序列时保留待补项,不生成伪造最新值。
检查结果:得到可追溯排错表;权限、维护状态和未核对日序列仍明确未知。
怎样确认完成
- 完成每条 series 的类型/时间/符号/聚合检查,并输出失败原因和成熟度。
- 保留脱敏原记录与未知项;没有新增认证调用或实时数据验收。
常见错误与边界
- 200 只说明 HTTP 处理成功,series.data 内的字符串可表示业务失败。
- 有数值的月桶也可能尚未闭合,末值不是完整月的保证。
- 旧 data/api 的 limit 范围与返回结构不能直接套用到 v2/data。