1. 正常返回:看内容时间,不看响应时间
响应中的as_of、quoted_at 等内容时间位于各数据集的业务数据中;_meta.data_freshness_seconds 表达内容距今的秒数。内容时间不是服务器处理请求的时刻,判断「数据新不新」应以对应数据的时间字段为准。
不同数据集的更新节奏天然不同:行情类是秒到分钟级,披露类(国会交易、财报)是小时到天级。各数据集的节奏见对应的目录导读。
期权最新报价
单查与批量报价返回最近可用的报价:quoted_at是报价本身的 UTC 时间,不是请求时间。休市或不活跃合约的报价时间可能较早;接口不保证报价年龄或可成交性,调用方应自行判断是否适用。- 批量
_meta.data_freshness_seconds按成功报价中**最早的quoted_at**计算;逐合约判断请查看各自的时间。 - 单查未取得报价时返回相应错误;批量在
quotes中返回成功报价,并在unavailable中列出失败合约。这两个端点不返回202,处理方式见报价错误说明。
2. 202:数据正在准备
部分按标的准备数据的端点(目录里标注 on-demand 的),首次请求某个此前无人查询过的标的时可能返回以下响应;期权最新报价的响应方式见上文:
retry_after_seconds 重试即可(202 本身不扣额度,重试成功返回数据则计费)。同一标的就绪后,后续请求直接返回数据。
3. 旧值兜底:stale 与 notice
对于支持旧值兜底的数据集,数据更新暂时中断时会返回最近一次的有效数据并如实标注。旧值兜底响应的 _meta 会带上 stale 标注与说明;期权最新报价请按上文的报价时间与逐项状态判断。你的程序应当:
- 需要严格新鲜度的场景(如实时信号):检查内容时间,超出你的容忍窗口就跳过本轮;
- 容忍旧值的场景(如日报、回顾):直接使用,无需特殊处理。
按季/按月披露的数据(机构 13F、财报、做空回补数据等)不会被标注 stale——数据是「几个月前的」本来就是这类披露的正常状态,内容时间如实给出,由你按披露节奏理解。
4. 404 与 503:一个别重试,一个请重试
这两个状态码的语义被刻意分开,请按语义处理:
同为
404,NOT_FOUND 与 RANGE_TOO_DEEP 的处理方向相反——程序分支请按 error.code 判断,不要只看 HTTP 状态码。
503 的错误体携带 recoverable: true 与 retry_after_seconds,适合程序自动处理。
Dealer GEX 与 Dealer Heatmap snapshot 只接受当前应有的固定五分钟采样点:如果该段的固定末分钟尚未归档,会返回 READ_MODEL_UNAVAILABLE,不会用上一段或段内更早一分钟代替。Dealer history 中的同类空洞则如实缺行,不会插值或补零。